幾乎所有Linux實例都需要網絡連接以提供服務。如果網絡連接失敗,服務也會失敗,用戶將面臨連續性中斷。因此,管理員必須擁有合適的工具和命令來分析與解決網絡連接問題。
下面有六個可用的Linux網絡命令來確認連通性。
ip
Linux網絡命令中的瑞士軍刀,ip命令,旨在配合子命令工作,如ip link管理和監控網絡連接,ip addr 管理IP地址,以及ip route 管理路由表。你可以使用ip link show、ip addr show或ip route show來查看目前的連接狀態、地址配置和路由配置。更進一步,可以使用 ip addr add dev eth0 10.0.0.10/24 來臨時分配一個IP地址到eth0網絡接口上。
ip 命令還提供了更高級的選項。例如,ip link set promisc on 臨時設置網絡接口為混雜模式,允許其捕捉所有網絡上收到的數據包——不止那些注明了屬于自己媒體訪問控制地址(MAC地址)的數據包。ip命令與其子命令適合用于排除網絡連接問題,但在重啟服務器后,之前這些配置都會失效。
tcpdump
tcpdump是個Linux網絡命令,可以讓數據中心管理員分析網絡活動。這個包嗅探工具可以捕獲通過特定網口的流量。如果不帶任何參數,如tcpdump -i eth0,命令將顯示大量路過的數據包。另一種常見選項是使用 -w,如 tcpdump -i eth0 -w packets.pcap,可以將結果寫入文件,管理員后期可以使用Wireshark應用程序進行分析。
Wireshark
Wireshark是款圖形化工具,管理員可以用來分析和嗅探網絡數據包。tcpdump能夠通過標準輸出顯示捕獲的網絡流量,管理員可以使用Wireshark的提供的圖形用戶界面通過鼠標點擊的方式,查看網絡通信流。這個多用途工具可以執行實時數據包捕獲,也可以閱讀由其他工具創建的數據文件,如tcpdump。
ethtool
如果你還在使用傳統的物理網卡,不是虛擬機,你會喜歡ethtool的。這個工具允許管理員監控和設置網卡的不同屬性。例如,使用ethtool -i eth0 查看eth0接口的硬件信息,或者通過 ethtool -S eth0 獲得關于eth0接收包的狀況統計。命令 ethtool -p eth0可以讓網卡上的指示燈閃爍,可以用來指示需要與eth3口交換線纜的網口,是個很好的技巧。但在此之前,請確認在用的是eth3,而不是其他網絡接口。
使用ethtool時,請牢記你不可能始終都得到有用的信息,因為網卡驅動決定你能看到的內容。
ncat
一般來說,管理員會使用telnet來確認特定端口的連接,驗證服務的某個特定端口是否可用。Ncat——是netcat古老工具的現代替代品。
舉例來說,可以通過ncat 某主機地址 80 命令來建立往某主機80端口的連接,ncat同樣還有更多高級功能,如建立兩主機之間的連接。使用ncat -l 4444可以用ncat在主機上監聽4444端口,接著在另外一臺主機上使用 ncat某主機地址4444 來創建兩臺主機之間的連接。工具本身而言,不是很有用,但利用管道命令,可以實現更多選項。例如,在一臺主機上使用命令 ncat -l 4444 >somefile ,在另一臺主機上輸入 echo hello | ncat hostname 4444,可以將其他主機上通過網絡傳來的命令寫入本主機的文件中。
dhclient
如果你使用動態主機配置協議來獲得網絡上的IP地址,每個結點都需要在啟動后能夠聯網。但是,如果DHCP服務器在客戶端啟動時無法訪問,你會獲得一個169.254范圍的無效地址,而且不會自動嘗試獲取新地址。為避免此問題,使用dhclient命令立即申請新地址。例如可以使用Linux網絡命令dhclient eth0 立即更新主以太網設備IP地址。
一些Linux網絡命令已經發生了巨大的變化,但還有一些,如ifconfig,沒有變化。該工具已經有些過時,而且不再顯示相關信息。要解決網絡連接問題,請考慮上述六項命令。