搬瓦工 VPS 设置防火墙允许特定端口访问,最推荐优先在 KiwiVM 控制面板的防火墙页面添加规则,其次是在系统内部使用 UFW 或 firewalld 配置。操作前务必确认 SSH 端口已在允许列表,避免连接中断。
先说结论:面板管理适合新手且生效快,系统命令适合精细化控制,两者同时存在时通常取交集或以后配置为准。
- 适合:需要开放 Web 服务、数据库或自定义应用端口的场景
- 先准备:记录当前 SSH 端口号,确保管理通道不被阻断
- 验收:使用 telnet 或 nc 命令从外网测试端口连通性
命令速用版
如果通过 SSH 连接 VPS,Ubuntu/Debian 系统可使用 UFW 快速放行端口,CentOS 系统建议使用 firewalld。
# Ubuntu/Debian 允许特定端口
ufw allow 8080/tcp
ufw enable
# CentOS 7/8 允许特定端口
firewall-cmd `--zone`=public `--add-port`=8080/tcp `--permanent`
firewall-cmd `--reload`为什么会这样
防火墙规则分为云平台层面和操作系统层面,搬瓦工控制面板属于云平台层面,优先于系统内部规则拦截流量。
云服务商通常在 hypervisor 层或网络入口层设有安全组或防火墙,如果面板层面禁止了端口,系统内部即使放行也无法通。反之,如果面板允许但系统内部禁止,流量也无法到达应用。理解这两层关系能避免排查方向错误。
分步处理
按照先面板后系统的顺序操作,确保每一层都放行目标端口。
步骤 1:登录 KiwiVM 控制面板
登录搬瓦工用户中心,进入 VPS 管理页面,找到 Firewall 或安全相关选项。检查现有规则,确认没有全局禁止策略。
步骤 2:添加面板防火墙规则
在面板防火墙设置中,添加允许规则,填写目标端口号和协议类型(TCP/UDP)。保存后通常立即生效,无需重启 VPS。
步骤 3:配置系统内部防火墙
通过 SSH 登录 VPS,根据操作系统类型执行上述命令速用版中的指令。如果之前未启用防火墙,启用前务必先放行 SSH 端口。
步骤 4:检查应用监听状态
确认应用程序本身已启动并监听在 0.0.0.0 或具体 IP 上,而不是仅监听 127.0.0.1。
netstat -tulpn | grep 8080怎么验证是否生效
验证需要从外网发起连接请求,本地 localhost 测试无法反映防火墙真实状态。
方法 1:使用 telnet 命令
telnet 你的 VPS_IP 8080如果显示 Connected 或出现空白屏幕,说明端口通;如果显示 Connection refused 或超时,说明被拦截或服务未启动。
方法 2:使用 nc 命令
nc -zv 你的 VPS_IP 8080输出 succeeded 表示成功,failed 表示失败。
方法 3:在线端口扫描工具
使用公开的端口扫描网站输入 IP 和端口,查看状态是否为 Open。
常见坑
操作防火墙时容易因配置失误导致无法远程连接,以下是高频风险点。
- SSH 端口被误关:修改防火墙前必须确认当前 SSH 端口号,如果是自定义端口(非 22),务必在防火墙中显式允许。
- 协议选错:某些服务需要 UDP 而非 TCP,配置时需核对文档,只开 TCP 可能导致 UDP 服务不可用。
- 面板与系统冲突:部分用户同时在面板和系统内设置,若一方禁止一方允许,流量通常会被禁止,建议保持策略一致。
- IPv6 忽略:如果 VPS 分配了 IPv6 地址,防火墙规则可能需要单独为 IPv6 配置,否则 IPv6 流量会被默认丢弃。
常见问题
修改防火墙后无法 SSH 连接怎么办?
立即通过搬瓦工控制面板的 Emergency Shell 或 VNC 功能登录 VPS 恢复规则。
面板通常提供免 SSH 的救援终端,登录后可执行 ufw disable 或 firewall-cmd `--stop` 临时关闭防火墙,重新添加正确的 SSH 端口规则后再启用。
防火墙规则添加后多久生效?
搬瓦工控制面板规则通常秒级生效,系统内部命令执行完毕后立即生效。
如果添加后仍不通,检查是否有缓存的安全组策略,或尝试重启网络服务 systemctl restart network,但通常不需要重启 VPS。
如何重置所有防火墙规则?
UFW 可使用 ufw reset 命令,firewalld 可移除所有端口后 reload,面板规则需手动逐条删除或重置。
重置前务必确保通过控制面板 VNC 可访问,否则重置后若默认策略为拒绝,将失去所有连接权限。