网络排错命令
ip 命令
ip 替代了旧的 ifconfig 命令。
| 命令 | 说明 |
|---|---|
ip link show | 查看所有网络接口 |
ip addr show | 查看 IP 地址 |
ip -4 addr show | 仅查看 IPv4 地址 |
ip -6 addr show | 仅查看 IPv6 地址 |
ip route show | 查看路由表 |
ip route get 8.8.8.8 | 查看到某 IP 的路由 |
sudo ip link set enp0s3 up | 启用网络接口 |
sudo ip link set enp0s3 down | 禁用网络接口 |
sudo ip addr add 192.168.1.100/24 dev enp0s3 | 临时添加 IP |
sudo ip route add 10.0.0.0/8 via 192.168.1.1 | 临时添加路由 |
ip neigh show | 查看邻居表(ARP) |
ss 命令
ss 替代了旧的 netstat 命令。参数说明:-t TCP、-u UDP、-l 监听、-n 不解析名称、-p 显示进程。
| 命令 | 说明 |
|---|---|
ss -tlnp | 查看所有监听端口 |
ss -tnp | 查看所有 TCP 连接 |
ss -ulnp | 查看所有 UDP 端口 |
ss -tlnp | grep :80 | 查看特定端口 |
ss -tlnp sport = :443 | 按端口号过滤 |
ss -s | 查看连接统计 |
ss -tnp | grep 进程名 | 查看某进程的网络连接 |
ping
| 命令 | 说明 |
|---|---|
ping -c 4 8.8.8.8 | 测试连通性 |
ping -c 10 -i 0.5 -s 1400 目标IP | 指定次数、间隔和包大小 |
ping6 ::1 | IPv6 ping |
ping -c 1 -W 1 192.168.1.1 && echo "在线" || echo "离线" | 快速检测主机是否在线 |
traceroute / tracepath
| 命令 | 说明 |
|---|---|
traceroute www.baidu.com | 追踪路由路径 |
sudo traceroute -I www.baidu.com | 使用 ICMP 追踪 |
sudo traceroute -T -p 80 www.baidu.com | 使用 TCP 追踪(穿透防火墙) |
tracepath www.baidu.com | 追踪路由(不需要 root) |
mtr www.baidu.com | 综合 ping + traceroute(需安装 mtr-tiny) |
dig / nslookup
| 命令 | 说明 |
|---|---|
dig www.baidu.com | DNS 查询 |
dig +short www.baidu.com | 简短输出 |
dig MX baidu.com | 查询 MX 记录 |
dig AAAA www.baidu.com | 查询 IPv6 记录 |
dig NS baidu.com | 查询域名服务器 |
dig TXT baidu.com | 查询 TXT 记录 |
dig @8.8.8.8 www.baidu.com | 指定 DNS 服务器查询 |
dig -x 114.114.114.114 | 反向查询 |
nslookup www.baidu.com | 简单 DNS 查询 |
nslookup www.baidu.com 8.8.8.8 | 指定 DNS 服务器 |
curl
| 命令 | 说明 |
|---|---|
curl https://www.baidu.com | GET 请求 |
curl -I https://www.baidu.com | 显示响应头 |
curl -v https://www.baidu.com | 显示详细信息 |
curl -o /dev/null -s -w "%{http_code}\n" https://www.baidu.com | 只显示 HTTP 状态码 |
curl -X POST -d "key=value" https://api.example.com | POST 请求 |
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com | JSON POST |
curl -O https://example.com/file.zip | 下载文件(保留原名) |
curl -o 新文件名.zip https://example.com/file.zip | 下载文件(自定义名称) |
curl -o /dev/null -s -w "DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" https://www.baidu.com | 测试连接耗时 |
curl -x http://proxy:8080 https://www.baidu.com | 通过代理请求 |
wget
| 命令 | 说明 |
|---|---|
wget https://example.com/file.zip | 下载文件 |
wget -c https://example.com/large-file.iso | 断点续传 |
wget -b https://example.com/large-file.iso | 后台下载 |
wget --limit-rate=1M https://example.com/file.zip | 限速下载 |
NetworkManager 命令
| 命令 | 说明 |
|---|---|
nmcli general status | 查看连接状态 |
nmcli connection show | 查看所有连接 |
nmcli device wifi list | 查看 Wi-Fi 列表 |
nmcli device status | 查看设备状态 |
sudo systemctl restart NetworkManager | 重启网络 |
防火墙排查
| 命令 | 说明 |
|---|---|
sudo ufw status verbose | UFW 状态 |
sudo iptables -L -n -v | iptables 规则 |
sudo nft list ruleset | nftables 规则 |
综合排错流程
| 步骤 | 命令 | 说明 |
|---|---|---|
| 1 | ip link show | 检查接口是否启用 |
| 2 | ip addr show | 检查 IP 地址 |
| 3 | ip route show | 查看网关 |
| 4 | ping -c 2 网关IP | 测试网关连通性 |
| 5 | ping -c 2 8.8.8.8 | 测试外网连通性 |
| 6 | dig www.baidu.com | 测试 DNS |
| 7 | curl -I https://www.baidu.com | 测试 HTTP |
Last updated on