Linux配置完iptables后,重启失效的解决方案

因为只有root用户才可访问1024以下的端口,非root用户登陆是不能启用80端口的。web service 往往启动1024以上的端口,并通过iptables映射到80. 

1、将server.xml中的端口改为8080 

2、然后:iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8080 

(如果用到443,也相应执行以上方法) 

此时虽然可以访问80端口了,但是一旦服务器关机,或者是重启了之后,还是只能通过8080端口访问了。

解决办法如下:

输入完iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8080 后 

执行iptables-save

注意:iptables-save是连在一起的,是一个命令,不是参数

iptables-save 仅仅是列出当前设置,并不是将配置保存

 

iptables-save需要手动指定路径及文件名,适用于多个规则文件情况

service iptables save则将规则保存到/etc/sysconfig/iptables,重启服务后默认加载

 

若你用的是 RedHat 系列,应该使用 service iptables save 保存,用 chkconfig iptables on 实现开机启动启用

若不是 RedHat 系列,可以使用下面方法手动保存/恢复配置

保存

iptables-save > /root/iptables.conf

恢复

iptables-restore < /root/iptables.conf

转载请注明原作者,如果你觉得文章对你有帮助或启发,也可以来请我喝咖啡

点赞