运维必看:一文搞懂服务器端口不通排查思路

运维必看:一文搞懂服务器端口不通排查思路

背景使用云服务器搭建服务,经常遇到服务无法连接或端口不通的问题,此文主要讲解这类问题如何逐步去排查分析、

排查思路一、检查实例状态检查cvm状态,是否关机,是否已到期,是否违规被封禁,是否有绑定公网IP,是否有公网带宽;

服务器列表 https://console.cloud.tencent.com/cvm/instance/index

二、检查公网状态预付费公网带宽检查公网I是否到期

公网IP列表 https://console.cloud.tencent.com/cvm/ip?rid=25

后付费公网带宽检查账号是否欠费

账号余额 https://console.cloud.tencent.com/expense

三、检查安全组/ACL1、检查CVM绑定的安全组入站规则,是否放行了客户端IP,以及是否放行了服务端口。

安全组规则从上到下匹配,如果上面的拒绝规则拦截了,拒绝规则下面添加的放行规则是不生效的。

在cvm列表点击cvm实例ID进入详情页面

2、进入到ACL页面检查CVM所在子网绑定的ACL入站和出站规则(ACL无状态,出入都需要检查),是否放行了客户端IP,以及是否放行了服务端口。

规则从上到下匹配,如果上面的拒绝规则拦截了,拒绝规则下面添加的放行规则是不生效的。

需注意,ACL没有绑定子网的话也是不生效的。

四、检查服务器监控检查cpu、内存、带宽、磁盘io 、连接数是否达到瓶颈

五、检查服务器是否正常启动通过控制台的vnc登录,检查系统是否正常启动。

Linux正常启动是会提示登录,如下图

如果非类似页面,有报错或者无法输入卡死的情况都不正常。

六、检查网卡配置1、检查IP地址是否与控制台的IP地址一致

代码语言:shell复制[root@test ~]# ifconfig eth0

eth0: flags=4163 mtu 8500

inet 172.21.80.10 netmask 255.255.240.0 broadcast 172.21.95.255

inet6 fe80::5054:ff:fed2:4657 prefixlen 64 scopeid 0x20

ether 52:54:00:d2:46:57 txqueuelen 1000 (Ethernet)

RX packets 708411 bytes 132642817 (126.4 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 637782 bytes 113851805 (108.5 MiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@test ~]#2、检查路由是否配置正确,是否有默认路由

代码语言:shell复制[root@test ~]# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

0.0.0.0 172.21.80.1 0.0.0.0 UG 0 0 0 eth0

169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0

172.21.80.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0

[root@test ~]#一般可用 ip route get {IP} 这样的命令去查看路由走向哪个网卡

代码语言:shell复制[root@test ~]# ip route get 1.1.1.1

1.1.1.1 via 172.21.80.1 dev eth0 src 172.21.80.10

cache

[root@test ~]# 七、检查服务监听是否正常用netstat命令检查端口是否有监听,如果没监听,一般是端口对应的服务没启动,需要检查服务启动状态,以及进程是否存在,服务配置文件设置的监听地址是否为0.0.0.0,端口是否配置正确。

如果监听在127.0.0.1,公网是无法访问这个端口的。

代码语言:shell复制[root@test ~]# netstat -ntpl | grep 80

tcp 0 0 172.21.80.10:80 0.0.0.0:* LISTEN 21443/nginx: master

[root@test ~]#

[root@test ~]# systemctl status nginx

● nginx.service - The nginx HTTP and reverse proxy server

Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)

Active: active (running) since Thu 2025-10-16 13:58:22 CST; 1 day 1h ago

Main PID: 21443 (nginx)

CGroup: /system.slice/nginx.service

├─21443 nginx: master process /usr/sbin/nginx

├─21444 nginx: worker process

└─21445 nginx: worker process

Oct 16 13:58:22 test systemd[1]: Starting The nginx HTTP and reverse proxy server...

Oct 16 13:58:22 test nginx[21438]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

Oct 16 13:58:22 test nginx[21438]: nginx: configuration file /etc/nginx/nginx.conf test is successful

Oct 16 13:58:22 test systemd[1]: Started The nginx HTTP and reverse proxy server.

[root@test ~]# ps aux | grep nginx

root 21443 0.0 0.0 39312 1084 ? Ss Oct16 0:00 nginx: master process /usr/sbin/nginx

nginx 21444 0.0 0.0 41784 2416 ? S Oct16 0:00 nginx: worker process

nginx 21445 0.0 0.0 41784 2396 ? S Oct16 0:00 nginx: worker process

root 21797 0.0 0.0 112812 972 pts/1 S+ 15:17 0:00 grep --color=auto nginx

[root@test ~]# 八、检查防火墙检查防火墙规则是否拦截了对应的端口,没有放通的话需要放通一下。

1、iptables防火墙

代码语言:shell复制[root@test ~]# iptables -nL

[root@test ~]# iptables -nL -t nat

[root@test ~]# iptables -nL -t raw

[root@test ~]# iptables -nL -t mangle2、firewalld防火墙

代码语言:shell复制[root@test ~]# firewall-cmd --list-all3、nftables防火墙

代码语言:shell复制[root@test ~]# nft list ruleset 4、ufw防火墙

代码语言:shell复制[root@test ~]# ufw status九、检查TCP半连/全连队列代码语言:shell复制通过 netstat -s 命令可以查看 TCP 半连接队列、全连接队列的溢出情况

$ netstat -s | grep -i "listen"

189088 times the listen queue of a socket overflowed

30140232 SYNs to LISTEN sockets dropped

上面输出的数值是累计值,分别表示有多少 TCP socket 链接因为全连接队列、半连接队列满了而被丢弃:

• 189088 times the listen queue of a socket overflowed 代表有 189088 次全连接队列溢出

• 30140232 SYNs to LISTEN sockets dropped 代表有 30140232 次半连接队列溢出参考文档

十、检查是否有tc(Traffic Control)规则检查是否有设置tc规则导致丢包

代码语言:shell复制[root@test ~]# tc qdisc ls参考文档

十一、检查内核参数1、开启 net.ipv4.tcp_tw_recycle 导致的PAWS 丢包

参考文档

2、设置 net.ipv4.conf.default.rp_filter 为1 开启严格路径校验导致丢包

参考文档

可以开启 net.ipv4.conf.*.log_martians ,在系统日志或者dmesg日志中查看丢包

相关推荐

【科普】一紧张就想上厕所,原来是这个原因!
365速发国际平台登陆

【科普】一紧张就想上厕所,原来是这个原因!

泥塘终结者!进口福特翼虎3.0越野测试
365bet体育投注网站

泥塘终结者!进口福特翼虎3.0越野测试

既然有人问血源年度版的问题,我来简单介绍一下各游戏年度版的情况好了
365速发国际平台登陆

既然有人问血源年度版的问题,我来简单介绍一下各游戏年度版的情况好了

我的前半生大结局是什么,大结局,人物最终结局
365dni讲解

我的前半生大结局是什么,大结局,人物最终结局

在 Windows 10 中使用任务管理器管理正在运行的进程的 11 种方法
365速发国际平台登陆

在 Windows 10 中使用任务管理器管理正在运行的进程的 11 种方法

《传奇霸主》包服强散装备获取与搭配攻略:成就传奇霸主的关键
365dni讲解

《传奇霸主》包服强散装备获取与搭配攻略:成就传奇霸主的关键