前言

        实际上,我们在开发的过程中总是会遇到服务器的默认端口是8080,而HTTP协议的默认端口是80的问题,但是,在linux系统中,只有以root用户启动的程序才有资格占用80端口,而实际上,在一般的服务器维护中,我们很少用root用户去启动一个应用,如jetty、tomcat等。这样做实在不安全,可以说是在为自己挖坑啊!那么,我们如何解决呢?

解决方案

        看来我们只能另辟蹊径了,如何才好?我们可以在8080端口和80端口之间做一个NAT转化,具体的方法如下:

1、使用 ipchains(Linux 内核 2.2 以上) 
/sbin/ipchains -I input --proto TCP --dport 80 -j REDIRECT 8080 
2、使用 iptables(Linux 内核 2.4 以上) 
/sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 

        这样的话,我们就将80端口的TCP包转发给8080端口了,可以说解决了我们的问题。
        当然,有的同学说了,可以采取nginx转发啊,好吧,这种方法暂时不在本文讨论之列,因为毕竟要借用到外来的工具啦!可是,有的同学说了,假如,我要去掉这条规则怎么办?这好像看似比较复杂。哈哈,方法如下:
1、查看目前80端口的映射规则:iptables -t nat -L -n | grep 80
2、删除对应规则:iptables -t nat -D PREROUTING -p tcp –dport 8080 -j REDIRECT –to-port 80


总结

        啊哈,今天的分享就到这里了,今天主要讨论了如何在linux机器上添加端口转发规则以及删除端口转发规则,解决我们服务运行在80端口上的问题,当然,只是间接的解决了啦!希望阿福的分享能给你带来收获!

Logo

更多推荐