ubuntu 网络监听工具及使用方法详解
在Ubuntu系统中,网络监听工具可用于监控网络流量、端口活动及数据包传输,以下是一些常用工具及其使用方法详解:
一、基础网络状态查看工具
-
netstat
(需sudo权限)- 查看监听端口:
sudo netstat -tulnp
-t
:显示TCP端口-u
:显示UDP端口-l
:仅显示监听中的端口-n
:以数字形式显示地址和端口-p
:显示进程信息
- 查看监听端口:
-
ss
(netstat
的现代替代工具)- 查看所有连接:
参数与ss -tulnp
netstat
类似,但性能更高。
- 查看所有连接:
-
lsof
(查看文件和网络连接)- 筛选监听端口:
sudo lsof -i -P -n | grep LISTEN
-i
:显示网络连接-P
:禁用端口号转换服务名-n
:禁用IP地址转换主机名
- 筛选监听端口:
二、实时流量监控工具
-
tcpdump
(命令行抓包)- 基本抓包:
sudo tcpdump -i eth0
-i eth0
:指定网卡(如eth0
、ens33
)
- 抓取特定端口(如HTTP的80端口):
sudo tcpdump -i any port 80 -w port80.pcap
-w port80.pcap
:将数据保存为文件,可用Wireshark分析。
- 基本抓包:
-
nload
(实时带宽监控)- 安装并运行:
按sudo apt install nload sudo nload
Enter
选择网卡,实时显示上传/下载带宽。
- 安装并运行:
-
iftop
(流量监控)- 安装并运行:
显示实时流量排名,按sudo apt install iftop sudo iftop -i eth0
o
切换显示端口。
- 安装并运行:
三、高级网络分析工具
-
Wireshark
(图形化抓包分析)- 安装:
sudo apt install wireshark
- 使用:
- 启动Wireshark,选择网卡。
- 设置过滤规则(如
tcp.port == 80
)。 - 分析数据包详情(如HTTP请求、TCP握手)。
- 安装:
-
ngrep
(基于正则表达式的抓包)- 监听特定端口(如12301):
sudo ngrep -d lo '' 'port 12301' -W byline
-d lo
:指定回环网卡(lo
为本地回环)。-W byline
:按行显示数据。
- 监听特定端口(如12301):
四、端口通信调试工具
-
nc
(netcat)- 监听端口:
在另一终端发送数据测试:nc -l 1234
echo "test" | nc localhost 1234
- 监听端口:
-
socat
(高级网络工具)- 监听端口并重定向输出:
将接收的数据重定向到终端。socat TCP-LISTEN:1234,fork /dev/tty
- 监听端口并重定向输出:
五、防火墙与连通性测试
-
检查防火墙规则
- UFW:
sudo ufw status
- iptables:
sudo iptables -L -n
- UFW:
-
测试端口连通性
- 使用
telnet
(需安装):telnet 目标IP 端口号
- 使用
nc
:nc -zv 目标IP 端口号
- 使用
六、可视化监控工具
-
Netdata
(实时系统监控)- 安装:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
- 访问:
显示CPU、内存、网络等实时指标。http://你的服务器IP:19999/
- 安装:
-
Monitorix
(轻量级监控)- 安装:
sudo apt install monitorix
- 访问:
http://你的服务器IP:8080/monitorix/
- 安装:
使用场景推荐
- 快速排查问题:
netstat
/ss
+tcpdump
- 长期流量监控:
nload
/iftop
- 深度协议分析:
Wireshark
- 服务端调试:
nc
/socat
- 可视化监控:
Netdata
/Monitorix
注意事项
- 权限问题:抓包工具(如
tcpdump
)需sudo
权限。 - 数据安全:监听端口可能涉及敏感信息,确保合法合规。
- 服务管理:长期监听建议通过
systemd
或supervisor
管理。