要查看服务器端口号,可以通过多种方法实现,具体取决于服务器的类型(如Linux、Windows)、使用的服务(如Web服务器、数据库服务器)以及访问权限,以下是几种常见且有效的方法,涵盖了命令行工具、配置文件检查、网络扫描等多个维度,帮助您快速定位服务器端口号信息。

通过命令行工具查看端口
Linux系统使用netstat或ss命令
Linux系统下,netstat和ss是查看网络连接和端口状态的常用工具。
-
netstat命令:netstat -tuln # 查看所有监听的TCP(-t)和UDP(-u)端口,不解析域名(-n)
输出示例:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN udp 0 0 0.0.0.0:68 0.0.0.0:*其中
Local Address列的冒号后的数字即为端口号(如22、80)。 -
ss命令(推荐,性能更优):ss -tuln # 参数与netstat相同
Windows系统使用netstat命令
Windows下同样支持netstat,但语法略有不同:
netstat -an # 查看所有连接,不解析域名(-n),显示数字地址(-a)
输出中Local Address列的格式为IP:端口,例如0.0.0:8080表示监听8080端口。

使用lsof命令(Linux/macOS)
lsof可以列出打开的文件和网络连接:
lsof -i :端口号 # 查看特定端口的占用情况,如 lsof -i :80
或查看所有监听端口:
lsof -i -P -n | grep LISTEN
通过配置文件检查端口
许多服务的端口号在配置文件中明确指定,直接编辑或查看配置文件是最直接的方法之一。
常见服务的配置文件路径
| 服务类型 | 配置文件路径(示例) | 关键配置项 |
|---|---|---|
| Apache HTTP | /etc/apache2/ports.conf |
Listen 80 |
| Nginx | /etc/nginx/nginx.conf |
listen 80; |
| MySQL | /etc/mysql/mysql.conf.d/mysqld.cnf |
port = 3306 |
| SSH | /etc/ssh/sshd_config |
Port 22 |
| Tomcat | /conf/server.xml |
port="8080" |
操作步骤:
- 使用文本编辑器(如
vim、nano)打开配置文件。 - 搜索关键词(如
Listen、port、listen)定位端口号配置。 - 修改后需重启服务使配置生效(如
systemctl restart nginx)。
通过网络扫描工具发现端口
若需扫描远程服务器的开放端口,可使用nmap或telnet等工具。
使用nmap(需安装)
nmap 目标IP地址 # 扫描常见端口 nmap -p 1-65535 目标IP地址 # 扫描所有端口
输出示例:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-01 12:00
Nmap scan report for 192.168.1.100
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3306/tcp open mysql
使用telnet测试端口连通性
telnet 目标IP 端口号 # 如 telnet 192.168.1.100 80
若端口开放,会显示Connected to ...;否则提示Connection refused。

通过云平台管理控制台查看
若服务器部署在云平台(如阿里云、AWS、腾讯云),可通过控制台直接查看安全组规则或负载均衡配置,其中明确允许访问的端口号会被列出。
操作路径示例(以阿里云ECS为例):
- 登录ECS管理控制台。
- 选择目标实例,进入“安全组”配置。
- 查看安全组规则中的“端口范围”列。
相关问答FAQs
Q1: 为什么netstat显示端口被占用,但服务无法访问?
A: 可能原因包括:
- 防火墙拦截:检查服务器防火墙(如iptables、firewalld)或云平台安全组是否放行该端口。
- 服务未正确绑定:服务可能仅监听
0.0.1(本地回环),而非0.0.0(所有IP),可通过netstat -tuln确认Local Address列。 - 端口被占用但服务异常:使用
lsof -i :端口号查看占用进程,若为僵尸进程需重启服务。
Q2: 如何区分TCP和UDP端口?
A: 在netstat或ss的输出中,Proto列明确标识协议类型:
tcp:面向连接的协议(如HTTP、SSH)。udp:无连接协议(如DNS、DHCP)。
若需进一步验证,可使用nmap -sU 目标IP扫描UDP端口(需root权限)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/77048.html