之前遇到新装的LINUX下开启tomcat后其他机器无法访问,都是使用 service iptables stop直接关闭服务,这次需要使用外网的IP对外提供服务,但又不想关闭iptables服务,可以使用/etc/init.d/iptables status 查看当前的状态,如果返回,iptables: Firewall is not running. 此时需要先开启【service iptables start】
开启情况下,返回类似:
num target prot opt source destination
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
2 ACCEPT tcp -- 127.0.0.1 0.0.0.0/0
3 ACCEPT tcp -- 10.0.0.0/8 0.0.0.0/0
4 ACCEPT tcp -- 192.168.0.0/16 0.0.0.0/0
添加8080端口的开放:iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
再次/etc/init.d/iptables status 返回:
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
然后就可以访问了。
当我们用iptables添加规则,保存后,这些规则以文件的形势存在磁盘上的,以centos为例,文件地址是/etc/sysconfig/iptables,我们可以通过命令的方式去添加,修改,删除规则,也可以直接修改/etc/sysconfig/iptables这个文件就行了。
添加防火墙规则
-A默认是插入到尾部的,可以-I来插入到指定位置
[root@linux ~]# iptables -I INPUT 3 -p tcp -m tcp --dport 20 -j ACCEPT // 插入到INPUT 第3号
[root@linux ~]# iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT //开放21端口
[root@linux ~]# iptables -R INPUT 3 -j DROP //将规则3修改成DROP
[root@linux ~]# iptables -D INPUT 3 //删除input的第3条规则