Centos7 配置iptables NAT端口转发
打开端口转发的功能
1,首先开启IP转发功能,默认是关闭的。
临时修改:
1 | [root@localhost ~] # echo 1 > /proc/sys/net/ipv4/ip_forward |
修改过后就马上生效,但如果系统重启后则又恢复为默认值0。
永久修改:
1 2 3 4 5 | vi /etc/sysctl .conf # 找到下面的值并将0改成1,如果没有该配置,直接添加 net.ipv4.ip_forward = 1 |
# sysctl -p
(使之立即生效)
默认值0是禁止ip转发,修改为1即开启ip转发功能。
端口转发
假设用户访问本机(10.1.1.5)的3306端口
时我想让它转发到10.1.1.1:3306
1 2 3 4 5 | [root@mongo iptables] # cat iptables-open.sh #!/bin/bash iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to 10.1.1.1:3306 iptables -t nat -A POSTROUTING -p tcp -d 10.1.1.1 --dport 3306 -j MASQUERADE |
查看规则
查看当前iptables的nat表内的规则
1 | iptables -t nat -nL --line |
命令解释:
1 2 3 4 5 | -t nat指定看nat表,不用-t默认为filter表 -L 列出表内所有规则,可以指定特定链 -n 使输出中的IP地址和端口以数值的形式显示 - v 输出详细化 --line 显示出每条规则在相应链中的序号 |
删除规则
如果要删除PREROUTING规则,命令为
1 | iptables -t nat -D PREROUTING 1 # 1 代表前面的规则序号 |
如果要删除POSTROUTING规则,命令为
1 | iptables -t nat -D POSTROUTING 5 # 5 代表前面的规则序号 |
命令解释
1 2 3 4 5 6 7 8 9 10 11 12 13 | -t 指定配置表 -A, ––append 将规则添加到链中(最后)。 -I, ––insert 将规则添加到给定位置的链中。 -C, ––check 寻找符合链条要求的规则。 -D, ––delete 从链中删除指定的规则。 -F, ––flush 删除对应表的所有规则,慎重使用。 -L, ––list 连锁显示所有规则。 - v , ––verbose 使用列表选项时显示更多信息。 -P, --policy 设置链的默认策略(policy) -N, --new 创建用户自定义链 -X, --delete-chain 删除用户自定义链 -E, --rename-chain 重命名用户自定义链 -j target 决定符合条件的包到何处去,target模式很多 |
本文作者:香菜哥哥
本文链接:https://www.cnblogs.com/yizhipanghu/p/17055728.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步