使用 nc
(Netcat)进行 TCP/UDP 调试
Netcat 是一个功能强大的网络调试工具,支持 TCP 和 UDP 协议。
TCP 服务器模式
监听 TCP 端口 8080:
nc -l 8080
TCP 客户端模式
连接 TCP 服务器(假设服务器 IP 为 192.168.1.100):
nc 192.168.1.100 8080
UDP 服务器模式
监听 UDP 端口 8080:
nc -u -l 8080
UDP 客户端模式
发送 UDP 数据到服务器:
nc -u 192.168.1.100 8080
使用 telnet
进行 TCP 调试
Telnet 可用于测试 TCP 连接和端口是否开放。
测试 TCP 连接(例如 HTTP 服务):
telnet example.com 80
输入 HTTP 请求测试:
GET / HTTP/1.1
Host: example.com
使用 curl
进行 HTTP 调试
curl
可用于测试 HTTP 或 HTTPS 服务。
发送 GET 请求:
curl http://example.com
发送 POST 请求:
curl -X POST -d "data=test" http://example.com/api
使用 socat
进行高级网络调试
socat
是一个多功能网络工具,可处理 TCP、UDP、SSL 等。
TCP 监听并打印数据
监听 TCP 端口 8080 并打印接收的数据:
socat TCP-LISTEN:8080,fork -
UDP 监听并打印数据
监听 UDP 端口 8080:
socat UDP-LISTEN:8080,fork -
转发 TCP 流量
将本地 8080 端口转发到远程服务器 80 端口:
socat TCP-LISTEN:8080,fork TCP:example.com:80
使用 tcpdump
抓包分析
tcpdump
可用于抓取网络数据包进行调试。
抓取所有经过 eth0 网卡的数据包:
tcpdump -i eth0
抓取 TCP 端口 8080 的数据包:
tcpdump -i eth0 tcp port 8080
抓取 UDP 端口 8080 的数据包:
tcpdump -i eth0 udp port 8080
使用 wireshark
图形化分析
wireshark
提供图形化界面分析网络数据包。
安装 Wireshark:
sudo apt install wireshark # Debian/Ubuntu
sudo yum install wireshark # CentOS/RHEL
运行 Wireshark:
wireshark
使用 ping
测试网络连通性
测试目标主机是否可达:
ping example.com
测试 UDP 连通性(使用 -u
选项):
ping -u example.com
以上工具可用于不同场景下的 TCP/UDP 调试,选择适合的工具可提高调试效率。