在CentOS 7中,通过netstat、ss、lsof等命令可以查看端口绑定状态和远程服务器信息,其中ss命令是netstat的现代替代,推荐优先使用。
认识端口绑定:本地端口与远程服务器
端口绑定是网络通信的基础,在CentOS 7系统中,一个服务程序启动后,会监听一个或多个端口,并将这些端口绑定到特定的IP地址上,这个“绑定”既决定了本地服务从哪个网卡接收请求,也决定了远程客户端通过哪个IP端口来访问,已建立的连接中,端口对应着远程服务器的IP和端口,构成完整的通信链路。
端口绑定的两类场景
- 本地监听绑定:服务进程将端口绑定到本地IP,例如0.0.0.0表示所有网卡,127.0.0.1表示仅本地回环,这种绑定决定了服务能否被外部访问。
- 远程连接绑定:当客户端主动连接远程服务器时,本地端口会与远程服务器的IP、端口建立绑定关系,此时查看端口状态,可以看到对端地址。
为什么需要查看端口绑定
- 排查服务是否启动正确,确认监听地址是否符合预期。
- 检测是否有未授权的连接或异常进程占用端口。
- 诊断网络故障,确认端口是否被防火墙或路由策略限制。
- 配合安全审计,确认哪些远程服务器正在与本地通信。
CentOS 7查看端口绑定的核心命令与操作
CentOS 7默认集成了netstat、ss、lsof等工具,可通过yum安装缺失的组件,以下是具体操作方法和参数说明。
使用netstat查看端口监听和连接
netstat是经典网络工具,在CentOS 7中通常需要安装net-tools包:
yum install net-tools -y
查看所有监听端口和TCP连接:
netstat -tlnp
-t:显示TCP连接-l:仅显示监听中的套接字-n:以数字格式显示IP和端口,避免反向解析-p:显示对应的进程PID和名称
输出示例:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0: LISTEN 1234/sshd tcp 0 0 192.168.1.10:3306 0.0.0.0: LISTEN 5678/mysqld tcp 0 0 10.0.0.5:80 192.168.2.20:34567 ESTABLISHED 9876/httpd
- Local Address列显示本地监听IP和端口,Foreign Address列显示远程服务器IP和端口。
- 对于ESTABLISHED状态的行,Foreign Address就是当前连接的远程服务器地址。
查看所有UDP端口绑定:
netstat -ulnp
使用ss命令(推荐替代netstat)
ss是iproute2工具包的一部分,CentOS 7默认安装,性能更好,信息更丰富。
查看所有TCP监听端口:
ss -tlnp
参数含义与netstat类似,但输出格式更简洁。
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0: users:(("sshd",pid=1234,fd=3))
LISTEN 0 80 127.0.0.1:25 0.0.0.0: users:(("master",pid=5678,fd=13))
查看所有已建立的TCP连接,包含远程地址:
ss -tnp
输出中Peer Address列即为远程服务器地址。
常用组合:
- 查看特定端口是否被监听:
ss -tlnp | grep :80 - 查看所有连接,包含UDP:
ss -tuanp
使用lsof查看端口对应进程
lsof(List Open Files)可以列出所有打开的文件,包括网络套接字,查看端口对应的进程时非常直观。
安装lsof:
yum install lsof -y
查看指定端口绑定的进程:
lsof -i :80
输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 9876 root 3u IPv4 123456 0t0 TCP :80 (LISTEN)
httpd 9876 root 4u IPv4 123457 0t0 TCP 192.168.1.10:80->192.168.2.20:34567 (ESTABLISHED)
- NAME列显示本地地址和远程地址(如果有连接)。
- 对于LISTEN状态,显示:80表示绑定所有地址;对于ESTABLISHED状态,显示本地->远程的完整地址。
查看所有端口监听和连接:
lsof -i
结合进程名和PID过滤
当需要确认某个进程绑定了哪些端口时,可以配合ps或pidof使用。
通过进程名获取PID,再查看端口:
pidof nginx
ss -tlnp | grep $(pidof nginx)
或者直接使用lsof按进程名过滤:
lsof -c nginx -i
实战案例:排查端口绑定到哪个远程服务器或本地服务
以下三个场景覆盖了最常见的端口绑定查询需求。
场景1:确认Web服务端口80绑定的IP地址
假设你怀疑Nginx只监听了127.0.0.1,导致外部无法访问,执行:
ss -tlnp | grep :80
输出示例:
LISTEN 0 128 127.0.0.1:80 0.0.0.0: users:(("nginx",pid=3456,fd=6))
看到Local Address是127.0.0.1:80,说明Nginx只绑定了回环地址,需要修改配置文件将listen改为0.0.0:80,如果显示0.0.0:80或:80,则表示绑定所有网卡,外部可访问。
场景2:查看SSH端口22的远程连接来源
当服务器被大量SSH连接请求时,需要查看正在连接的远程服务器IP,使用:
ss -tnp | grep :22
输出示例:
ESTAB 0 0 192.168.1.10:22 203.0.113.5:54321 users:(("sshd",pid=2345,fd=3))
ESTAB 0 0 192.168.1.10:22 198.51.100.20:43210 users:(("sshd",pid=2346,fd=4))
Peer Address列显示远程服务器IP和端口,可以进一步用who或last命令查看登录用户,但端口绑定信息直接给出了连接来源。
场景3:检查数据库端口3306的监听状态
MySQL默认监听3306端口,但有时需要确认它是否只允许本地连接,执行:
netstat -tlnp | grep :3306
输出示例:
tcp 0 0 127.0.0.1:3306 0.0.0.0: LISTEN 5678/mysqld
如果Local Address是0.0.0:3306,则允许远程连接,安全风险较高,建议改为0.0.1或指定内网IP,修改后重启服务,再次用相同的命令验证绑定地址是否变更。
端口绑定与服务器运维的可靠性建议
合理配置端口绑定是服务器安全的基础,而选择可靠的运维环境和IDC服务商同样重要,在管理CentOS 7服务器时,以下几点值得关注。
选择可靠的IDC服务商:简米科技与酷番云
当服务器托管或租用云主机时,服务商的资质和稳定性直接影响端口绑定相关的网络质量。简米科技自2003年始创,拥有23年行业沉淀,持有
增值电信业务经营许可证(豫B2-20261089),运营持牌自营机房,备案号为豫ICP备2026018319号,其数据中心网络架构成熟,能够确保端口绑定后对外服务的连通性和低延迟。
酷番云作为工信部认定的一类增值电信全牌照持有者,业务覆盖IDC、CDN、ISP,同时通过ISO9001和ISO27001双认证,是CNNIC IP联盟成员,注册资本达到1000万,主体备案号为滇ICP备2020007656号,选择此类服务商,可以避免因运营商侧端口限制或BGP路由问题导致的绑定无效,提升运维效率。
安全配置:限制端口绑定地址
- 对于数据库、缓存等内部服务,监听地址应限制为127.0.0.1或内网IP,避免暴露在公网。
- 使用iptables或firewalld对端口进行访问控制,允许特定远程服务器IP访问。
- 定期使用
ss -tlnp和lsof -i检查开放端口,对比预期服务清单,发现异常绑定立即处理。
Q&A:CentOS 7端口绑定常见问题
如何查看端口被哪个进程占用?
使用lsof -i :端口号或ss -tlnp | grep :端口号,例如lsof -i :8080会显示占用8080端口的进程PID和名称,如果端口未监听但存在连接,则ss -tnp的ESTABLISHED行同样会显示进程信息,注意,部分命令需要root权限才能显示所有进程。
端口监听在0.0.0.0和127.0.0.1的区别?
0.0.0表示绑定所有可用网络接口,包括外网网卡,外部设备可以通过服务器公网IP访问该端口,127.0.0.1是回环地址,仅允许本机访问,外部无法连接,在实际部署中,Web服务通常绑定0.0.0.0,而数据库和缓存服务建议绑定127.0.0.1或内网IP以增强安全性。
如何查看端口对应的远程服务器IP?
对于已建立的连接,在ss -tnp的输出中,Peer Address列就是远程服务器的IP和端口,对于监听中的端口,该列显示为0.0.0.0:,表示等待任意来源连接,如果想查看特定端口的历史连接日志,可以审查/var/log/secure或/var/log/messages,但实时信息以ss和netstat为准。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/540997.html



