Linux系統怎樣查看網絡連接情況?

Linux系統網絡相關命令

在Linux下怎樣檢查網絡連接,包括其狀態,源/目標,地址和帶寬使用情況呢?主要有:
ss命令:轉儲套接字(網絡連接)統計信息,如所有TCP / UDP連接,每個協議建立的連接(例如,顯示所有建立的ssh連接),顯示各種狀態下的所有tcp套接字,如ESTABLISHED或FIN-WAIT-1 等等。
netstat命令:可以顯示網絡連接,路由表,接口等。
tcptrack和iftop命令:顯示在網絡接口上看到的TCP連接的信息,並分別顯示主機的接口帶寬使用情況。

顯示當前已建立,關閉,孤立和等待TCP套接字連接

命令:

#ss -s

輸出:

Total: 529 (kernel 726)
TCP: 1403 (estab 286, closed 1099, orphaned 1, synrecv 0, timewait 1098/0), ports 774

Transport Total IP IPv6
* 726 - -
RAW 0 0 0
UDP 27 13 14
TCP 304 298 6
INET 331 311 20
FRAG 0 0 0

或者,可以使用netstat命令,如下所示:

# netstat -s

輸出如下:

Ip:
    102402748 total packets received
    3 with invalid addresses
    0 forwarded
    0 incoming packets discarded
    102192035 incoming packets delivered
    95627316 requests sent out
Icmp:
    6726 ICMP messages received
    167 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 2353
        timeout in transit: 4
        echo requests: 4329
    10323 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 5994
        echo replies: 4329
IcmpMsg:
        InType3: 2353
        InType8: 4329
        InType11: 4
        OutType0: 4329
        OutType3: 5994
Tcp:
    839222 active connections openings
    2148984 passive connection openings
    1480 failed connection attempts
    1501 connection resets received
    281 connections established
    101263451 segments received
    94668430 segments send out
    9820 segments retransmited
    0 bad segments received.
    1982 resets sent
Udp:
    1024635 packets received
    18 packets to unknown port received.
    0 packet receive errors
    1024731 packets sent
TcpExt:
    592 invalid SYN cookies received
    396 resets received for embryonic SYN_RECV sockets
    InBcastPkts: 10

顯示所有打開的網絡端口

命令

#ss -l

輸出如下:

Recv-Q Send-Q Local Address:Port Peer Address:Port
0 50 127.0.0.1:mysql *:*
0 128 127.0.0.1:11211 *:*
0 128 *:sunrpc *:*
0 128 :::www :::*
0 128 *:55153 *:*
0 3 10.1.11.27:domain *:*
0 3 192.168.1.101:domain *:*
0 3 127.0.0.1:domain *:*
0 3 :::domain :::*
0 128 :::ssh :::*
0 128 *:ssh *:*
0 128 127.0.0.1:ipp *:*
0 128 ::1:ipp :::*
0 128 :::afs3-callback :::*
0 128 *:afs3-callback *:*
0 100 *:smtp *:*
0 128 ::1:953 :::*
0 128 127.0.0.1:953 *:*
0 5 *:8000 *:*

或者使用netstat命令:

# netstat -tulpn

輸出如下:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1380/mysqld
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 1550/memcached
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 936/portmap
tcp 0 0 0.0.0.0:55153 0.0.0.0:* LISTEN 1025/rpc.statd
tcp 0 0 10.1.11.27:53 0.0.0.0:* LISTEN 1343/named
tcp 0 0 192.168.1.101:53 0.0.0.0:* LISTEN 1343/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1343/named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 979/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1828/cupsd
tcp 0 0 0.0.0.0:7001 0.0.0.0:* LISTEN 10129/transmission
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1694/master
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1343/named
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 1539/icecast2
tcp6 0 0 :::80 :::* LISTEN 1899/apache2
tcp6 0 0 :::53 :::* LISTEN 1343/named
tcp6 0 0 :::22 :::* LISTEN 979/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1828/cupsd
tcp6 0 0 :::7001 :::* LISTEN 10129/transmission
tcp6 0 0 ::1:953 :::* LISTEN 1343/named
udp 0 0 239.255.255.250:1900 0.0.0.0:* 11937/opera
udp 0 0 239.255.255.250:1900 0.0.0.0:* 11937/opera
udp 0 0 0.0.0.0:111 0.0.0.0:* 936/portmap
udp 0 0 0.0.0.0:777 0.0.0.0:* 1025/rpc.statd
udp 0 0 0.0.0.0:38297 0.0.0.0:* 1025/rpc.statd
udp 0 0 192.168.1.101:33843 0.0.0.0:* 11937/opera
udp 0 0 10.1.11.27:53 0.0.0.0:* 1343/named
udp 0 0 192.168.1.101:53 0.0.0.0:* 1343/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 1343/named
udp 0 0 0.0.0.0:68 0.0.0.0:* 5840/dhclient
udp 0 0 127.0.0.1:11211 0.0.0.0:* 1550/memcached
udp 0 0 0.0.0.0:7001 0.0.0.0:* 10129/transmission
udp 0 0 10.1.11.27:33372 0.0.0.0:* 11937/opera
udp6 0 0 :::53 :::*

顯示所有的TCP套接字連接

# ss -t -a

或者

# netstat -nat

顯示所有的UDP套接字連接

# ss -u -a

或者

# netstat -nau

查看已建立的連接情況

# netstat -natu | grep 'ESTABLISHED'

使用tcptrack命令查看TCP連接情況

tcptrack命令顯示在給定網絡接口上看到的TCP連接的狀態。 tcptrack監視其狀態,並在排序更新的列表中顯示非常類似於top命令的狀態,源/目標地址和帶寬使用等信息。
命令如下:

# tcptrack -i eth0

使用iftop命令查看端口速率情況

iftop命令偵聽給定網絡接口(如eth0)上的網絡流量,並顯示主機數目的當前帶寬使用情況:

# iftop -i eth1

並且iftop命令還可以查看某一個網段的數據包流入和流出情況,例如查看192.168.1.0/24網段的數據流:

# iftop -F 192.168.1.0/24

By Code問答

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

− 2 = 4