linux系统如何查看网络链接情况
- Linux
- 2025-07-13
- 4
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
命令替代,但它仍然是一个强大的工具。
常用选项:
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中查看某个特定端口的连接情况?
答:可以使用netstat
或ss
命令结合端口号来查看,查看80端口的连接情况:
netstat -tuln | grep :80
或者:
ss -tuln | grep :80
这些命令会显示所有监听在80端口的网络连接。
问题2:如何查看某个进程的网络连接情况?
答:可以使用lsof
命令结合进程ID或进程名来查看,查看进程ID为1234的网络连接:
lsof -p 1234
或者查看进程名为sshd
的网络连接:
lsof -i | gre