确定需要开放的端口
常见服务端口:

- 22:SSH(远程管理)
- 80:HTTP(网页服务)
- 443:HTTPS(加密网页服务)
- 3306:MySQL数据库
- 6379:Redis
- 自定义端口:如 8080、3000 等
配置防火墙
使用 firewalld(CentOS/RHEL/Fedora)
# 检查防火墙状态 sudo systemctl status firewalld # 启动并启用防火墙(若未运行) sudo systemctl start firewalld sudo systemctl enable firewalld # 开放端口(以 80、443、22 为例) sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --permanent --add-port=22/tcp # 重载防火墙生效 sudo firewall-cmd --reload # 查看已开放端口 sudo firewall-cmd --list-ports
使用 ufw(Ubuntu/Debian)
# 启用UFW sudo ufw enable # 开放端口 sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp # 查看规则 sudo ufw status
使用 iptables(通用)
# 开放端口(示例:开放 3306) sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT # 保存规则(根据系统选择) sudo service iptables save # CentOS 6 sudo netfilter-persistent save # Debian/Ubuntu
配置云服务商安全组
阿里云、AWS、酷番云等需额外配置:
- 登录云控制台 → 进入 安全组 设置。
- 添加入站规则(Inbound Rules):
- 协议:
TCP - 端口范围:填写需开放的端口(如
80或3000-4000) - 授权对象:
0.0.0/0(允许所有IP)或指定IP段(如168.1.0/24)
- 协议:
检查服务监听配置
确保服务绑定到正确端口:
# 查看监听中的端口 sudo netstat -tuln | grep LISTEN # 或使用 ss sudo ss -tuln
如果服务未监听目标端口,需修改其配置文件:

- Nginx/Apache:配置文件中
listen指令(如listen 80;)。 - Node.js:确保启动时绑定
0.0.0(如app.listen(3000, '0.0.0.0'))。 - MySQL:检查
my.cnf中的bind-address = 0.0.0.0(谨慎开放外网访问)。
验证端口连通性
# 本地检查 telnet 服务器IP 端口号 # 或使用 nc nc -zv 服务器IP 端口号 # 外部检查(通过其他网络) 使用在线工具(如 https://portchecker.co/)
高级安全建议
- 限制访问来源:
- 仅允许特定IP访问敏感端口(如SSH):
sudo ufw allow from 192.168.1.100 to any port 22 # Ubuntu sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port=22 protocol=tcp accept' # CentOS
- 仅允许特定IP访问敏感端口(如SSH):
- 修改默认端口(如将SSH从22改为2222):
# 编辑 /etc/ssh/sshd_config Port 2222
- 使用Fail2ban:自动屏蔽暴力破解IP。
常见问题解决
-
端口不通:
- 检查防火墙是否开放端口。
- 确认云服务商安全组已配置。
- 服务是否监听
0.0.0(而非0.0.1)。 - 排查本地网络限制(如企业防火墙)。
-
服务未启动:
# 重启服务(以Nginx为例) sudo systemctl restart nginx
通过以上步骤,您可安全地配置服务器端口访问权限。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/287566.html

