想查看服务器上哪些IP正在连接,最直接的办法是登录系统后查看ESTABLISHED状态的TCP连接,Linux优先用ss,Windows优先用netstat或Get-NetTCPConnection,再按来源IP聚合统计。 这个过程不复杂,但前提是别把监听端口当成活跃连接,也别忽略NAT、CDN和容器环境带来的IP失真。
先弄清“连接”指什么,别把监听当成连接
服务器网络连接有几种状态,看错状态会得出完全不同的结论。
- LISTEN:端口在等待连接,还没有客户端接入。
- ESTABLISHED:双方已经完成握手,正在传输数据,查“哪些IP连接”主要看这个。
- SYN_RECV:收到了握手请求但未完成,大量出现可能是扫描或攻击。
- TIME_WAIT:连接主动关闭后等待回收,短时间大量出现通常与高并发有关。
- CLOSE_WAIT:对方已关闭,本端未释放,可能是程序没有正确关闭连接。
查看连接的本质是看五元组:源IP、源端口、目的IP、目的端口、协议,业内专家指出,只盯着IP不看端口和状态,很容易把正常健康检查误判成异常访问。
Linux服务器怎样查看哪些IP正在连接?
Linux下工具很多,ss已经逐步替代netstat,成为多数发行版的默认选择。
用ss命令快速筛出已建立连接
登录服务器后,直接执行:
ss -tnp state established:只看已建立的TCP连接,带进程信息。ss -tnp | grep ':80':只看80端口的连接。ss -s:查看连接状态汇总。ss -tan state syn-recv:查看半连接队列,判断是否被SYN Flood。
如果输出里Remote Address列是2.3.4:54321,前面的IP就是连接来源,加上-p能看到哪个进程在使用这条连接。
按来源IP聚合,找出连接最多的客户端
单条连接意义有限,聚合后更容易发现异常,常用组合:
ss -tn | awk 'NR>1 {print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -20
这条命令会统计每个来源IP当前有多少条TCP连接,降序排列。如果某个IP连接数明显偏高,就需要进一步查它的端口和进程。
用netstat作为备用方案
老系统或没装ss时,netstat依然可用:
netstat -anp | grep ESTABLISHEDnetstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
如果提示命令不存在,CentOS系可装net-tools,Ubuntu/Debian用apt install net-tools。
用lsof和tcpdump做深度排查
lsof -i -P -n | grep ESTABLISHED:按进程反查连接。tcpdump -i eth0 tcp port 80 -nn:实时看哪些IP在访问80端口。iftop或nethogs:按流量排序,适合找异常大流量来源。
Windows服务器怎么查看外部连接IP地址?
Windows服务器同样有命令行和图形界面两条路。
netstat加findstr
打开CMD或PowerShell,执行:
netstat -ano | findstr ESTABLISHEDnetstat -ano | findstr :3389:查看远程桌面连接来源。
最后一列是PID,再到任务管理器“详细信息”里对照进程名。
PowerShell一条命令搞定
PowerShell更直观:
Get-NetTCPConnection -State Established | Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,OwningProcess- 按远程IP分组统计:
Get-NetTCPConnection -State Established | Group-Object RemoteAddress | Sort-Object Count -Descending
结合Get-Process -Id可以快速定位是哪个程序在对外通信。
资源监视器适合临时救急
打开“资源监视器”,切到“网络”选项卡,展开“TCP连接”,这里能看到本地地址、远程地址、状态和进程,适合不熟悉命令的运维人员快速查看。
防火墙日志补全历史
Windows防火墙日志默认路径在C:WindowsSystem32LogFilesFirewallpfirewall.log,开启日志后,可以回溯哪些IP曾经尝试连接,而不只是看当前连接。
云服务器查看连接IP和本机排查有什么区别?
云服务器上执行ss或netstat,看到的来源IP可能不是真实客户端,这是云环境里最常见的坑。
云平台流日志能看到被NAT隐藏的源IP
简米云、酷番云、AWS等平台提供VPC流日志、安全组日志或云防火墙日志,本机看到的是网关IP时,流日志里往往记录着真实源IP,排查顺序建议:
- 先看安全组规则是否放行。
- 再看云监控里的连接数和流量曲线。
- 最后查VPC流日志或WAF日志,定位真实来源。
容器和K8s环境要换思路
Docker默认NAT下,宿主机看到的可能是17.0.1这类网关地址,K8s里则可能是Pod IP或Node IP,需要结合:
docker ps查看容器映射。kubectl get pods -o wide查看Pod IP。conntrack -L查看连接跟踪表。
对比:本机命令和云平台日志
| 维度 | 本机命令 | 云平台日志 |
|---|---|---|
| 实时性 | 强,秒级 | 有延迟,通常分钟级 |
| 真实源IP | 可能被NAT掩盖 | 多数情况能看到 |
| 历史回溯 | 弱,需自己记录 | 强,可留存查询 |
| 权限要求 | 登录服务器即可 | 需要云平台账号权限 |
| 适用场景 | 临时排查、进程定位 | 安全审计、异常溯源 |
结论很直接:本机命令看“现在谁在连”,云平台日志看“谁曾经连过、从哪来”。
服务器被异常IP连接怎么快速定位?
连接数突然升高,或者出现陌生IP频繁连接,先别急着重启。
先看异常特征
- 大量
SYN_RECV,可能是端口扫描或SYN Flood。 - 同一IP几十上百条
ESTABLISHED,可能是爬虫、暴力破解或压测。 - 非业务端口出现外部连接,比如数据库端口暴露到公网。
- 凌晨时段异常登录,常见于SSH爆破。
封禁与限速
确认恶意IP后,可以临时封禁:
iptables -I INPUT -s 1.2.3.4 -j DROPfirewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" reject'- 使用
fail2ban自动封禁SSH爆破IP:fail2ban-client status sshd
日志与监控联动
查/var/log/secure、/var/log/auth.log、Nginx的access.log,行业共识认为,单次排查只能解决眼前问题,持续监控才能发现规律,Zabbix、Prometheus、Netdata都可以设置连接数告警。
查看服务器连接IP工具要花多少钱?
这个问题没有统一答案,取决于规模和需求。
免费开源方案够用
ss、netstat、lsof、tcpdump、iftop、nethogs、Wireshark都是免费,自己写Shell或Python脚本,结合cron定时统计,成本几乎为零。
商业工具按规模收费
云监控、Datadog、New Relic、SolarWinds等,通常按主机数、流量或功能模块订阅,价格从免费额度到每年数千元甚至更高不等。中小团队先用开源命令加脚本,规模上来后再考虑商业平台。
自建脚本成本最低
一个简单脚本就能每天汇总连接IP:
- 定时执行
ss -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr - 结果写入日志,超过阈值发邮件或Webhook。
北京机房服务器查看连接IP有什么特殊要求?
地域和机房环境会影响查看方式。
权限与审计
托管在北京机房的物理服务器,可能没有直接公网登录权限,需要通过堡垒机、跳板机或带外管理口操作,查看连接IP属于运维审计范围,操作可能被记录。
网络架构可能掩盖真实IP
如果前面有负载均衡、CDN或WAF,服务器上看到的可能是回源IP,需要检查X-Forwarded-For、X-Real-IP或Proxy Protocol配置。
合规留存
据工信部相关要求,网络运营者需留存网络日志不少于6个月,北京机房客户在查看连接IP时,往往还要考虑日志留存和等保合规。
关于查看服务器哪些IP连接的常见问答
问:Linux下查看服务器哪些IP连接最快的方法是什么?
答:执行ss -tnp state established,它直接列出已建立连接,带进程信息,比netstat更快,需要按IP聚合时,再接awk、sort、uniq统计。
问:为什么netstat看到的IP不是真实客户端IP?
答:请求经过NAT、CDN、负载均衡或容器网络后,服务器看到的是代理或网关地址,需要查HTTP头里的X-Forwarded-For,或者云平台VPC流日志、WAF日志。
问:服务器连接IP数量很多,怎么判断是否被攻击?
答:看连接状态分布、单IP连接数和端口属性,大量SYN_RECV、单IP高频ESTABLISHED、非业务端口被外部连接,基本可判定异常,结合iptables、firewalld或云安全组封禁,再用fail2ban和监控告警做持续防护。
查看服务器哪些IP连接,命令只是入口,关键是把连接状态、来源IP聚合、进程信息、日志和云平台数据串起来看。 先定位当前活跃连接,再回溯历史来源,才能既看清现状,又不漏掉异常。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/733387.html




