ubuntu进程网络连接问题怎么排查
导读:Ubuntu 进程网络连接排查手册 一 定位到具体进程与连接 按进程名或 PID 查连接与监听端口: 查看所有连接并筛选进程名:sudo ss -tulpen | grep <进程名或PID> 仅看监听端口:ss -ltnp...
Ubuntu 进程网络连接排查手册
一 定位到具体进程与连接
- 按进程名或 PID 查连接与监听端口:
- 查看所有连接并筛选进程名:sudo ss -tulpen | grep < 进程名或PID>
- 仅看监听端口:ss -ltnp | grep < 进程名或PID>
- 兼容旧环境:netstat -tulpen | grep < 进程名或PID>
- 快速确认进程是否存在与运行状态:ps -fp ;必要时用 lsof -Pan -p 查看该进程打开的所有套接字与对端信息。
- 若服务是容器/虚拟化运行,先确认宿主机与容器的网络命名空间对应关系(如 docker inspect、podman inspect、nsenter)。
二 从“进程→本机→对端”三层连通性验证
- 进程层:确认应用实际监听的地址与端口(0.0.0.0 表示所有地址,127.0.0.1 仅本机)。
- 本机层:
- 接口与地址:ip a;确保网卡处于 UP 且有有效 IP。
- 路由可达:ip route;确认存在 default 路由或通过 网关IP 可达目标网段。
- 连通性测试:
- 先 ping 网关(先拿到网关:ip route | grep default)。
- 再 ping 外部地址(如 8.8.8.8)验证出网。
- 路径跟踪:tracepath 或 mtr < 目标IP/域名> 定位在哪一跳异常。
- 对端/服务层:
- 端口可达:nc -vz < 目标IP或域名> < 端口> 或 curl -v telnet://< 目标IP或域名> :< 端口> 。
- 本机到本机回环:curl -v http://127.0.0.1:< 端口> 验证服务是否监听正确地址。
- DNS 解析:nslookup/dig < 域名> ;若域名不通而 IP 通,多为 DNS 问题。
三 常见故障点与修复动作
- 防火墙/安全组拦截:
- 查看状态:sudo ufw status;必要时临时放行测试:sudo ufw allow < 端口> /tcp 或 sudo ufw disable(测试后恢复)。
- 服务未监听或监听错地址:
- 修正配置让服务监听 0.0.0.0:端口 或正确的 网卡IP,重启服务后再次 ss -ltnp 验证。
- 路由缺失:
- 添加默认路由:sudo ip route add default via < 网关IP> ;持久化配置请写入 Netplan 或接口配置文件。
- DHCP/地址获取失败:
- 重新获取地址:sudo dhclient -v < 接口名> ;检查 NetworkManager 是否正常运行。
- DNS 配置错误:
- 查看 /etc/resolv.conf;临时写入 nameserver 8.8.8.8 测试;生产环境建议写入 Netplan 或使用 NetworkManager 的 DNS 配置。
- 虚拟机网络模式不当:
- NAT 通常可直接上网;桥接 需与主机同网段并可从外部访问;必要时在 VMware/VirtualBox 中切换模式重试。
四 系统与服务状态快速核查
- 网络管理服务:
- NetworkManager:systemctl status NetworkManager;异常时 sudo systemctl restart NetworkManager。
- 服务器版常见 Netplan:/etc/netplan/*.yaml;修改后 sudo netplan apply(必要时 sudo netplan --debug generate)。
- 日志与内核消息:
- 系统日志:journalctl -xe;内核与网络:dmesg | grep -i net;综合排错可查 /var/log/syslog。
- 硬件与驱动:
- 网卡识别:lspci | grep -i net;驱动与链路状态:sudo lshw -C network、ethtool < 接口名> ;无线被软屏蔽:rfkill list。
五 一键排查命令清单示例
- 定位进程连接:ss -tulpen | grep < 进程名或PID>
- 接口与地址:ip a
- 路由与默认网关:ip route
- 连通性:ping -c 4 < 网关IP> ;ping -c 4 8.8.8.8
- 路径跟踪:tracepath < 目标IP/域名> 或 mtr < 目标IP/域名>
- 端口可达:nc -vz < 目标IP或域名> < 端口> 或 curl -v telnet://< 目标IP或域名> :< 端口>
- 服务与日志:systemctl status NetworkManager;journalctl -xe;dmesg | grep -i net
- DNS:nslookup/dig < 域名> ;cat /etc/resolv.conf
- 防火墙:sudo ufw status;测试时 sudo ufw disable(测试后恢复)
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu进程网络连接问题怎么排查
本文地址: https://pptw.com/jishu/763786.html
