首页/网络/网络排障速查/0.0.0.0 与 127.0.0.1 绑定差异
本包目录(235 条)

0.0.0.0 与 127.0.0.1 绑定差异

本机访问正常、外部访问不通,最常见的根因是 bind 地址不对:0.0.0.0 监听所有地址、127.0.0.1 只收本机、指定 IP 只收该网卡;容器与网关场景还要考虑 netns。

网络排障速查网络更新于 2026-10-12
场景外部访问不通但本机 curl 正常
工具ss -tlnp 看 Local Address
平台Linux/Windows 同理
原理bind 决定内核把哪些目的地址的包交给该 socket

绑定写法

Local Address含义
0.0.0.0:80 / *:80所有 IPv4 地址均可访问
127.0.0.1:80仅本机回环,外部一律不可达
192.168.1.5:80仅绑定该网卡地址
[::]:80IPv6 全部地址(多数系统同时接受 v4-mapped)

排查与验证

排查与验证
ss -tlnp | grep -E ':80\b'
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:80/
curl -sS -o /dev/null -w '%{http_code}\n' http://192.168.1.5:80/
# 再从外部机器验证:
curl -v --connect-timeout 3 http://192.168.1.5:80/
本机通、外部不通时不要先怀疑防火墙:先用 ss 看绑定地址,再抓包确认 SYN 是否到达本机。

易错点

  • 把 127.0.0.1 监听误判成防火墙拦截,白白排查防火墙
  • 忽略容器网络:宿主机 127.0.0.1 与容器内 127.0.0.1 是两张不同的回环表

数据来源与参考

  • man 2 bind
  • man 8 ss
  • RFC 1122:地址选择与绑定

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