问题根源是服务仅绑定127.0.0.1,未监听0.0.0.0或本机真实IP;需用sudo ss -tuln | grep :端口确认监听地址,再修改服务配置为0.0.0.0,最后排查防火墙与网络路径。

问题核心不在“通不通”,而在“监听谁”——localhost 能通、本机 IP 不通,90% 是服务只绑定了 127.0.0.1,没监听真实网卡地址或 0.0.0.0。防火墙只是第二关,先确认监听配置是否允许外部连接。
看监听地址:确认服务到底在听谁
运行以下命令(需 sudo 权限才能看到全部):
- sudo ss -tuln | grep :端口号(推荐,快且准)
- 或 sudo netstat -tuln | grep :端口号(兼容老系统)
重点看 Local Address:Port 这一列:
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 0.0.0.0:8080 或 *:8080 → 监听所有接口,外网可访问
- 127.0.0.1:8080 → 只监听回环,仅 localhost 可连
- 192.168.1.100:8080 → 只监听该网卡 IP,其他内网设备可能无法访问(取决于路由)
查服务配置:找到并修正绑定地址
很多服务默认安全策略是 bind-address = 127.0.0.1 或 host: "localhost",需手动放开:
-
Node.js(Express):启动时用
app.listen(3000, '0.0.0.0'),别写'127.0.0.1' -
Python Flask:运行加参数
--host=0.0.0.0 --port=5000 -
MySQL:检查
/etc/mysql/mysql.conf.d/mysqld.cnf中bind-address是否为0.0.0.0(改完需sudo systemctl restart mysql) -
Nginx / Apache:确认
listen指令未限定为127.0.0.1:80,应为listen 80;或listen 0.0.0.0:80;
验证本地连通性:排除服务自身故障
在服务本机执行,绕过网络和防火墙干扰:
- HTTP 服务:
curl -v http://127.0.0.1:端口→ 必须成功(否则服务没起来或报错) - TCP 通用测试:
telnet 127.0.0.1 端口或nc -zv 127.0.0.1 端口 - 再试本机真实 IP:
curl -v http://192.168.1.100:端口→ 若失败而上一步成功,基本锁定监听地址问题
再查防火墙与网络路径:最后一道防线
监听正确但外网仍不通?按顺序排查:
-
系统防火墙:查
sudo firewall-cmd --list-ports(firewalld)、sudo iptables -L -n | grep 端口或sudo nft list ruleset,确保对应端口已放行 - 云服务器额外注意:阿里云/腾讯云的安全组必须单独放行该端口,它独立于系统防火墙
-
客户端实测:从另一台机器执行
nc -zv 你的IP 端口或telnet 你的IP 端口:- 显示 Connection refused → 服务未监听(回到第一步)
- 显示 timeout 或无响应 → 防火墙/安全组拦截或路由不通

















