我已经使用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?
当您访问http://mydomain.com时 ,是否将URL重写为http://mydomain.com:8080 ? 如果是这样,我不会看到如何使用纯粹的iptables工作(因为您将需要打开8080端口来回答请求)。 我在这里做了一个快速testing,URL正在被重写,但可能是我的网站在做。
说,也许最好在你的应用程序前面放置一个带有ProxyPass / ProxyPassReverse的nginx或者apache来处理URL,同时可以使用nginx或者apache的URL重写,负载均衡和其他function。
我现在还没有使用iptables很长时间,所以我不知道如何为你编写规则,但是我相信如果你在过滤表中放弃或拒绝端口8080的所有请求,然后把你提供的语句链,你会得到你想要的结果。
我仍然试图学习iptables,所以如果这是错误的,你能告诉我为什么在评论?