iptables命令Usages可以直接通过-h查看
Usage Options
查看
最简单的命令就是iptables -L
iptables -L
如果想更多详细信息可以使用如下命令
iptables -nL -v --line-numbers
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,如下
CIP=$(sudo docker inspect --format='{{.NetworkSettings.IPAddress}}' $CID)
sudo iptables -A DOCKER -t nat -p udp -m udp ! -i docker0 --dport 60535:65535 -j DNAT --to-destination $CIP:60535-65535
sudo iptables -A DOCKER -p udp -m udp -d $CIP/32 ! -i docker0 -o docker0 --dport 60535:65535 -j ACCEPT
sudo iptables -A POSTROUTING -t nat -p udp -m udp -s $CIP/32 -d $CIP/32 --dport 60535:65535 -j MASQUERADE
添加完成后,效果如下:
net表 filter表
删除
查看chain的时候把--line-numbers参数带上,删除的时候指定好表(默认filter不需要),指定好Chain的名字,指定好number就可以了。
如上filter表里的DOCKER,删除命令如下
iptables -D DOCKER 1
网友评论