iptables 将端口 80 重定向到 8080 - 如何禁止直接访问端口 8080?

iptables 将端口 80 重定向到 8080 - 如何禁止直接访问端口 8080?

我已使用 iptables 将 Tomcat 服务器的所有请求从端口 80 路由到端口 8080。

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

现在http://mydomain.com/运行正常,但人们仍然可以访问http://mydomain.com:8080。我发现在其他网站上这是不可能的。有没有办法禁用通过 URL 直接访问端口 8080?

答案1

当您访问http://我的域名.com,它会将 URL 重写为http://mydomain.com:8080?如果确实如此,我不知道如何使用纯 iptables 使其工作(因为您需要打开 8080 端口才能响应请求)。我在这里做了一个快速测试,URL 被重写了,但可能是我的网站在这么做。

话虽如此,也许最好放一个nginx或者 ApacheProxyPass/ProxyPassReverse在您的应用程序前面处理 URL,同时还可以使用nginxapache的 URL 重写、负载平衡和其他功能。

答案2

我使用 iptables 的时间还不长,所以我不知道如何为您编写规则,但我相信如果您在过滤表中删除或拒绝对端口 8080 的所有请求,然后将您提供的语句放入后路由链中,您将得到所需的结果。

我仍在尝试学习 iptables,因此如果这是错误的,您能在评论中告诉我原因吗?

相关内容