因為 Linux 系統是在 Internet 上起源和發展的,它與生俱來擁有強大的網絡功能和豐富的網絡應用軟件,尤其是 TCP/IP 網絡協議的實現尤為成熟。Linux 的網絡命令比較多,其中一些命令像 ping、ftp、telnet、route、netstat 等在其它操作系統上也能看到,但也有一些 Unix/Linux 系統獨有的命令,如 ifconfig、finger、mail 等。Linux 網絡操作命令的一個特點是,命令參數選項和功能很多,一個命令往往還可以實現其它命令的功能。
ifconfig
1.作用
ifconfig 用千查看和更改網絡接口的地址和參數,包括 IP 地址、網絡掩碼、廣播地
址,使用權限是超級用戶。
2.格式
ifconfig —interface [options] address
3.主要參數4.應用說明
ifconfig 是用來設置和配置網卡的命令行工具。為了手工配置網絡,這是一個必須掌握的命令。使用該命令的好處是無須重新啟動機器。要賦給 ethO 接口 IP 地址2O7.164.186.2,並且馬上激活它,使用下面命令:
t:ifconfig ethO 21O.34.6.89 netmask 255.255.255.128 broadcast 21O.34.6.127
該命令的作用是設置網卡 ethO 的 IP 地址、網絡掩碼和網絡的本地廣播地址。若運行不帶任何參數的 ifconfig 命令,這個命令將顯示機器所有激活接口的信息。帶有“—a"參數的命令則顯示所有接口的信息,包括沒有激活的接口。注意,用 ifconfig 命令配置的網絡設備參數,機器重新啟動以後將會丟失。
如果要暫停某個網絡接口的工作,可以使用 down 參數:
t:ifconfig ethO down ip 1.作用
ip 是 iproute2 軟件包裡面的一個強大的網絡配置工具,它能夠替代一些傳統的網絡管理工具,例如 ifconfig、route 等,使用權限為超級用戶。兒乎所有的Linux 發行版本都支持該命令。
2.格式
ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]
3.主要參數
OPTIONS 是修改ip 行為或改變其輸出的選項。所有的選項都是以—字符開頭,分為長、
短兩種形式。目前,ip 支持如表 1 所示選項。
OBJECT 是要管理者獲取信息的對象。目前 ip 認識的對象見表 2 所示。
表 1 ip 支持的選項
—V,—Version
打印 ip 的版本並退出。
—s,—stats,—statistics
輸出更為詳盡的信息。如果這個選項出現兩次或多次,則輸出的信
息將更為詳盡。
—f,—family
這個選項後面接協議種類,包括 inet、inet6 或 link,強調使用的協議種類。如果沒有足夠的信息告訴 ip 使用的協議種類,ip 就會使用默認值 inet 或 any。link 比較特殊,它表示不涉及任何網
絡協議。
—4
是—family inet 的簡寫。
—6
是—family inet6 的簡寫。
—O
是—family link 的簡寫。
—o,—oneline
對每行記錄都使用單行輸出,回行用字符代替。如果需要使用 wc
grep 等工具處理 ip 的輸出,則會用到這個選項。
—r,—resolve
查詢域名解析系統,用獲得的主機名代替主機 IP 地址
、
COMMAND 設置針對指定對象執行的操作,它和對象的類型有關。一般情況下,ip 支持對象的增加(add)、刪除(delete)和展示(show 或 list)。有些對象不支持這些操作,或者有其它的一些命令。對千所有的對象,用戶可以使用 help 命令獲得幫助。這個命令會列出這個對象支持的命令和參數的語法。如果沒有指定對象的操作命令,ip 會使用默認的命令。一般情況下,默認命令是 list,如果對象不能列出,就會執行 help 命令。
ARGUMENTS 是命令的一些參數,它們倚賴千對象和命令。ip 支持兩種類型的參數:flag 和 parameter。flag 由一個關鍵詞組成;parameter 由一個關鍵詞加一個數值組成。為了方便,每個命令都有一個可以忽略的默認參數。例如,參數dev 是ip link 命令的默認參數,因此 ip link ls ethO 等千 ip link ls dev ethO。我們將在後面的詳細介紹每個命令的使用,命令的默認參數將使用 default 標出。
4.應用實例
添加 IP 地址 192.168.2.2/24 到 ethO 網卡上:
t:ip addr add 192.168.1.1/24 dev ethO
丟棄源地址屬千 192.168.2.O/24 網絡的所有數據報: t:ip rule add from 192.168.2.O/24 prio 32777 reject ping 1.作用
ping 檢測主機網絡接口狀態,使用權限是所有用戶。
2.格式
ping [—dfnqrRv][—c][—i][—I][—l][—p][—s][—t] IP 地址
3.主要參數
ping 命令是使用最多的網絡指令,通常我們使用它檢測網絡是否連通,它使用 ICMP 協議。但是有時會有這樣的情況,我們可以瀏覽器查看一個網頁,但是卻無法 ping 通,這是因為一些網站處千安全考慮安裝了防火牆。另外,也可以在自己計算機上試一試,通過下面的方法使系統對 ping 沒有反應:
t: echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
netstat
1.作用
檢查整個 Linux 網絡狀態。
2.格式
netstat [—acCeFghilMnNoprstuvVwx][—A][——ip]
3.主要參數
4.應用實例
netstat 主要用千 Linux 察看自身的網絡狀況,如開啟的端口、在為哪些用戶服務,
以及服務的狀態等。此外,它還顯示系統路由表、網絡接口狀態等。可以說,它是一個綜合性的網絡狀態的察看工具。在默認情況下,netstat 只顯示已建立連接的端口。如果要顯示處千監聽狀態的所有端口,使用—a 參數即可:
t:netstat —a
Active Internet connections (only servers)
Proto
Recv—Q
Send—Q
Local
Address
Foreign Address
State
tcp
O
O
*:32768
*:*
LISTEN
tcp
O
O
*:32769
*:*
LISTEN
tcp
O
O
*:nfs
*:*
LISTEN
tcp
O
O
*:3277O
*:*
LISTEN
tcp
O
O
*:868
*:*
LISTEN
tcp
O
O
*:617
*:*
LISTEN
tcp
O
O
*:mysql
*:*
LISTEN
tcp O O *:netbios—ssn *:*
LISTEN
tcp
O
O
*:sunrpc
*:*
LISTEN
tcp
O
O
*:1OOOO
*:*
LISTEN
tcp
O
O
*:http
*:*
LISTEN
......
上面顯示出,這臺主機同時提供 HTTP、FTP、NFS、MySQL 等服務。telnet 1.作用
telnet 表示開啟終端機階段作業,並登入遠端主機。telnet 是一個 Linux 命令,同時也是一個協議(遠程登陸協議)。
2.格式
telnet [—8acdEfFKLrx][—b][—e][—k][—l][—n][—S][—X][主機名稱 IP 地址<通信端口
>]
3.主要參數
4.應用說明
用戶使用 telnet 命令可以進行遠程登錄,並在遠程計算機之間進行通信。用戶通過網絡在遠程計算機上登錄,就像登錄到本地機上執行命令一樣。為了通過 telnet 登錄到遠程計算機上,必須知道遠程機上的合法用戶名和口令。雖然有些系統確實為遠程用戶提供登錄功能,但出千對安全的考慮,要限制來賓的操作權限,因此,這種情況下能使用的功能是很少的。
telnet 只為普通終端提供終端仿真,而不支持 X—Window 等圖形環境。當允許遠程用戶登錄時,系統通常把這些用戶放在一個受限制的 Shell 中,以防系統被懷有惡意的或不小心的用戶破壞。用戶還可以使用 telnet 從遠程站點登錄到自己的計算機上,檢查電子郵件、編輯文件和運行程序,就像在本地登錄一樣。
ftp 1. 作 用 ftp 命令進行遠程文件傳輸。FTP 是 ARPANet 的標準文件傳輸協議,該網絡就是現今
Internet 的前身,所以 ftp 既是協議又是一個命令。
2.格式
ftp [—dignv][主機名稱 IP 地址] 3.主要參數
4.應用說明
ftp 命令是標準的文件傳輸協議的用戶接口,是在TCP/IP 網絡計算機之間傳輸文件簡單有效的方法,它允許用戶傳輸 ASCII文件和二進制文件。為了使用 ftp 來傳輸文件,用戶必須知道遠程計算機上的合法用戶名和口令。這個用戶名/口令的組合用來確認 ftp 會話,並用來確定用戶對要傳輸的文件進行什麼樣的訪問。另外,用戶需要知道對其進行 ftp 會話的計算機名字的 IP 地址。
用戶可以通過使用 ftp 客戶程序,連接到另一臺計算機上;可以在目錄中上下移動、列出目錄內容;可以把文件從遠程計算機機拷貝到本地機上;還可以把文件從本地機傳輸到遠程系統中。ftp 內部命令有 72 個,下面列出主要兒個內部命令:
route 1. 作 用 route 表示手工產生、修改和查看路由表。2.格式
t:route [—add][—netl—host] targetaddress [—netmask Nm][dev]If]
t:route [—delete][—netl—host] targetaddress [gw Gw] [—netmask Nm] [dev]If] 3.主要參數
4. 應 用 實 例 route 命令是用來查看和設置 Linux 系統的路由信息,以實現與其它網絡的通信。要實現兩個不同的子網之間的通信,需要一臺連接兩個網絡的路由器,或者同時位千兩個網絡的網關來實現。
在 Linux 系統中,設置路由通常是為了解決以下問題:該 Linux 系統在一個局域網中,
局域網中有一個網關,能夠讓機器訪問 Internet,那麼就需要將這臺機器的 IP 地址設置
為 Linux 機器的默認路由。使用下面命令可以增加一個默認路由:
route add O.O.O.O 192.168.1.1 rlogin 1. 作 用 rlogin 用來進行遠程註冊。
2.格式
rlogin [ —8EKLdx ] [ —e char ] [—k realm ] [ — l username ] host 3.主要參數
—8:此選項始終允許 8 位輸入數據通道。該選項允許發送格式化的ANSI 字符和其它的特殊代碼。如果不用這個選項,除非遠端的不是終止和啟動字符,否則就去掉奇偶校驗位。
—E:停止把任何字符當作轉義字符。當和—8 選項一起使用時,它提供一個完全的透明連接。
—K:關閉所有的 Kerberos 確認。只有與使用 Kerberos 確認協議的主機連接時才使用這個選項。
—L:允許 rlogin 會話在 litout 模式中運行。要了解更多信息,請查閱 tty 聯機幫助。
—d:打開與遠程主機進行通信的 TCP sockets 的 socket 調試。要了解更多信息,請查閱 setsockopt 的聯機幫助。
—e:為 rlogin 會話設置轉義字符,默認的轉義字符是“�"。
—k:請求 rlogin 獲得在指定區域內遠程主機的 Kerberos 許可,而不是獲得由
krb_realmofhost(3)確定的遠程主機區域內的遠程主機的 Kerberos 許可。
—x:為所有通過 rlogin 會話傳送的數據打開 DES 加密。這會影響響應時間和CPU 利用率,但是可以提高安全性。
4.使用說明
如果在網絡中的不同系統上都有賬號,或者可以訪問別人在另一個系統上的賬號,那麼要訪問別的系統中的賬號,首先就要註冊到系統中,接著通過網絡遠程註冊到賬號所在的系統中。rlogin 可以遠程註冊到別的系統中,它的參數應是一個系統名。
rcp
1. 作 用 rcp 代表遠程文件拷貝,用千計算機之間文件拷貝,使用權限是所有用戶。2.格式
rcp [—px] [—k realm] file1 file2 rcp [—px] [—r] [—k realm] file
3.主要參數
—r:遞歸地把源目錄中的所有內容拷貝到目的目錄中。要使用這個選項,目的必須是 一個目錄。
—p:試圖保留源文件的修改時間和模式,忽略 umask。
—k:請求 rcp 獲得在指定區域內的遠程主機的 Kerberos 許可,而不是獲得由
krb_relmofhost(3)確定的遠程主機區域內的遠程主機的 Kerberos 許可。
—x:為傳送的所有數據打開 DES 加密。finger 1.作用
finger 用來查詢一臺主機上的登錄賬號的信息,通常會顯示用戶名、主目錄、停滯時間、登錄時間、登錄 Shell 等信息,使用權限為所有用戶。
2.格式
finger [選項] [使用者] [用戶@主機] 3.主要參數
—s:顯示用戶註冊名、實際姓名、終端名稱、寫狀態、停滯時間、登錄時間等信息。
—l:除了用—s 選項顯示的信息外,還顯示用戶主目錄、登錄 Shell、郵件狀態等信息, 以及用戶主目錄下的.plan、.project 和.forward 文件的內容。
—p:除了不顯示.plan 文件和.project 文件以外,與—l 選項相同。
4.應用實例
在計算機上使用 finger:
Phone
root
root
tty1
2
Dec
15
11
root
root
pts/O
1
Dec
15
11
root
root
*pts/1
Dec
15
11
5.應用說明
如果要查詢遠程機上的用戶信息,需要在用戶名後面接“@主機名",採用[用戶名@主機名]的格式,不過要查詢的網絡主機需要運行 finger 守護進程的支持。
1.作用
mail 作用是發送電子郵件,使用權限是所有用戶。此外,mail 還是一個電子郵件程序。2.格式
3.主要參數nslookup 1. 作 用 nslookup 命令的功能是查詢一臺機器的 IP 地址和其對應的域名。使用權限所有用戶。
它通常需要一臺域名服務器來提供域名服務。如果用戶已經設置好域名服務器,就可以用這個命令查看不同主機的 IP 地址對應的域名。
2.格式
nslookup [IP 地址/域名]
3.應用實例
(1)在本地計算機上使用 nslookup 命令
在符號“>"後面輸入要查詢的 IP 地址域名,並回車即可。如果要退出該命令,輸入
“exit",並回車即可。
(2)使用 nslookup 命令測試 named
輸入下面命令:
nslookup
然後就進入交換式 nslookup 環境。如果 named 正常啟動,則 nslookup 會顯示當前 DNS
服務器的地址和域名,否則表示 named 沒能正常啟動。下面簡單介紹一些基本的 DNS 診斷。
• 檢查正向 DNS 解析,在 nslookup 提示符下輸入帶域名的主機名,如 hp712.my.com,
nslookup 應能顯示該主機名對應的 IP 地址。如果只輸入 hp712,nslookup 會根據
/etc/resolv.conf 的定義,自動添加 my.com 域名,並回答對應的 IP 地址。
• 檢查反向 DNS 解析,在 nslookup 提示符下輸入某個 IP 地址,如 192.22.33.2O,
nslookup 應能回答該 IP 地址所對應的主機名。
• 檢查 MX 郵件地址記錄在 nslookup 提示符下輸入:
set q=mx
然後輸入某個域名,輸入 my.com 和mail.my.com,nslookup 應能夠回答對應的郵件服務器地址,即 support.my.com 和 support2.my.com。
動手練習
1.危險的網絡命令
互聯網的發展使安全成為一個不能忽視的問題,finger、ftp、rcp 和 telnet 在本質上都是不安全的,因為它們在網絡上用明文傳送口令和數據,嗅探器可以非常容易地截獲這些口令和數據。而且,這些服務程序的安全驗證方式也是有弱點的,很容易受到“中間服務器"方式的攻擊。這裡筆者把一些不安全的命令根據危險等級列出,見表 3 所示。
現在 ftp、telnet 可以被 SSH 命令代替綁定在端口 22 上,其連接採用協商方式,使用
RSA 加密。身份鑑別完成之後,後面的所有流量都使用 IDEA 進行加密。SSH(Secure Shell)程序可以通過網絡登錄到遠程主機,並執行命令。rcp、rlogin 等遠程調用命令也逐漸被VNC 軟件代替。
2.在一張網卡上綁定多個 IP 地址
在 Linux 下,可以使用 ifconfig 方便地綁定多個 IP 地址到一張網卡。例如,ethO 接
口的原有 IP 地址為 192.168.O .254,可以執行下面命令:3.修改網卡MAC 地址
首先必須關閉網卡設備,命令如下:
/sbin/ifconfig ethO down
修改 MAC 地址,命令如下:
/sbin/ifconfig ethO hw ether OO:AA:BB:CC:DD:EE
重新啟用網卡:
/sbin/ifconfig ehtO up
這樣網卡的 MAC 地址就更改完成了。每張網卡的 MAC 地址是惟一,但不是不能修改的,
只要保證在網絡中的 MAC 地址的惟一性就可以了。
4.初步部署IPv6
IPv4 技術在網絡發展中起到了巨大的作用,不過隨著時間的流逝它無論在網絡地址的提供、服務質量、安全性等方面都越來越力不從心,IPv6 呼之欲出。Linux 是所有操作系統中最先支持 IPv6 的,一般 Linux 基千 2.4 內核的Linux 發行版本都可以直接使用IPv6, 不過主要發行版本沒有加載 IPv6 模塊,可以使用命令手工加載,需要超級用戶的權限。
(1)加載 IPv6 模塊
使用命令檢測,其中 inet6 addr: fe8O::5O54:abff:fe34:5bO9/64,就是 ethO 網卡的 IPv6 地址。
(2)使用 ping 命令檢測網卡的 IPv6 地址是否有效
t:ping6 —I ethO —c 2 fe8O::2OO:e8ff:feaO:2586
和 IPv4 不一樣,使用 ping6 命令時必須指定一個網卡界面,否則系統不知道將數據包發送到哪個網絡設備。I 表示 Interface、ethO 是第一個網卡,—c 表示迴路,2 表示ping6 操作兩次。結果見圖 1 所示。
圖 1 IPv6 網絡下的 ping6 命令
(3)使用 ip 命令在 IPv6 下為 ethO 增加一個 IP 地址
t:ip —6 addr add 3ffe:ffff:O:f1O1::1/64 dev ethO
使用 ifconfig 命令,查看網卡是否出現第二個 IPv6 地址。
Linux 網絡的主要優點是能夠實現資源和信息的共享,並且用戶可以遠程訪問信息。
Linux 提供了一組強有力的網絡命令來為用戶服務,這些工具能夠幫助用戶進行網絡設定、
檢查網絡狀況、登錄到遠程計算機上、傳輸文件和執行遠程命令等。
上面介紹了Linux 中比較重要的網絡命令,其實 Linux 還有許多命令需要學習。Linux 網絡操作命令的一個特點就是命令參數選項很多,並不要求全部記住,關鍵在千理解命令的主要用途和學會使用幫助信息
閱讀更多 科技葡萄 的文章