当前位置:首页 > Linux > 正文

linux系统如何查看网络链接情况

Linux系统中,查看网络连接情况可使用多种命令,如 netstat -tuln可显示所有TCP和UDP监听端口及连接状态; ss -tuln功能类似且更高效; lsof -i能显示网络连接及相关进程; ip link可查看网卡链路状态

Linux系统中,查看网络连接情况是系统管理和网络故障排查的重要环节,以下是几种常用的方法和命令,详细列出了如何查看网络连接的各个方面:

ifconfig命令

ifconfig是一个传统的网络配置命令,可以显示网络接口的配置信息,包括IP地址、子网掩码、MAC地址等,虽然在一些现代Linux发行版中已经被ip命令取代,但仍然广泛使用。

常用选项:

  • ifconfig:显示所有网络接口的详细信息。
  • ifconfig <接口名>:显示指定网络接口的详细信息。

示例:

ifconfig

输出示例:

eth0      Link encap:Ethernet  HWaddr 00:0c:29:68:22:1d  
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe68:221d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:239576 errors:0 dropped:0 overruns:0 frame:0
          TX packets:143203 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:143203 (143.2 KB)  TX bytes:239576 (239.6 KB)

ip命令

ip命令是ifconfig的现代替代品,功能更强大,语法更统一,它可以用于显示和配置网络接口、路由表等信息。

常用选项:

  • ip addr show:显示网络接口的详细信息。
  • ip -s link:显示网络接口的统计信息。
  • ip route:显示路由表信息。

示例:

ip addr show

输出示例:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:0c:29:68:22:1d brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe68:221d/64 scope link 
       valid_lft forever preferred_lft forever

netstat命令

netstat命令用于显示网络连接、路由表和网络接口信息,虽然在一些现代Linux发行版中被推荐使用ss命令替代,但它仍然是一个强大的工具。

常用选项:

linux系统如何查看网络链接情况  第1张

  • netstat -a:显示所有网络连接。
  • netstat -t:显示TCP连接。
  • netstat -u:显示UDP连接。
  • netstat -l:显示监听状态的网络服务。
  • netstat -p:显示与网络连接相关的进程信息。
  • netstat -tuln:显示所有监听的TCP和UDP端口。

示例:

netstat -tuln

输出示例:

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:               LISTEN     
udp        0      0 0.0.0.0:53              0.0.0.0:                          
udp        0      0 127.0.0.1:123           0.0.0.0:                          

ss命令

ss命令是netstat的现代化替代品,速度更快,输出更简洁,它用于显示套接字的状态信息。

常用选项:

  • ss -a:显示所有网络连接。
  • ss -t:显示TCP连接。
  • ss -u:显示UDP连接。
  • ss -l:显示监听状态的网络服务。
  • ss -p:显示与网络连接相关的进程信息。
  • ss -tuln:显示所有监听的TCP和UDP端口。

示例:

ss -tuln

输出示例:

Netid State      Recv-Q Send-Q Local Address:Port Peer Address:Port 
tcp   LISTEN     0      128    :22                     :                  
tcp   LISTEN     0      128    127.0.0.1:631           :                  
udp   :53                   :                  
udp   127.0.0.1:123          :                  

lsof命令

lsof命令用于显示系统中打开的文件和网络连接,它可以通过-i选项来过滤显示网络连接。

常用选项:

  • lsof -i:显示所有网络连接。
  • lsof -i tcp:显示TCP连接。
  • lsof -i udp:显示UDP连接。
  • lsof -i :端口号:显示指定端口的网络连接。
  • lsof -p 进程号:显示指定进程的网络连接。

示例:

lsof -i tcp

输出示例:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1234 root    3u  IPv4  12345      0t0  TCP :22 (LISTEN)

tcpdump命令

tcpdump命令用于抓取和分析网络流量,它可以显示网络连接的详细信息,适用于网络故障排查和安全审计。

常用选项:

  • tcpdump -i <网络接口>:抓取指定网络接口上的数据包。
  • tcpdump host <IP地址>:抓取与指定主机进行通信的数据包。
  • tcpdump port <端口号>:抓取与指定端口进行通信的数据包。
  • tcpdump -n:显示IP地址和端口号,而不进行DNS解析。

示例:

tcpdump -i eth0 host 192.168.1.100

输出示例:

15:32:10.123456 IP 192.168.1.100.12345 > 192.168.1.1.80: Flags [S], seq 123456789, win 65535, options ...

iftop命令

iftop命令用于实时监测网络流量,可以显示网络连接的带宽使用情况,它类似于Windows系统中的“任务管理器”网络监控功能。

常用选项:

  • iftop -i <网络接口>:监测指定网络接口上的网络流量。

示例:

iftop -i eth0

输出示例:

TX:                                                     CURRENT(由eth0发送)  峰值为 100 Mb/s
RX:                                                     CURRENT(由eth0接收)  峰值为 200 Mb/s
TOTAL:                                                 CURRENT(总流量)       峰值为 300 Mb/s
TRANSMITTED(由eth0发送):    10.23 Mb/s | RECEIVED(由eth0接收):    20.45 Mb/s | TOTAL(总流量):    30.68 Mb/s

归纳对比表

命令 功能描述 常用选项 适用场景
ifconfig 显示网络接口配置信息 ifconfig, ifconfig <接口名> 查看网络接口IP、MAC地址等
ip 显示和配置网络接口、路由表 ip addr show, ip route 查看网络接口详细信息、路由表
netstat 显示网络连接、路由表、接口统计信息 netstat -a, netstat -t, netstat -u 查看网络连接状态、监听端口
ss 显示套接字状态信息 ss -a, ss -t, ss -u 快速查看网络连接信息
lsof 显示打开的文件和网络连接 lsof -i, lsof -i tcp, lsof -i udp 查看特定进程的网络连接
tcpdump 抓取和分析网络数据包 tcpdump -i, tcpdump host, tcpdump port 网络故障排查、安全审计
iftop 实时监测网络流量 iftop -i 实时查看网络带宽使用情况

相关问答FAQs

问题1:如何在Linux中查看某个特定端口的连接情况?
答:可以使用netstatss命令结合端口号来查看,查看80端口的连接情况:

netstat -tuln | grep :80

或者:

ss -tuln | grep :80

这些命令会显示所有监听在80端口的网络连接。

问题2:如何查看某个进程的网络连接情况?
答:可以使用lsof命令结合进程ID或进程名来查看,查看进程ID为1234的网络连接:

lsof -p 1234

或者查看进程名为sshd的网络连接:

lsof -i | gre
0