Linux:检查网络连接命令

时间:2020-01-09 10:37:39  来源:igfitidea点击:

如何使用命令行选项在Linux下检查网络连接?
您需要在Linux下使用以下任何工具或命令来检查网络连接,包括它们的状态,源/目标,地址和带宽使用情况等:

  • ss命令:它转储套接字(网络连接)统计信息,例如所有TCP/UDP连接,每个协议已建立的连接(例如,显示所有已建立的ssh连接),以各种状态(例如ESTABLISHED或FIN-WAIT)显示所有tcp套接字-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
IpExt:
    InBcastPkts: 10

显示所有打开的网络端口

使用ss命令,如下所示:

# 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 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   
udp6       0      0 :::53                   :::*                                1343/named

显示所有TCP套接字

键入ss命令,如下所示:

# ss -t -a

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

# netstat -nat

显示所有UDP套接字

键入ss命令,如下所示:

# ss -u -a

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

# netstat -nau

lsof命令

您可以使用以下lsof命令列出有关打开的端口的更多信息:

# lsof -i :portNumber

# lsof -i tcp:portNumber

# lsof -i udp:portNumber

# lsof -i :80 | grep LISTEN

仅查看已建立的连接

使用netstat命令,如下所示:

# netstat -natu | grep 'ESTABLISHED'

对tcptrack打个招呼

tcptrack命令显示它在给定网络接口上看到的TCP连接的状态。

tcptrack监视它们的状态,并在排序后的更新列表中显示诸如状态,源/目标地址和带宽使用情况之类的信息,这与top命令非常相似。

#  tcptrack -i eth0

输出示例:

运行中的tcptrack

有关更多信息,请参见如何在Linux下安装和使用tcptrack工具。

iftop命令

iftop命令侦听给定网络接口(例如eth0)上的网络流量,并按主机对显示当前带宽使用情况的表:

# iftop -i eth1

它可以显示或分析流入和流出192.168.1.0/24网络的数据包:

# iftop -F 192.168.1.0/24