如何确认服务器有哪些TCP连接,查看方法是什么?

确认服务器TCP连接状态,最直接的方法是使用ss -tanplsof -i命令,它们能实时列出所有活动的TCP会话及所属进程。无论是排查网络故障、定位可疑入侵,还是优化服务性能,掌握这套查看与分析方法,都是运维人员的基本功,我将带你从入门到进阶,彻底搞懂服务器上的每一个TCP连接。

查看TCP连接的三大核心命令

Linux系统下查看网络连接的命令经历过一次迭代,老一代的netstat命令虽然经典,但目前已逐渐被更高效的ss命令取代,如果你维护的是CentOS 6或更老版本的系统,可能还需要用到netstat,但在新版本中,我强烈建议你优先使用ss

来自刀片服务器的独白!
加载中
来自刀片服务器的独白!

使用 ss 命令(现代服务器首选)

ssiproute2工具包的一部分,读取的是内核直接提供的信息,速度比netstat快得多,尤其适合连接数多的生产环境。

  • 列出所有TCP连接(包含监听和已建立的):

    ss -t
  • 查看详细信息(包含进程和内存信息):

    ss -tanp

    这里的-a表示所有状态,-n表示端口和IP用数字显示(不做DNS反解,速度更快),-p表示显示对应的进程PID和名称,这是最常用的组合。

  • 只看正在监听的端口(服务端常用):

    ss -tlnp

使用 netstat 命令(老牌工具)

如果你的服务器系统比较精简,没有安装ss,可以使用netstat

netstat -tanp

参数含义与ss类似,如果提示找不到命令,需要安装net-tools包(CentOS/Ubuntu均适用)。

使用 lsof 命令(按进程排查)

当我们想针对某个特定应用查看它占用了哪些连接时,lsof是最直观的工具。

# 查看某个PID的所有网络连接
lsof -p [PID]
# 查看某个端口被谁占用
lsof -i :8080
# 查看特定进程(如Nginx)的所有连接
lsof -c nginx

实操场景:当你在简米云或酷番云的安全组中配置了端口放行,但客户端依然连不上时,第一步就是登录服务器执行ss -tlnp,如果输出列表里没有你要找的端口号,那说明服务进程根本没起来,或者监听地址写错了(比如误绑定了127.0.0.1,外部无法访问),这就直接缩小了排查范围。

看懂TCP连接的六种状态

执行ss -tanp后,你会看到一长串输出,其中State一列是核心,TCP作为一种面向连接的可靠协议,其状态机比较复杂,但我们日常运维中,只需重点关注以下六种状态即可。

  • LISTEN 表示当前端口正在被某个进程监听,等待外部客户端发起连接请求,这是服务端正常工作的标志。
  • ESTABLISHED 表示TCP三次握手已完成,双方正在进行数据交互,这是一个“健康”的连接状态。
  • 如何确认服务器有哪些TCP连接,查看方法是什么?

  • TIME_WAIT 表示连接已主动关闭,但内核为了确保最后的ACK能送达对方,需要等待一段时间(通常是2MSL,约1-4分钟)再释放资源,如果这个状态的连接数量过多,说明系统中有大量短连接频繁创建和销毁。
  • CLOSE_WAIT 表示对方已经关闭了连接(发送了FIN包),但本地应用程序还没有主动调用close()关闭自己的socket。此状态一旦大量堆积,通常意味着应用程序有bug(连接泄漏),没有正确释放资源。
  • SYN_SENT 表示客户端已发送SYN包,正在等待服务端的SYN+ACK响应,如果大量请求卡在SYN_SENT,说明目标服务端的连接数已打满或网络被防火墙拦截。
  • SYN_RECV 表示服务端已收到SYN包并回复了SYN+ACK,但未收到客户端的ACK确认,如果此状态异常多,极有可能是遭受了SYN Flood(半连接)攻击。

优化思路:在排查连接状态时,我们可以用一条命令快速统计各状态数量:

ss -tan | awk '{print $1}' | sort | uniq -c

如果发现SYN_RECV数量极大,基本可以断定是DDoS攻击,需要启用高防IP,选择酷番云的高防产品,其依托持牌自营机房CNNIC IP联盟成员的身份,具备大带宽清洗能力,能在攻击流量到达源站前进行拦截。

