如何配置Jelastic防火墙开放VPS的HTTP、HTTPS端口供用户正常访问站点
问题解决方案
核心问题排查
- 你提供的
iptables -nvL输出中,80、443端口的ACCEPT规则数据包计数均为0,说明公网请求根本没有匹配到这几条规则,规则顺序错误是最常见原因:如果前面已经配置了全局DROP规则,会优先拦截流量,导致后面的放行规则不生效 - 当前仅配置了IPv4的iptables规则,但Nginx同时监听了IPv6的80、443端口,未配置ip6tables放行规则会导致IPv6用户访问直接被拦截
- 你添加的80、443端口UDP放行规则无用,HTTP/HTTPS均基于TCP协议,不需要开放对应UDP端口,多余规则反而会增加匹配负担
操作步骤
- 调整Jelastic平台防火墙规则顺序
进入Jelastic控制台的防火墙配置页面,将80、443端口的TCP放行规则移动到所有DROP规则之前,确保流量优先匹配放行规则,同时删除无用的80、443端口UDP规则。 - 补充IPv6放行规则
如果你的VPS分配了公网IPv6地址,需要同步配置ip6tables放行规则,执行以下命令:
ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT ip6tables -A INPUT -p tcp --dport 443 -j ACCEPT ip6tables-save
- 补充基础放行规则
需确保防火墙放行环回接口流量、以及已建立连接的回包流量,避免Nginx反向代理到本地Node.js应用的流量被拦截,执行以下命令:
# IPv4配置 iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables-save # IPv6配置 ip6tables -A INPUT -i lo -j ACCEPT ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ip6tables-save
- 验证配置
配置完成后重启防火墙服务,分别使用IPv4、IPv6地址访问站点验证是否可正常访问。
内容的提问来源于stack exchange,提问作者Tobias
相关产品推荐
相关产品推荐

