绑到 127.0.0.1,外面就进不来
一句话总结
“端口是否开放”必须同时回答谁在监听,以及监听在哪个地址。localhost 成功而外部失败常是只绑定了回环地址。
监听与状态
ss 是现代 Linux 查看套接字的标准工具。监听套接字的 Recv-Q 表示等待 accept 的已完成连接数,Send-Q 表示 backlog 上限;队列持续填满说明应用来不及 accept。
TIME-WAIT 留在主动关闭方,用于防止迟到数据污染新连接,由内核回收且不占文件描述符。CLOSE-WAIT 表示对端已发送 FIN,而本应用没有 close;它没有自动超时,持续积累就是应用连接泄漏。
管理端口可有意只绑定回环地址;面向外部的服务则必须绑定可达接口。排查时要同时检查监听地址、进程、队列和连接状态,而不只看防火墙。
原文命令与标识符
LISTEN 0 5 127.0.0.1:8080 0.0.0.0:*
ss -ltn # TCP 리스닝 소켓만, 이름 해석 없이
ss -ltnp # + 어느 프로세스가 잡고 있는지 (root 필요)
ss -tan state established
ss -s # 상태별 요약
curl localhost
curl http://localhost:8080/health
ss -ltn
127.0.0.1:8080
ss
close()
net.ipv4.tcp_tw_reuse
1F90
0A
01
06
08
ss -ltnp
kill -9
ls /proc/PID/fd
socket:[12345]
ss
bind: Address already in use
ss -tan state time-wait | wc -l
SO_REUSEADDR
SO_REUSEPORT
SO_REUSEPORT
accept()
ss -tlnp
Recv-Q
Send-Q
nstat -az TcpExtListenDrops
net.ipv4.ip_local_port_range
tcp_tw_reuse
ss
/proc/net/tcp