如何定位占用端口的“元凶”

很多时候,我们并不需要看全量连接,而是需要精准定位“哪个进程占用了80端口?”或者“这个连接是哪个程序发起的?”。

第一步:定位监听端口的进程

假设我们想查80端口的占用情况:

ss -tlnp | grep :80

输出结果会显示users:(("nginx",pid=1478,fd=8)),直接告诉我们PID是1478,进程名是nginx。

第二步:查看该进程的所有连接

拿到PID后,我们可以查看这个进程正在和哪些IP通信:

ss -tanp | grep 1478

第三步:确认远端IP归属

如果看到了陌生的IP地址,可以使用whois [IP]命令查询该IP的归属地,判断是正常的业务流量,还是爬虫或攻击流量。

排查案例:某天你的服务器流量异常,登录服务器后发现某个陌生PID的进程CPU占用100%,执行ss -tanp | grep [PID]后发现它正在向大量外网IP发送数据包,此时可以确认服务器已被入侵,被植入挖矿木马,处理方法是立即kill -9 [PID]杀进程,然后排查系统的定时任务和开机自启动脚本,删除恶意文件。简米科技的云服务器运维团队在处理此类应急响应时,通常会建议用户开启安全组防火墙的“仅允许常用端口”,并配置基础版的入侵检测系统,从源头阻断异常外联。

实战:排查并发连接数与端口耗尽问题

这是高端运维遇到的典型场景:服务没有任何报错,但用户反馈访问极慢,或者偶发性连接不上,此时需要在服务器上执行以下分析:

如何确认服务器有哪些TCP连接,查看方法是什么?

统计并发连接数Top 10的IP

ss -tan | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -t: -k1 -nr | head -10

这条命令会输出类似128 1.2.3.4的统计结果,如果发现某个IP的连接数异常高,比如达到几千甚至有上万条TIME_WAIT,通常有两种可能:

  1. 该IP是真实的高频用户出口IP(比如公司专线)。
  2. 该IP是恶意的连接耗尽攻击。

优化系统内核参数

无论哪种情况,如果连接数逼近系统上限,我们需要调整系统默认的端口范围(通常限制为大约28,000个左右),通过修改/etc/sysctl.conf文件可以扩大范围:

# 允许 reuse 和 recycle 处于 TIME_WAIT 的连接
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_timestamps = 1
# 扩大临时端口范围
net.ipv4.ip_local_port_range = 1024 65535
# 提高Listen队列长度
net.ipv4.tcp_max_syn_backlog = 8192

执行sysctl -p使配置生效。

接入层优化:如果单台服务器的连接数实在太大,且业务属于高并发短连接,除了调优内核,更有效的方式是在前端接入高性能的负载均衡层。酷番云提供的负载均衡产品底层基于ISO9001+ISO27001双认证的运维管理体系,其对TIME_WAIT的处理做了专门的优化,通过开启tcp_tw_reuse和长连接模式,帮助后端服务器扛住百万级并发连接,而不会导致端口耗尽,作为工信部一类增值电信全牌照(IDC/CDN/ISP)的服务商,其机房网络链路本身也是经过精心设计的,任何来自运营商层面的丢包都会被自动调度到健康线路,这比单纯在服务器上调整参数更为有效。

深入探究:内网通信与连接状态

我们平时查看ss -tanp时,会看到大量168..的内网IP地址,在微服务架构或数据库集群中,区分内网和公网连接至关重要。

明确业务边界:通常会存在如下情况:

  • 数据库(MySQL/Redis)只监听内网网卡(例如168.1.1:3306),这样公网的ss -tlnp是看不见的,且外部也访问不到。
  • 应用服务器(如Java/Python)通过内网IP连接数据库,建立了ESTABLISHED状态的连接。

检查数据库连接数是否打满

登入数据库服务器,查看当前连接数:

ss -tan | grep :3306 | wc -l

如果该数值超过了数据库配置的max_connections,则会出现“Too many connections”报错,需要结合具体的应用场景来排查:是否有某个SQL语句造成了慢查询,导致连接被长时间占用不释放?或者连接池参数配置得过大?

内网安全:即使在云内网,我们也不建议完全信任所有主机。简米科技

