一、ping命令 - 連通性測試
- ping 簡介:
ping命令-網工神器,主要用來測試主機之間網絡的連通性,基於icmp實現,linux和Windows下運行ping命令有所不同,windows 一般會發出4個請求就結束運行該命令( ping -t 和linux效果差不多);而Linux下不會自動終止,此時需要我們按CTR+C終止或者使用-c參數爲ping命令指定發送的請求數目。
- 語法格式: ping【參數】【目標主機】
- 常用參數:
參數 | 含義 |
---|---|
d | 使用Socket的SO_DEBUG功能 |
-c | 指定發送報文的次數 |
-i | 指定收發信息的間隔時間 |
-I | 使用指定的網絡接口送出數據包 |
-l | 設置在送出要求信息之前,先行發出的數據包 |
-n | 只輸出數值 |
-p | 設置填滿數據包的範本樣式 |
-q | 不顯示指令執行過程 |
-R | 記錄路由過程 |
-s | 設置數據包的大小 |
-t | 設置存活數值TTL的大小 |
-v | 詳細顯示指令的執行過程 |
- 應用實例:
- 檢查和百度的連通性(ping 4次,每次間隔四秒並記錄路由信息)
ping -c 4 -i 4 -R www.baidu.com
- 利用ping命令獲取指定網站的IP地址
ping -c 1 www.baidu.com | grep from | cut -d " " -f 4
二、netstat命令 - 顯示網絡狀態
- netstat命令簡介:
Netstat 用於顯示與IP 、TCP 、UDP 和ICMP 協議相關的統計數據,一般用於檢驗本機各端口的網絡連接情況。 - 常用的參數:
參數 | 含義 |
---|---|
-a | 顯示所有的連接 |
-r | 顯示內置路由表 |
-l | 顯示監聽服務器套接字 |
-i | 顯示網卡信息 |
-n | 不解析名稱(不把端口解析成服務) |
-g | 顯示組播信息 |
-t | 顯示tcp傳輸協議的連線狀況 |
-u | 顯示UDP傳輸協議的連線狀況 |
-s | 顯示網絡統計 |
-p | 顯示正在使用Socket的程序識別碼和程序名稱 |
3.應用實例
- 顯示本機的tcp和udp連接,監聽服務端口並顯示pid和程序名
netstat -lntup
-統計機器中網絡連接各個狀態個數
netstat -an | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]} '
-查看連接某服務端口最多的的IP地址
netstat -ant|grep "*"|awk '{print $5}'|awk -F: '{print $1}'|sort -nr|uniq -c
- 查看程序運行的端口
netstat -ap | grep nginx
- 顯示核心路由
netstat -rn
三、ip命令-顯示與操作路由
- ip命令簡介:
ip命令 --網工神器 !!! 用來顯示或操縱Linux主機的路由、網絡設備、策略路由和隧道,是Linux下功能強大的網絡配置工具。 - 語法格式:ip【參數】
- 常用參數:
參數|含義
-s|輸出更詳細的信息
-f |強制使用指定的協議族
-4 |指定使用的網絡層協議是IPv4協議
-6 |指定使用的網絡層協議是IPv6協議
-r |顯示主機時,不使用IP地址,而使用主機的域名
- 應用實例:
- 顯示分配給所有網絡接口的地址
ip addr
- 顯示網絡設備運行狀態
ip link list
- 顯示內核中的當前鄰居表和核心路由表。
ip neigh
ip route
四、ifconfig命令-顯示或設置網絡設備
- ifconfig命令簡介:
用於配置和顯示Linux內核中網絡接口的網絡參數。用ifconfig命令配置的網卡信息,在網卡重啓後機器重啓後,配置就不存在。要想將上述的配置信息永遠的存的電腦裏,需要修改網卡的配置文件
注意:網卡文件在 /etc/sysconfig/network-scripts ,我們將有一期詳解網卡編輯
- 語法格式:
ifconfig [網絡設備][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<網絡設備類型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<網絡媒介類型>][mem_start<內存地址>][metric<數目>][mtu<字節>][netmask<子網掩碼>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
- 常用參數:
參數 | 含義 |
---|---|
add<地址> | 設置網絡設備IPv6的IP地址 |
del<地址> | 刪除網絡設備IPv6的IP地址 |
down | 關閉指定的網絡設備 |
up | 啓動指定的網絡設備 |
IP地址 | 指定網絡設備的IP地址 |
- 應用實例:
- 顯示網絡設備信息:
ifconfig
- 用ifconfig修改MAC地址配置IP地址:
ifconfig eth0 down
ifconfig eth0 hw ether 00:16:3e:2e:1c:84
ifconfig eth0 up
ifconfig eth0 172.17.138.121
注意:雲端服務器就不要測試改etho網卡信息(如果關閉了etho 重啓可以解決ssh連接不上的問題)不要問我爲什麼知道……
五、ss命令-顯示或動套接字
- **ss命令簡介:**ss命令用來顯示處於活動狀態的套接字信息。它可以顯示和netstat類似的內容。但ss的優勢在於它能夠顯示更多更詳細的有關TCP和連接狀態的信息,而且比netstat更快速更高效。
- 語法格式:ss [參數]
- 常用參數: --太多了
參數 | 含義 |
---|---|
-n | 不解析服務名稱,已數字方式顯示 |
-a | 顯示所有套接字 |
-l | 顯示處於監聽狀態的套接字 |
-o | 顯示計時器信息 |
-e | 顯示詳細的套接字信息 |
-m | 顯示套接字的內存使用情況 |
-p | 顯示使用套接字的進程 |
-i | 顯示內部的TCP信息 |
-s | 顯示套接字使用概況 |
-4 | 僅顯示ipv4的套接字 |
-6 | 僅顯示ipv6的套接字 |
-0 | 顯示PACKET套接字 |
-t | 只顯示TCP套接字 |
-u | 只顯示UDP套接字 |
-d | 只顯示DCCP套接字 |
-w | 只顯示RAW套接字 |
-x | 只顯示 Unix套接字 |
-D | 將原始TCP套接字信息轉儲到文件 |
- 應用實例:
- 顯示TCP套接字:
ss -t -a
-顯示套接字使用概況:
ss -s
六、小結
無論同一種功能有多少種實現辦法,我們都要有自己最熟悉的一種,能看懂其他的實現辦法,這就是我們的目的