最简单的命令就是iptables -L
如果想更多详细信息可以使用如下命令
iptables -nL -v --line-numbers
如果需要查询指定的table,需要使用-t(默认是filter表)
如查询nat表中的规则
iptables -t nat -nL -v --line-numbers
使用-A添加规则
iptables -A DOCKER -t nat -p udp -m udp ! -i docker0 --dport 60535:65535 -j DNAT --to-destination 172.17.0.2:60535-65535
添加一个名字叫DOCKER的chain,在表nat中,映射的protocol为udp,-m表示扩展匹配:
!表示取非:非docker0入口的包,60535:65535端口,映射到172.17.0.2:60535-65535
举例:
Freeswitch-container的docker需要配置iptables,如下
添加完成后,效果如下:
查看chain的时候把--line-numbers参数带上,删除的时候指定好表(默认filter不需要),指定好Chain的名字,指定好number就可以了。
如上filter表里的DOCKER,删除命令如下
iptables -D DOCKER 1
首先要说明的是IPTables命令必需以root权限运行,这意味着你需要使用root身份登录或者能够有权限使用su或sudo -i取得root Shell。下面的内容中我们都使用sudo,这也是Ubuntu系统上的首选方法。最好的起点就是先通过“-L”参数来查看下当前系统的所有IPTables规则:
sudo iptables -L
我们可以看到Linux中都有的3个常用默认链(INPUT、OUTPUT和FORWARD),同时也可以看到每个链的缺省策略(每个链对默认策略都是接受),在此我们可以看到Ubuntu中并没有添加任何默认规则集。
你是在弄防火墙吧,1,添加filter表
[root@linux ~]# iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT //开放21端口
出口我都是开放的iptables -P OUTPUT ACCEPT,所以出口就没必要在去开放端口了。
2,添加nat表
[root@linux ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
将源地址是 192.168.10.0/24 的数据包进行地址伪装,可根据自己实际IP修改
3,以下实例 :-A默认是插入到尾部的,可以-I来插入到指定位置
[root@linux ~]# iptables -I INPUT 3 -p tcp -m tcp --dport 20 -j ACCEPT
[root@linux ~]# iptables -L -n --line-number
三,查下iptable规则
1,查看filter表
[root@linux ~]# iptables -L -n --line-number |grep 21 //--line-number可以显示规则序号,在删除的时候比较方便
5ACCEPT tcp -- 192.168.1.0/24 0.0.0.0/0 tcp dpt:21
如果不加-t的话,默认就是filter表,查看,添加,删除都是的
2,查看nat表
[root@linux ~]# iptables -t nat -vnL POSTROUTING --line-number
四,修改规则
[root@linux ~]# iptables -R INPUT 3 -j DROP//将规则3改成DROP
五,删除iptables规则
[root@linux ~]# iptables -D INPUT 3 //删除input的第3条规则
[root@linux ~]# iptables -t nat -D POSTROUTING 1 //删除nat表中postrouting的第一条规则
[root@linux ~]# iptables -F INPUT //清空 filter表INPUT所有规则
[root@linux ~]# iptables -F//清空所有规则
[root@linux ~]# iptables -t nat -F POSTROUTING //清空nat表POSTROUTING所有规则
六,设置默认规则
[root@linux ~]# iptables -P INPUT DROP //设置filter表INPUT默认规则是 DROP
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)