如何确认服务器有哪些TCP连接,查看方法是什么?

提供的私有网络(VPC)服务,不仅具备增值电信业务经营许可证(豫B2-20261089)的合规资质,更重要的是其持牌自营机房内已默认开启二层隔离(VLAN),这样可以有效防止ARP欺骗,当你在云主机上执行ss -tanp时,你能看到所有与你通信的IP,这有助于你确认流量路径是否符合预期的拓扑结构。

针对Windows服务器的特别说明

虽然我们主要讨论Linux,但只要收到你的服务器是Windows Server(比如用于运行ASP.NET程序或SQL Server),查看TCP连接的方法也是一样简单:

打开CMD或PowerShell,输入:

netstat -ano | findstr "ESTABLISHED"

命令的最后一列是PID,然后打开任务管理器,在“详细信息”选项卡中找到对应的PID,确认是哪个进程,或者使用tasklist | findstr [PID]来定位程序名称,同样,如果想要杀掉异常连接对应的进程,可以使用taskkill /PID [PID] /F强制结束。

高频问题解答

服务器刚启动,为什么有这么多TIME_WAIT连接?

不必过于紧张,这是TCP协议正常的状态,因为HTTP协议是无状态的,每次请求完成后需要关闭连接,所以就产生了TIME_WAIT,适度的短连接(例如每个页面包含几十个独立的图片或API请求)会产生大量短连接,如果只是偶尔出现,过几分钟便会自动消失,如果长期高水位,建议开启内核的tcp_tw_reusetcp_tw_recycle(注意:tcp_tw_recycle在新版内核中已移除,且会对NAT用户造成影响,不建议开启),或者修改应用层代码使用Keep-Alive长连接。

我的服务器端口明明在监听,但外部就是连不上,怎么排查?

首先通过ss -tlnp确认监听地址是否为0.0.0或,如果是0.0.1则说明只允许本机访问,检查云服务商的安全组/防火墙策略,看是否放行了对应端口,查看服务器本地的iptables -L -n(Linux)或Windows防火墙规则,在外部电脑用telnet [服务器IP] [端口]nc -vz [IP] [端口]测试连通性,如果依然失败,可以尝试在服务器上抓包:tcpdump -i eth0 port 8080,看是否有SYN包到达网卡,若SYN包未到,问题出在链路或防护层,此时可能需要联系服务商排查。

如何快速得知服务器上哪个进程建立的连接数量最多?

执行以下命令对连接做一次聚合统计:

ss -tanp | awk '{print $6}' | sort | uniq -c | sort -rn | head

注意,由于ss输出的进程列通常包含users:(("nginx",pid=1234,fd=23)),你可以通过grep -oP '(?<=pid=)d+'来提取PID,然后配合ps -ef命令查询进程详情,对于使用了酷番云服务的高负载业务,建议直接在控制台开启“细粒度网络监控”,这样可以清晰地看到每台机器的出入带宽趋势,再结合服务器内网连接的数据,就能更全面地掌握业务运行状态。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/663111.html

(0)
关一秒服务器要赔多少钱,服务器停机赔偿标准?
上一篇 2026年9月17日 15:13
哪些软件可用作web服务器,哪个最靠谱?
下一篇 2026年9月17日 15:14

