我在专用主机服务器上使用ubuntu无头服务器18.04。hoster有外部防火墙,在这里我打开了端口8443,443 (tcp)。在我使用iptables的ubuntu服务器im上,我用表nat将端口443重定向到8443。
iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 8443此外,我在入站和出站时打开了端口443和8443。
我仍然可以用example.com:8443访问tomcat实例,没有问题,但是example.com没有响应。在iptables中,我没有看到任何掉包。在我的猫站,我没有改变server.xml。连接器听着8443。我不知道,问题在哪里?我希望一些专家能帮我解决这个问题。
亲切问候
黑胡子
发布于 2020-01-22 15:38:06
这里真正需要的是一个反向代理(如Nginx),它可以在端口443上为您执行SSL终止,然后将请求在端口8443上传递给Tomcat。
SSL/TLS很复杂,在我看来,依靠IPTABLES来处理SSL握手并将您的请求发送给Tomcat应用程序并不是个好主意。
如果您确实需要使用IPTABLES,请使用openssl连接到服务,并确切地了解正在发生的事情。这里的报告输出和更多的帮助可能是可用的。
openssl s_client -connect www.example.com:443问题还可能在于您使用的是nat表。我的理解是,只有在请求通过服务器路由时才应用此表的规则,而不是在同一个ip地址上将请求路由到不同的端口。
反向代理将消除许多这种复杂性,并为您提供更多的功能(如速率限制,访问控制等)来启动。
发布于 2020-01-22 15:05:37
这可能取决于tomcat绑定到的接口。如果它被绑定到回送接口,那么这根本不起作用。
重定向目标通常与指定的接口一起使用,如:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 8443(用tomcat正在运行的实际网络接口替换eth1 )
对于DNAT目标来说,重定向是一种方便的方法,因此,如果上面的方法不起作用,您可以尝试这样的方法:
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.0.0.1:8443(用计算机的ip地址替换10.0.0.1 )
https://serverfault.com/questions/999941
复制相似问题