配置 RackNerd VPS 防火墙允许特定端口访问,需先确认系统使用的防火墙工具是 UFW 还是 Firewalld,再执行放行命令并重载配置。操作前务必确保 SSH 端口未被误关闭,以免失去服务器连接。
先说结论:核心在于区分运行时与永久配置,并验证服务监听状态。
- 适合:Linux 系统管理员或拥有 root 权限的用户
- 先准备:确认当前活跃的防火墙工具及目标端口协议
- 再验证:使用外部工具测试端口可达性与规则生效情况
命令速用版
根据操作系统不同,RackNerd VPS 通常使用 UFW(Ubuntu/Debian)或 Firewalld(CentOS/Rocky/Alma),以下命令需通过 SSH 以 root 身份执行。
Ubuntu/Debian (UFW):
sudo ufw allow 80/tcp sudo ufw reload sudo ufw status
CentOS/Rocky (Firewalld):
sudo firewall-cmd `--permanent` `--add-port`=80/tcp sudo firewall-cmd `--reload` sudo firewall-cmd `--query-port`=80/tcp
限制特定 IP 访问 (Firewalld):
sudo firewall-cmd `--permanent` `--add-rich-rule`='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="80" accept'
为什么会这样
防火墙默认策略通常为拒绝所有入站连接,仅放行明确允许的流量。即使服务已启动,若防火墙规则未放行对应端口,外部请求仍会被拦截。此外,配置分为运行时(临时)与永久(持久化)两种,未写入永久配置会导致重启后规则丢失。
分步处理
1. 确认防火墙状态与类型
执行systemctl status firewalld或sudo ufw status查看活跃工具。若两者均未运行,检查是否使用了 iptables 或云面板安全组。
2. 开放目标端口
根据上述命令速用版选择对应命令。若需永久生效,Firewalld 必须加`--permanent`参数,UFW 默认即为永久但需确保服务启用。
3. 重载配置
Firewalld 修改永久规则后必须执行firewall-cmd `--reload`,否则新规则仅在运行时临时存在且可能未生效。UFW 修改后建议执行ufw reload。
4. 限制特定 IP(可选)
若需安全加固,使用富规则(Rich Rules)或 UFW 的allow from语法,仅允许可信 IP 访问特定端口,避免全开放暴露风险。
怎么验证是否生效
1. 本地监听检查
执行sudo ss -tuln或sudo netstat -tuln,确认目标端口处于LISTEN状态且绑定地址为0.0.0.0或具体 IP。
2. 防火墙规则检查
Firewalld 使用firewall-cmd `--list-all`查看端口列表;UFW 使用sudo ufw status verbose查看详细规则。
3. 外部连通性测试
在本地电脑使用telnet 服务器 IP 端口或curl -v http://服务器 IP:端口。若连接成功则配置生效,若超时则可能被防火墙或服务商网络策略拦截。
常见坑
1. 永久配置未重载
Firewalld 添加`--permanent`后未执行 reload,导致规则未激活。解决方法是补执行 reload 命令。
2. 服务未启动
防火墙放行了端口,但对应软件(如 Nginx)未运行。需先systemctl start 服务名确保端口被监听。
3. 协议不匹配
开放了 TCP 端口但服务使用 UDP,或反之。需确认软件文档要求的协议类型。
4. 误封 SSH 端口
修改防火墙策略时未保留 22 端口,导致无法远程连接。若发生此情况,需通过 VPS 控制面板的 VNC 控制台恢复。
常见问题
UFW 和 Firewalld 能同时开吗?
不建议同时启用,可能导致规则冲突。通常 Ubuntu 默认用 UFW,CentOS 默认用 Firewalld,选择一个管理即可。
配置后端口仍然无法访问怎么办?
先检查服务是否监听端口,再确认防火墙规则是否重载,最后联系服务商确认是否有外部网络限制。
如何删除已开放的端口规则?
Firewalld 使用`--remove-port`=端口/协议,UFW 使用ufw delete allow 端口,完成后均需重载配置。
参考来源
- Linux 如何配置 Firewalld 防火墙开放指定端口 (安全准则)
- Racknerd 服务器 Ubuntu 防火墙配置记录
- 解决 Racknerd KVM VPS 80 端口无法访问问题
- Linux 防火墙设置允许特定 IP 访问指定端口
- VPS 如何开启被关闭的端口?手把手教你开启端口