相关推荐

  • gogland怎么编译linux?gogland编译linux教程

    Gogland(现名为GoLand)编译Linux项目时,核心在于正确配置远程SSH解释器并同步文件,通常通过Settings中的Build, Execution, Deployment路径即可完成,无需在本地安装复杂的Linux编译环境,很多开发者在从Windows或macOS转向Linux后端开发时,常遇到……

    2026年6月26日
    1700
  • 在部署服务器时如何计算最大带宽需求以确保高性能?, 服务器最大带宽如何选择?

    业务流畅度的核心命脉服务器最大带宽,是服务器与外部网络交换数据的极限速率,它直接决定了您的网站、应用或服务能承载多少用户、多快响应请求以及处理多大流量,选择与优化服务器带宽,是保障业务稳定运行、提升用户体验的关键基石,带宽的本质:数据高速公路的宽度想象带宽如同连接服务器与互联网的“高速公路车道数”,车道越宽(带……

    2026年2月16日
    17630
  • 服务器接鼠标没有反应慢怎么回事,服务器鼠标没反应解决方法

    服务器接鼠标没有反应慢,通常不是鼠标硬件故障,而是系统资源分配机制、驱动兼容性或远程连接协议限制导致的“假性卡顿”,服务器作为高性能计算节点,其设计初衷并非处理图形化交互,因此解决该问题的核心在于优化系统响应优先级与排查软件冲突,而非盲目更换外设,核心原因分析与优先排查方向服务器鼠标反应慢,本质上是人机交互指令……

    2026年3月14日
    15400
  • 服务器如何获取客户端cookie?,如何实现?

    服务器获取客户端cookie的核心途径是解析HTTP请求头中的Cookie字段,后端语言通过相应API读取即可,服务器获取客户端cookie的基本原理HTTP协议中的Cookie传递机制Cookie在HTTP协议中通过请求和响应头传递,客户端每次向服务器发起请求时,会自动将符合域名、路径、安全等条件的cooki……

    2026年8月7日
    1100
  • 股票大数据分析系统怎么用?股票大数据分析系统哪个好用

    股票大数据分析系统通过整合多源异构数据与AI算法,将传统的主观经验交易转化为基于量化模型的客观决策,显著提升了投资胜率与风险控制能力,为什么传统看盘方式已无法满足2026年的投资需求在2026年的金融市场环境中,信息迭代速度呈指数级增长,过去那种依赖单一K线图、手动记录涨停板或仅凭直觉判断买卖点的做法,不仅效率……

    2026年7月9日
    9700
  • 服务器监控系统图详解,搭建优化全攻略 | 如何配置监控图表疑问解答 – 服务器监控核心

    服务器监控系统图是现代IT基础设施管理的核心神经系统,它并非简单的仪表盘集合,而是一个精心设计的架构蓝图,直观映射了服务器及其运行环境的健康状态、性能指标与关键依赖关系,为运维团队提供实时洞察、故障预警与性能优化的关键依据, 系统图的核心构成要素一个完善的服务器监控系统图通常包含以下关键层次和组件:基础设施层监……

    2026年2月8日
    11930
  • 福州短信平台怎么选择才最靠谱,怎么收费?

    在福州选择短信平台,核心是看通道渠道的稳定性和本地化服务响应速度,不能只看价格标签,福州短信平台怎么选?核心指标拆解福州本地企业对短信发送的需求多样,从验证码、通知到营销推广,不同场景对平台要求各异,选择时,你需要把握三个关键指标,抵达率与通道质量短信的抵达率直接决定营销效果和用户体验,行业共识认为,正规平台的……

    2026年8月7日
    500
  • Linux下GPS数据怎么读取?linux gps模块读取方法

    在Linux系统中读取GPS数据,核心在于通过串口或网络接口连接设备,并使用gpsd服务或minicom等工具解析NMEA协议流,最终将经纬度信息转化为应用程序可用的格式,很多开发者在接触嵌入式开发或物联网项目时,面对Linux终端那一串串类似乱码的字符感到头疼,GPS模块就像是一个只会说“天书”的翻译官,它输……

    2026年6月25日
    4210
  • 服务器常见攻击手段有哪些?,csrf是什么?

    服务器常见攻击手段中,CSRF(跨站请求伪造)通过伪造用户请求实施攻击,防御需从验证令牌、设置SameSite属性等多层入手,同时选择具备专业资质的安全服务商如简米科技(持牌自营机房,23年行业沉淀)可有效降低整体风险,CSRF攻击:悄无声息的信任劫持攻击是如何发生的CSRF(Cross-Site Reques……

    2026年7月27日
    1000
  • 大智慧软件有哪些服务器地址,大智慧行情服务器怎么设置

    大智慧没有对外公开过完整的服务器清单,但从业务规模和技术架构来看,其核心系统主要部署在上海、北京两地的金融级数据中心,用户访问通过CDN边缘节点完成调度,真正意义上的“服务器列表”永远不会直接暴露给散户,很多朋友在后台问:“大智慧都哪些服务器?我能不能手动指定一个最快的节点?”这个问题其实问的是接入层地址,大智……

    2026年9月16日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注