Linux 网络连不上怎么办?用 ping/ip/ss 一步步排查连通性的实战指南

在 Linux 上遇到“网络连不上”是最常见也最容易让人抓瞎的故障:网页打不开、SSH 登不进去、服务对外暴露失败。很多人第一反应是重启网卡,但往往重启完还是老样子。真正高效的做法是分层排查——先判断是本机配置问题、还是网络链路问题、还是对端服务/防火墙问题。本文就按这个顺序,用一套最常用的命令把网络连通性查个明白。

一、先确认是“本机问题”还是“网络问题”

排查的第一步永远是缩小范围。先在本机 ping 自己的回环地址 127.0.0.1,再 ping 网关,最后 ping 一个公网地址(如 8.8.8.8)。如果连网关都 ping 不通,问题大概率在本地 IP 配置或网线;如果能 ping 通 IP 但 ping 不通域名,那就是 DNS 的问题(后面会讲)。这条主线能让你在 30 秒内判断故障落在哪一层。

二、看 IP 与路由:ip addr 与 ip route

确认不通后,先看清本机到底拿了什么地址。ip addr 能列出所有网卡和分配的 IP;如果看到 169.254.x.x 这类链路本地地址,说明 DHCP 没拿到地址。ip route 则显示默认网关——没有默认路由,所有出网流量都会失败。相比老旧的 ifconfigrouteip 命令是现代发行版的统一入口,建议直接上手。

三、看端口与监听:ss/netstat 谁在占用

很多时候“连不上”不是网络断了,而是服务根本没在监听,或被别的进程占了端口。用 ss -ltnp 查看本机正在监听的 TCP 端口,确认你的服务(比如 80、22、3306)是否真的起来了;ss -antp 则能看到已建立的连接。netstat 用法类似,但 ss 更快更准。若发现端口被意外进程占用,先 kill 再重启服务即可。

四、DNS 解析卡住:resolv.conf 与 dig

能 ping 通 IP 却打不开网站,八成是 DNS。先看 /etc/resolv.conf 里有没有有效的 nameserver;再用 dig 域名nslookup 域名 直接测解析。如果 dig 返回超时,说明 DNS 服务器不可达,换个公共 DNS(如 223.5.5.5)通常立竿见影。systemd-resolved 管理的机器还要留意 /etc/resolv.conf 其实是软链接。

五、防火墙挡路:别忽略 ufw / firewalld

配置全对却还是连不上,十有八九是防火墙在拦。Debian 系常用 Linux 防火墙配置实战:从 ufw 到 firewalld,开放端口与放行服务不再踩坑 里介绍的方法放行端口;CentOS/RHEL 则多用 firewalld 的 firewall-cmd。务必确认规则已 --permanent 持久化并 reload,否则重启后规则丢失,故障重现。

六、SSH 连不上的专项排查

SSH 是运维的生命线。连不上时,先用 Linux SSH 密钥登录配置实战:从免密连接到防断线的安全进阶 检查密钥与权限(~/.ssh 权限过松会被拒绝),再看服务是否监听 22 端口、防火墙是否放行。加上 -v 参数能看到详细的握手过程,是定位认证失败最快的办法。

七、日志里找线索

以上都正常却依然诡异,就去日志里捞线索。Linux 系统日志查看与分析实战:journalctl 与 /var/log 双管齐下 讲的 journalctl 能直接过滤网络相关单元:journalctl -u NetworkManager-u sshd,往往一眼就能看到报错根源。

小结

Linux 网络排查的核心不是记命令,而是建立分层思维:回环→网关→外网→DNS→端口→防火墙→服务日志。按顺序走,绝大多数“连不上”都能在几分钟内定位。把这套流程记熟,下次遇到故障你就能气定神闲,而不是盲重启。

© 版权声明
THE END
喜欢就支持一下吧
点赞13赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容