双网卡Linux系统配置NAT转发
程序员文章站
2022-05-22 19:23:06
...
双网卡Linux系统
本文根据在ubuntu 18.08 上的操作进行编写
双网卡Linux配置NAT转发
主要用处
- 将Linux作为跳板机访问网站
- 作为NAT转发将内网中服务映射到外网
下面通过NAT转发将内网中服务映射到外网来讲解如何配置
NAT转发将内网中服务映射到外网
主要功能
- 将内网中10.10.41.202上的SSR服务映射到A1网卡,让外网中计算机访问公网IP:112.203.188.43就能访问到内网中10.10.41.202服务,这里的服务可以是任意服务,如网页服务,FTP服务等
配置方法
步骤一:配置允许转发
1.查看转发功能是否开启 sysctl net.ipv4.ip_forward
2.如果为0 编辑/etc/sysctl.conf 中 net.ipv4.ip_forward = 1
3.使更改生效:sysctl -p /etc/sysctl.conf
步骤二:更改路由表
aaa@qq.com: sudo route add 10.10.41.202 gw 10.10.3.1
这一步的是因为在测试环境中A2和B1不属于一个网段,因为要配置路由表保证跳板机有去代理服务机的路由,如果在A2和B1是在一个网段下,那这条命令也不用配置。这里要根据实际的网络情况配置路由。
步骤三:配置NAT规则
# 开启相关服务,这一步也可能可以不作,因为可能系统本身就是开启的
aaa@qq.com: sudo /sbin/modprobe ip_tables
aaa@qq.com: sudo /sbin/modprobe ip_conntrack
aaa@qq.com: sudo /sbin/modprobe ip_conntrack_ftp
aaa@qq.com: sudo /sbin/modprobe ip_nat_ftp
#清空NAT现有规则,也可以不清除
aaa@qq.com: sudo iptables -t nat -F
aaa@qq.com: sudo iptables -F INPUT
aaa@qq.com: sudo iptables -F OUTPUT
aaa@qq.com: sudo iptables -F FORWARD
# 配置NAT映射和IP伪装,主要实现从eno1 6666端口进来的数据包 通过 eno2 转发给 10.10.41.202 的 6666 端口
aaa@qq.com: sudo iptables -t nat -A PREROUTING -p tcp --dport 6666 -j DNAT -i eno1 --to-destination 10.10.41.202:6666
aaa@qq.com: sudo iptables -t nat -A POSTROUTING -o eno2 -d 10.10.41.202 -p tcp --dport 6666 -j SNAT --to-source 10.10.3.199
# 配置内部转发链(如何发现上面配置了NAT映射没法转发,就是这个转发链没有配置)
aaa@qq.com: sudo iptables -A FORWARD -i eno2 -o eno1 -p tcp -j ACCEPT
aaa@qq.com: sudo iptables -A FORWARD -i eno1 -o eno2 -p tcp -j ACCEPT
步骤四:保存NAT规则,设置开启启动
可做可不做,不做就每次开启重新配置一次
sudo sh -c "iptables-save > /etc/iptables-rules"
# 加载NAT规则
sudo sh -c "iptables-restore < /etc/iptables-rules"
#如果要设置开机启动
将 "iptables-restore < /etc/iptables-rules" 这行命令写入到 /etc/network/if-pre-up.d/iptables 文件(没有该文件就新建即可)中,必须先保存NAT规则
通过以上配置就实现了访问112.203.188.43:6666 就是访问10.10.41.202:6666,将内网中的服务映射了出去。
下一篇: Qt视频播放---基于Windows