本文首次创作于 2025-02-17,最后更新于 2025-05-23,距离上次更新已经过了 14 天,文章内容可能已经过时。

服务器端口号全面指南

一、端口号基础

  • 端口号范围:0-65535(共 65,536 个)

  • 每个端口用于标识操作系统中运行的不同服务

端口分类

类别

范围

说明

示例

知名端口

0–1023

系统服务使用,需管理员权限

HTTP(80)、SSH(22)

注册端口

1024–49151

应用程序注册使用

MySQL(3306)、Redis(6379)

动态/私有端口

49152–65535

临时端口或用户定义服务使用

客户端连接使用的端口

二、常见服务端口详解

1. Web 服务

端口

协议

加密

用途

安全建议

80

HTTP

普通网页访问

推荐升级到 HTTPS

443

HTTPS

加密网页访问

推荐默认使用

8080

HTTP

备用 Web 端口

测试或开发用途

8443

HTTPS

备用安全端口

可替代 443 使用

2. 数据库服务

端口

数据库

默认用户

安全建议

3306

MySQL

root

限制访问 IP、修改默认端口

5432

PostgreSQL

postgres

启用 SSL 加密

27017

MongoDB

admin

启用访问控制和认证机制

6379

Redis

设置密码、绑定本地地址

1521

Oracle

sys/system

启用复杂密码和审计日志

3. 远程管理

端口

协议

适用平台

安全加固建议

22

SSH

Linux/Unix

禁用 root 登录、启用密钥认证

3389

RDP

Windows

启用 NLA、限制访问 IP

5900

VNC

跨平台远程桌面

使用 SSH 隧道加密传输

4. 文件传输

端口

协议

加密

推荐替代方案

21

FTP

使用 SFTP(22)

22

SFTP/SCP

默认推荐使用

2049

NFS

建议通过 VPN 使用

三、安全实践指南

1. 最小化开放端口

  • 仅开放业务所需端口

  • 定期使用工具审计端口(如 nmap, ss, netstat

2. 网络防护示例

# 使用 iptables 限制 SSH 端口访问
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

# 安装 fail2ban 防止暴力破解
apt install fail2ban

3. 其他加固建议

  • 修改默认端口(如将 SSH 的 22 改为 2222)

  • 禁用不安全协议(如 Telnet、FTP)

  • 启用访问日志,配合日志分析工具(如 fail2ban、logwatch)

四、端口扫描与监控

常用工具命令

# 扫描主机所有端口
nmap -sS -p 1-65535 192.168.1.1

# 查看当前监听端口
netstat -tulnp

# 查询特定端口的使用情况
lsof -i :80

云平台安全组配置

  • AWS:配置安全组,默认关闭所有端口

  • Azure:使用 NSG(网络安全组)管理入站规则

  • 阿里云:配置安全组规则开放/关闭指定端口

五、附录:端口范围对照表

端口范围

类型

示例服务

0–1023

系统端口

SSH(22)、HTTP(80)、HTTPS(443)

1024–49151

注册端口

MySQL(3306)、RDP(3389)

49152–65535

动态端口

客户端发起连接使用的临时端口

📘 官方端口分配列表参考: IANA Service Name and Port Number Registry

六、常见问题与排查

问题 1:端口冲突

# 查看被哪个进程占用
sudo lsof -i :8080
sudo netstat -tulnp | grep 8080

问题 2:防火墙拦截

# CentOS 开放端口
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

# Ubuntu 使用 UFW
ufw allow 8080/tcp

问题 3:服务未监听端口

# 检查服务运行状态
systemctl status nginx

# 检查配置文件中监听设置
grep -i listen /etc/nginx/sites-enabled/*