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 仅仅是列出当前设置,并不是将配置保存
若你用的是 RedHat 系列,应该使用 service iptables save 保存,用 chkconfig iptables on 实现开机启动启用
若不是 RedHat 系列,可以使用下面方法手动保存/恢复配置
保存
iptables-save > /root/iptables.conf
恢复
iptables-restore < /root/iptables.conf