Linux網路檢測相關工具用法(ping/netstat/ss/ethtool)
當新的Linux主機完成了網路配置,即可以正常接入網路後,我們可以通過Linux自帶的相關工具進行網路相關檢測。如最常用的ping,netstat,ss,traceroute,ethtool等相關命令。本文主要是描述這幾個命令的使用方法,供大家參考。
有關為網路配置基礎可以參考以下連結:
網路及TCP/IP簡明快速基礎
Linux 主機網路接入配置
基於iproute命令集配置Linux網路(ip命令)
一、ping命令的使用
ping這個命令會傳送一些資料包到目標主機,用於檢查目標網路是否可達,其協議為基於icmp協議。
獲取ping的幫助資訊
# ping -help
Usage: ping [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
[-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
[-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
[-w deadline] [-W timeout] [hop1 ...] destination
常用的用法如下
ping [options] ip
-c 次數
-w 測試執行時長
使用示例
###當前環境
# more /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
###ping本地迴環
# ping 127.0.0.1 -c 2
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.108 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.037 ms
--- 127.0.0.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.037/0.072/0.108/0.036 ms
###ping本機IP
# ping 192.168.81.144 -c 2
PING 192.168.81.144 (192.168.81.144) 56(84) bytes of data.
64 bytes from 192.168.81.144: icmp_seq=1 ttl=64 time=0.209 ms
64 bytes from 192.168.81.144: icmp_seq=2 ttl=64 time=0.058 ms
--- 192.168.81.144 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.058/0.133/0.209/0.076 ms
###ping外部網路(URL,驗證DNS解析)
# ping www.baidu.com -w 2
PING www.baidu.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38: icmp_seq=1 ttl=128 time=5.92 ms
64 bytes from 14.215.177.38: icmp_seq=2 ttl=128 time=6.19 ms
--- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 5.925/6.057/6.190/0.153 ms
###指定ping包的大小
# ping www.baidu.com -s 1024 -c 2
PING www.baidu.com (14.215.177.38) 1024(1052) bytes of data.
1032 bytes from 14.215.177.38: icmp_seq=1 ttl=128 time=6.21 ms
1032 bytes from 14.215.177.38: icmp_seq=2 ttl=128 time=6.47 ms
--- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 6.218/6.348/6.478/0.130 ms
二、traceroute | mtr 命令的使用
traceroute命令
該命令獲取當前主機到目標主機所經過的路由(閘道器)
該命令通過傳送小的資料包到目的裝置直到其返回,來測量其需要多長時間
最常用的用法
traceroute HOST
獲取traceroute幫助
# man traceroute
使用示例
###traceroute本地主機
# traceroute 192.168.1.131
traceroute to 192.168.1.131 (192.168.1.131), 30 hops max, 60 byte packets
1 192.168.81.2 (192.168.81.2) 0.388 ms 0.341 ms 0.134 ms
2 * * *
3 * * * //後面部分省略
###traceroute URL
# traceroute www.baidu.com
traceroute to www.baidu.com (14.215.177.39), 30 hops max, 60 byte packets
1 192.168.81.2 (192.168.81.2) 0.178 ms 0.166 ms 0.179 ms
###繞過路由表探測目標URL,如下,提示網路不可達
# traceroute -r www.baidu.com
traceroute to www.baidu.com (14.215.177.39), 30 hops max, 60 byte packets
connect: Network is unreachable
mtr命令
網路連通性判斷工具,它結合了ping, traceroute,nslookup 的相關特性
mtr HOST
示例
### mtr本地主機
# mtr 192.168.1.131
centos7-a.example.com (0.0.0.0) Wed Sep 6 15:55:39 2017
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 192.168.81.2 0.0% 77 0.2 0.3 0.1 1.5 0.1
2. ???
###mtr URL
# mtr www.baidu.com
centos7-a.example.com (0.0.0.0) Wed Sep 6 15:59:29 2017
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 192.168.81.2 0.0% 131 0.3 0.3 0.1 6.7 0.6
2. 192.168.1.1 0.0% 131 3.5 1.6 0.8 7.1 0.8
3. 58.61.29.9 0.0% 130 9.3 2.7 1.1 89.3 7.7
4. 14.215.177.39 2.3% 130 11.1 6.2 5.2 14.6 1.5
三、tracepath命令的使用
用來追蹤並顯示報文到達目的主機所經過的路由資訊
tracepath [option] hostname
常用選項:
-n 對沿途各主機節點, 僅僅獲取並輸出IP地址
不在每個IP 地址的節點裝置上通過DNS查詢其主機名,以此來加快測試速度。
-b 對沿途各主機節點同時顯示IP地址和主機名。
-l 包長度——設定初始的資料包的大小。
-p 埠號——設定UDP傳輸協議的埠(預設為33434)。
示例
# tracepath www.baidu.com
1: [LOCALHOST] pmtu 1500
1: 192.168.81.2 0.204ms
1: 192.168.81.2 0.387ms
2: no reply
四、netstat命令的使用
netstat
該命令用於顯示各種網路相關資訊,如網路連線,路由表,介面狀態 (Interface Statistics)
masquerade 連線,多播成員 (Multicast Memberships) 等等。
常用選項
-t:tcp協議的連線
-u:udp協議的連結
-l:監聽狀態的連線
-a:所有狀態的連線
-p:連線相關的程式
-n:數字格式顯示
-e: 顯示額外的資訊
-r: 顯示路由表,類似於route或ip route show
常用組合:
netstat -tan
netstat -tunlp
netstat -rn
示例
###列出所有的埠,包括監聽的和未監聽的
# netstat -a
###列出所有的tcp協議的埠
# netstat -t ###Author : Leshami
Active Internet connections (w/o servers) ###Blog : http://blog.csdn.net/leshami
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 96 172.24.8.131:ssh 172.24.8.1:59658 ESTABLISHED
tcp 0 0 172.24.8.131:ssh 172.24.8.1:62097 ESTABLISHED
###尋找特定程式執行的埠
# netstat -nltp|grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1564/sshd
tcp6 0 0 :::22 :::* LISTEN 1564/sshd
###尋找特定埠對應的程式
# netstat -nltp|grep 1521
tcp6 0 0 :::1521 :::* LISTEN 3708/tnslsnr
###檢視本機路由資訊
# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default 192.168.81.2 0.0.0.0 UG 0 0 0 eno33554960
172.24.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728
192.168.81.0 0.0.0.0 255.255.255.0 U 0 0 0 eno33554960
五、ss命令的使用
是socket state縮寫,可以檢視系統中socket的狀態的
如顯示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等統計
ss一個非常實用、快速、有效的跟蹤IP連線和sockets的新工具,用於取代netstat
用法:
ss [ OPTIONS ] [ FILTER ]
常用選項
-t:tcp協議的連線
-u:udp協議的連結
-l:監聽狀態的連線
-a:所有狀態的連線
-e:顯示擴充套件資訊
-m:顯示套接連線使用的記憶體資訊
-p:程式及UDP
-n:數字格式顯示
-o state (established)
ss -o state established '( dport = :smtp or sport = :smtp )' 顯示所有已建立的SMTP連線
ss -o state established '( dport = :http or sport = :http )' 顯示所有已建立的HTTP連線
ss -x src /tmp/.X11-unix/* 找出所有連線X伺服器的程式 ###*/
ss -s 列出當前socket詳細資訊:
示例
###檢視所有TCP協議的連線
# ss -ta
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:ssh *:*
LISTEN 0 128 127.0.0.1:ipp *:*
LISTEN 0 100 127.0.0.1:smtp *:*
ESTAB 0 96 172.24.8.131:ssh 172.24.8.1:59658
ESTAB 0 0 172.24.8.131:ssh 172.24.8.1:62097
###檢視所有協議監聽以及列出程式號
# ss -nltup
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 *:44819 *:* users:(("avahi-daemon",pid=888,fd=13))
udp UNCONN 0 0 *:58348 *:* users:(("dhclient",pid=63962,fd=20))
udp UNCONN 0 0 *:68 *:* users:(("dhclient",pid=63962,fd=6))
udp UNCONN 0 0 *:68 *:* users:(("dhclient",pid=37433,fd=6))
udp UNCONN 0 0 *:5353 *:* users:(("avahi-daemon",pid=888,fd=12))
udp UNCONN 0 0 *:5384 *:* users:(("dhclient",pid=37433,fd=20))
udp UNCONN 0 0 :::19332 :::* users:(("dhclient",pid=37433,fd=21))
tcp LISTEN 0 128 *:22 *:* users:("sshd",pid=1564,fd=3))
tcp LISTEN 0 128 127.0.0.1:631 *:* users:(("cupsd",pid=1566,fd=13))
tcp LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=2184,fd=13))
tcp LISTEN 0 128 :::22 :::* users:(("sshd",pid=1564,fd=4))
###檢視所有基於ssh建立連線資訊
# ss -o state established '( dport = :ssh or sport = :ssh )'
Netid Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp 0 96 172.24.8.131:ssh 172.24.8.1:59658 timer:(on,402ms,0)
tcp 0 0 172.24.8.131:ssh 172.24.8.1:62097 timer:(keepalive,60min,0)
六、ethtool命令
用於獲取乙太網卡的配置資訊,或者修改這些配置
常用用法
ethtool eth0 //查詢ethx網口基本設定,其中 x 是對應網路卡的編號,如eth0、eth1等等
ethtool –h //顯示ethtool的命令幫助(help)
ethtool –i eth0 //查詢eth0網口的相關資訊
ethtool –d eth0 //查詢eth0網口註冊性資訊
ethtool –r eth0 //重置eth0網口到自適應模式
ethtool –S eth0 //查詢eth0網口收發包統計
ethtool –s eth0 [speed 10|100|1000] [duplex half|full] [autoneg on|off]
//設定網口速率10/100/1000M、設定網口半/全雙工、設定網口是否自協商
示例
###檢視指定網路卡的資訊
# ethtool eno16777728
Settings for eno16777728:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
###檢視網路卡中接收模組RX、傳送模組TX和Autonegotiate模組的狀態
# ethtool -a eno16777728
Pause parameters for eno16777728:
Autonegotiate: on
RX: off
TX: off
###顯示網路卡驅動的資訊,如驅動的名稱、版本等
# ethtool -i eno16777728
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version:
bus-info: 0000:02:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
###查詢指定網路卡的統計資訊
# ethtool -S eno16777728
NIC statistics:
rx_packets: 12374
tx_packets: 9145
rx_bytes: 1572275
tx_bytes: 1939008
rx_broadcast: 0
tx_broadcast: 0
rx_multicast: 0
tx_multicast: 0
rx_errors: 0
tx_errors: 0
tx_dropped: 0
multicast: 0
collisions: 0
rx_length_errors: 0
相關文章
- Linux常見命令:網路相關ping finger nslookup netstat(轉)Linux
- [網路配置相關]——netstat命令
- 網路狀態檢測的利器 - ss命令
- 使用netstat檢測及監測網路連線
- 網路--ping用法知多少
- Goalng使用ping命令檢測網路是否連通,分析網路故障Go
- 檢視網路連線數netstat -an
- 【linux】命令-網路相關Linux
- Linux網路相關命令Linux
- linux檢視埠及與使用埠程式相關命令_netstat_lsofLinux
- 通過持續Ping來檢測網路質量
- Linux下用netstat檢視網路狀態、埠狀態Linux
- SS命令和Netstat命令比較
- LINUX 網路監控命令(netstat)Linux
- Linux下檢視網路卡設定 ethtool eth0Linux
- 網路相關工具簡單彙總
- 網路--netstat -an
- 使用netstat檢視你的Linux伺服器網路連線Linux伺服器
- linux 網路卡引數 ethtoolLinux
- linux網路相關配置檔案Linux
- 網路入侵檢測規避工具fragrouter
- 網路相關
- ss:檢視網路連線的另一種方法
- ss命令檢視網路狀態引數選項有哪些?linux運維Linux運維
- Linux 程式和網路埠相關命令Linux
- 網路流相關
- 物化檢視相關工具包
- 那些常用的伺服器線上PING檢測工具整理伺服器
- 目標檢測相關論文
- Android工具類之網路相關輔助類Android
- 用ping檢測網段ip的佔用情況
- linux檢視cpu相關資訊Linux
- [Bash] ping netstat & traceroute Command
- 伺服器ping命令用法有什麼——宇眾網路伺服器
- 測試主機網路連通性ping命令引數選項-linux網路管理學習Linux
- iOS探索:網路相關iOS
- 網路相關知識
- 【Linux】Linux網路配置基礎1 網路相關命令與網路卡配置檔案Linux