应使用底层命令实时获取服务器实际开放端口:一、netstat -tulnpe 查监听端口;二、ss -tulnpe 替代方案,更快更准;三、宝塔防火墙模块仅显示放行端口,非实际监听状态;四、lsof 按端口或协议精准定位占用进程。

如果您在宝塔面板中需要确认服务器当前实际开放的端口列表,仅依赖面板界面显示的“安全组”或“防火墙规则”可能不够准确,因为系统级端口监听状态需通过底层命令实时获取。以下是几种直接查看服务器所有开放端口的方法:
一、使用 netstat 命令查看监听端口
netstat 是传统且兼容性广的网络统计工具,可列出所有处于 LISTEN 状态的 TCP/UDP 端口,反映进程绑定的真实监听情况。
1、通过宝塔面板右上角【终端】进入 SSH 命令行界面,或使用 SSH 客户端登录服务器。
2、执行以下命令以显示所有监听中的 TCP 和 UDP 端口,并显示对应进程名:
netstat -tulnpe | grep -E ':(0-9)+\s+LISTEN'
3、若提示未安装 netstat,可先运行 yum install -y net-tools(CentOS/RHEL)或 apt install -y net-tools(Ubuntu/Debian)进行安装。
二、使用 ss 命令替代 netstat 查看端口
ss(socket statistics)是现代 Linux 系统推荐的高性能替代工具,比 netstat 更快更精确,尤其适用于高并发环境。
1、在宝塔终端中执行以下命令,列出所有监听的 TCP 和 UDP 端口及关联进程:
ss -tulnpe
2、如需过滤仅显示非 127.0.0.1 绑定的端口(即对外暴露的端口),可追加过滤条件:
ss -tulnpe | grep -v '127.0.0.1:'
3、若提示权限不足导致无法显示进程名(如 “Permission denied”),请确保以 root 用户执行,或在宝塔终端中点击左上角【切换为 root】。
三、通过宝塔面板内置防火墙模块查看放行端口
宝塔面板的防火墙模块展示的是 iptables/nftables 规则中“允许通过”的端口,不等同于实际监听端口,但可用于核对管理员手动放行的端口范围。
1、登录宝塔面板,在左侧菜单栏点击【安全】。
2、在【防火墙】区域中,查看“放行端口”列表下的所有已添加端口条目。
3、注意:此处显示的端口仅为防火墙策略层面的放行项,若某端口在此列表中但无服务监听,该端口仍无法被外部访问。
四、使用 lsof 命令按端口或协议筛选监听进程
lsof 可以基于端口、协议或进程名进行灵活检索,适合定位特定端口被哪个程序占用。
1、若已知需检查的端口号(例如 8080),执行:
lsof -i :8080 -sTCP:LISTEN
2、若需列出所有监听 TCP 端口的进程,执行:
lsof -iTCP -sTCP:LISTEN -P -n
3、如提示未安装 lsof,可运行 yum install -y lsof(CentOS/RHEL)或 apt install -y lsof(Ubuntu/Debian)。










