配置iptables,把80端口转到8080


类型:LinuxApp,创建时间:Dec. 30, 2011, 7:25 p.m.

标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/15/。

今天安装了一个tomcat服务器,不想让服务器直接以root用户运行,就配置了一个低权限的用户给它。但是,众所周知,在unix下,非root用户不能监听1024以上的端口号,这个tomcat服务器就没办法绑定在80端口下。

怎么办呢?有两种方案:

1、使用setuid或者sudo提升程序的权限。这个不好,跟直接用root一样的缺点。

2、把到80端口的服务请求都转到8080端口上。这个又分为两种方法。常见的方法是使用apache监听80端口,然后利用ajp转向把服务转到8080。这个办法有很多好处。比如对于一些静态或者php的url就可以直接由apache提供服务,而只把jsp的请求转到tomcat。这里不再详述。我使用的是第二种方法,利用iptables把80端口映射到8080。很简单,在root权限下运行一条命令:

iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-ports 8080

现在就可以看到效果了。不过据说不能拿本机做试验,因为本机的PREROUTING不起效果。你可以拿别人的机器试一下。

大多数Linux发行版本有关于iptables的配置文件,比如基于Redhat的发行版一般有一个/etc/sysconfig/iptables这个文件。使用这条命令把当前的iptables配置写到这个文件里:

iptables-save > /etc/sysconfig/iptables

重新启动机器之后端口映射就仍然有效

标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/15/。


暂时还没有任何评论。


何不来发表一下您对本文的看法(使用Markdown语法,分段空两行):