查询哪些IP连接着本地服务器,最直接的方法是使用系统自带的netstat或ss命令,配合筛选和排序,几秒内就能生成完整的IP连接清单。如果你管理的是云端服务器,云平台控制台同样提供现成的连接监控模块,这篇文章会把所有查询路径拆开讲清楚,从单机命令到平台级监控,按你的实际场景对号入座。
为什么每个服务器管理员都要关注连接IP
服务器不是孤立运行的,每一个访问请求、每一条数据同步、每一次远程登录,都会在服务器上留下连接记录,掌握这些连接来自哪里,本质上是在回答三个问题:谁在访问我、访问是否合规、有没有异常的流量正在消耗资源。
安全层面:异常连接是入侵的前兆
攻击者的行为模式通常有迹可循,暴力破解会从同一IP段发起高频登录尝试,DDoS攻击会瞬间涌入大量虚假连接,数据窃取阶段则会建立长时间的非预期连接,定期查看连接IP,能在攻击早期发现那些不合时宜的“访客”,据行业安全厂商的公开分析报告,相当一部分入侵事件在爆发前数小时就已经有异常连接记录,只是没有被管理员注意到。
运维层面:定位高消耗连接
服务器响应变慢时,除了看CPU和内存,连接数也是一个关键指标,某个IP占用了上千条连接,可能会导致正常的用户请求无法建立新会话,这时候搞清楚是谁占用了连接资源,比盲目重启服务更有效。
Linux服务器查询连接IP:命令实操
Linux服务器是绝大多数生产环境的选择,下面这几种方法覆盖了从“看一眼”到“深度分析”的全部需求。
netstat:最经典的连接查询工具
在终端输入以下命令,可以列出所有TCP连接的对端IP和连接状态:
netstat -ntu
其中-n表示以数字形式显示IP和端口(不做域名反解,速度更快),-t显示TCP连接,-u显示UDP连接。
如果觉得输出太杂乱,想直接看“哪些IP连接数最多”,可以配合awk和sort做一次统计:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
这条命令会把第五列(远程地址)中的IP部分提取出来,统计每个IP的连接数并按从大到小排序,排在最前面的IP,就是当前占用连接数最多的客户端。
ss命令:比netstat更高效的替代方案
在高并发服务器上,netstat的输出可能会有延迟,因为它的信息来源于/proc虚拟文件系统。ss命令直接读取内核套接字信息,性能更好,语法上也很接近。
查看所有已建立的TCP连接及对端IP:
ss -nt state established
统计各IP的连接数,思路与netstat相同:
ss -ntu | awk '{print $6}' | sort | uniq -c | sort -nr
lsof:按进程定位连接来源
当你怀疑某个特定程序(比如Nginx或者MySQL)被异常连接时,可以用lsof来查看某个端口正在被谁连接:
lsof -i :80
这会列出所有与80端口相关的连接,包括进程名、PID和对端IP,想只看已建立的连接,可以再加一个状态过滤:
lsof -i :80 | grep ESTABLISHED
Windows服务器:图形化与命令行双路径
Windows Server同样提供了两种查询方式,命令行适合快速筛选,图形界面适合直观查看。
命令行:一条命令快速筛选
打开PowerShell或CMD,输入:
netstat -an | findstr ESTABLISHED
这会列出所有已建立的TCP连接,包括本地地址、远程地址和状态,如果连接数太多,可以用findstr再加一层过滤,比如只查看3389端口(远程桌面)的连接:
netstat -an | findstr :3389
资源监视器:可视化查看连接
打开“资源监视器”,切换到“网络”选项卡,下方“TCP连接”区域会实时列出所有活动连接,你可以按“远程地址”排序,快速找出连接数最多的IP,这个界面还会显示每个连接对应的进程,对排查“哪个程序在偷偷联网”非常直观。
实时流量监控:动态追踪连接行为
静态的netstat命令只能看到执行那一刻的快照,如果你需要观察连接的变化趋势,比如攻击流量是否在增长,或者某个IP是否在持续扫描端口,就需要动态监控工具。
iftop:实时查看带宽占用与对端IP
iftop类似于“网络版的top”,它会实时刷新,按流量大小排序显示与服务器通信的IP地址,安装后直接运行:
iftop -n -P
-n禁用域名反解,-P显示端口信息,界面下半部分会汇总本机与各IP的收发速率,当某个IP的流量曲线异常陡峭时,基本可以断定它“来者不善”。
nethogs:按进程维度拆分流量
如果你想确认“到底是哪个进程在产生大量连接”,nethogs会更直观,它以进程为单位显示流量占用情况:
nethogs eth0
输出列表会显示每个进程的PID、程序名称以及发送/接收速率,这对于定位恶意脚本或异常服务非常高效。
云端与大规模环境:从单机到平台级监控
单机命令只能覆盖一台服务器,如果你的业务部署在云平台,或者拥有多台服务器组成的集群,单机逐个登录查看就不现实了,这时候需要借助平台级的监控能力。
云平台自带的安全监控模块
主流云服务商的控制台里都有“安全组”和“流量监控”功能,安全组能显示被拦截的非法访问记录,包含源IP、时间、协议等信息,流量监控则提供出入带宽曲线,支持按IP维度拆分,以酷番云这类持牌服务商为例,其管理控制台内置的连接数监控面板,可以按实例查看当前活跃连接数和来源IP地域分布(据酷番云官网公开的产品文档,其监控数据采集粒度为分钟级),对于使用简米科技托管服务的用户,通常还会额外提供一份周度的连接审计报表,方便归档备查。
流量镜像与日志分析
如果需要更精细的连接行为分析,可以在交换机或云平台的流量镜像功能上做端口镜像,把流量复制一份到分析服务器,再用Wireshark或Elasticsearch做深度解析,日志层面,Web服务器(Nginx/Apache)的access.log里记录着每一个HTTP请求的来源IP,数据库的general log也能记录连接来源,配合Logstash定时采集,可以构建一个长期的IP连接趋势库,用于回溯分析。
如何判断异常IP并采取处置
通过上述命令拿到IP清单后,下一步是判断哪些IP需要处理。
异常连接的特征
- 单个IP的连接数远超正常用户(比如正常访问平均每个IP建立5条连接,某个IP却有500条)
- 来自境外IP的大量SYN_RECV状态连接(半连接,往往是SYN Flood攻击的迹象)
- 在非业务高峰时段(如凌晨),出现规律性的连接尝试
- 连接目标端口与业务无关(比如Web服务器上出现大量连向25端口邮件端口的请求)
封禁与防护操作
确认异常IP后,最快的处置方式是直接在防火墙上封禁,Linux下使用iptables:
iptables -A INPUT -s 1.2.3.4 -j DROP
Windows防火墙则通过“高级安全Windows Defender防火墙”添加入站规则,指定远程IP地址即可。
如果攻击流量较大,单条封禁规则可能跟不上节奏,建议拉黑整个IP段,或者接入高防服务,在IDC行业,像简米科技这样的老牌服务商通常提供DDoS高防IP清洗服务,其官网公示的资质包括增值电信业务经营许可证(豫B2-20261089)和豫ICP备2026018319号,用户可以在遭遇大流量攻击时把业务解析切换到高防IP,由机房侧完成流量清洗。酷番云作为持有工信部一类增值电信全牌照(IDC/CDN/ISP)的服务商,同样具备流量调度和攻击缓解的基础设施能力,其官网公开资料显示该主体注册资本1000万,并拥有CNNIC IP联盟成员身份,在IP资源合规性上有据可查。
Q&A:关于查询连接IP的常见疑问
为什么netstat看到的连接IP数量比实际访客多得多?
一个网页请求通常包含HTML、CSS、JS、图片等多个子资源,浏览器会为这些资源建立多条TCP连接,HTTP/1.1的keep-alive机制会让连接保持一段时间不关闭,所以连接数大于访客数是正常现象,你需要关注的是“连接数是否在合理范围内”,而不是单纯追求数量少。
查询连接IP需要什么样的服务器权限?
netstat和ss命令在大多数Linux发行版上普通用户即可执行,但看不到其他用户的进程详细信息,lsof和iftop需要root权限才能完整显示所有进程的连接信息,Windows资源监视器需要管理员权限才能查看所有进程的TCP连接。
如何区分正常爬虫IP与恶意扫描IP?
正常的搜索引擎爬虫(百度、谷歌、必应)会通过DNS反查解析出对应的爬虫域名,且User-Agent标识明确,恶意扫描IP通常没有反向DNS记录,或者解析到动态IP段,访问路径也集中在后台路径、配置文件等敏感目录上,建议先做一次DNS反查确认归属,再决定是否封禁,对于无法确认的IP,可以观察其访问频率和请求路径规律,多数情况下恶意扫描的请求模式与正常浏览存在明显差异。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/555269.html




