1、服务器内部:查看服务器操作系统内部有哪些端口正在被监听。
2、云平台安全组:查看阿里云防火墙(安全组)规则,允许哪些外部端口被访问。
这两者缺一不可,即使服务器内部服务运行在 8080 端口,如果安全组没有放行 8080,外部网络依然无法访问。
您需要通过 SSH 或远程桌面连接登录到您的阿里云服务器,然后使用操作系统的命令来查看。
最常用的命令是netstat
和ss
(ss
是更现代、更快的工具)。
1. 使用netstat
命令:
查看所有监听中的 TCP 端口 netstat -tlnp 查看所有监听中的 UDP 端口 netstat -ulnp 查看所有端口(监听+已建立连接),并显示进程名 netstat -tunlp
参数解释:
-t
TCP 端口
-u
UDP 端口
-n
以数字形式显示地址和端口号(不解析为主机名或服务名)
-l
仅显示监听中的端口
-p
显示使用该端口的进程/程序名
输出示例:
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 127.0.0.1:3306 0.0.0.0:* LISTEN 5678/mysqld tcp6 0 0 :::80 :::* LISTEN 91011/nginx
这里可以看到,sshd
进程在 22 端口监听,mysqld
在 3306 端口监听(但只允许本地访问 127.0.0.1),nginx
在 80 端口监听。
2. 使用ss
命令(推荐):
功能与上面的 netstat 类似,但更高效 ss -tlnp ss -ulnp
参数与netstat
基本一致。
使用netstat
命令。
1、 打开命令提示符(CMD)或 PowerShell。
2、 输入以下命令:
查看所有监听中的端口和对应的进程标识符 (PID) netstat -ano | findstr "LISTENING" 查看所有网络连接(包括已建立的) netstat -ano
参数解释:
-a
显示所有连接和监听端口。
-n 以数字形式显示地址和端口。
-o
显示拥有每个连接的进程 PID。
如何找到进程?
执行命令后,你会看到 PID,PID4480
。
打开任务管理器 -> “详细信息” 标签页,找到对应 PID 的进程,就能知道是哪个程序在使用该端口。
安全组是阿里云提供的虚拟防火墙,必须在此处放行端口,外部流量才能到达你的服务器。
查看和配置步骤:
1、登录阿里云控制台
前往 [阿里云官网](https://www.aliyun.com/) 并登录您的账户。
2、进入 ECS 实例页面
在控制台首页,找到“产品”或“服务”,选择“弹性计算” -> “云服务器 ECS”。
3、找到您的实例
进入 ECS 管理控制台,在实例列表中找到您想查看的那台云服务器。
4、进入安全组设置
方法 A(快速入口)在实例列表的右侧“操作”栏,点击“更多” -> “网络和安全组” -> “安全组配置”。
方法 B(详细信息页)点击实例 ID 或名称,进入实例详情页,然后点击“安全组” 页签。
5、查看安全组规则
在安全组页面,你会看到该实例绑定的安全组 ID,点击“配置规则”。
6、分析入方向规则
* 这里就是关键!你需要查看“入方向” 标签页。
* 这里列出的规则,定义了外部网络可以访问你服务器的哪些端口。
重点关注以下几列
授权对象0.0.0.0/0
表示允许所有 IP 访问。10.0.0.0/8
表示只允许内网访问。
端口范围 允许访问的端口号,例如22/22
,80/80
,3389/3389
,或一个范围8000/9000
。
协议类型 TCP, UDP 或 ICMP。
示例:
如果想让外界访问你的 Web 服务(80端口),这里必须有一条类似的规则:
协议类型 | 端口范围 | 授权对象 | 描述 |
TCP | 80/80 | 0.0.0.0/0 | 允许所有IP访问HTTP服务 |
当遇到端口无法访问的问题时,请遵循以下步骤排查:
1、在服务器内部检查:使用netstat -tunlp
(Linux)或netstat -ano
(Windows)确认服务是否在预期的端口上正常启动并监听。
* 如果没找到,说明你的应用程序服务没有成功启动。
2、在阿里云控制台检查:进入 ECS 实例的安全组规则,检查入方向 是否有对应端口的放行规则,且授权对象 合适(例如0.0.0.0/0
表示公网开放)。
* 如果没有,你需要添加一条新的入方向规则 来放行你的端口。
3、检查服务器本身防火墙(部分 Linux 发行版):
CentOS 7/8, Fedora 检查firewalld
(firewall-cmd --list-all
)。
Ubuntu, Debian 检查ufw
(ufw status
)。
* 如果开启了,需要相应放行端口或直接关闭(测试时,生产环境谨慎操作)。
按照这个流程,你就能完整地掌握如何查看和管理阿里云主机的端口了。
文章摘自:https://idc.huochengrm.cn/zj/18086.html
评论