欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

双网卡Linux系统配置NAT转发

程序员文章站 2022-05-22 19:23:06
...

本文根据在ubuntu 18.08 上的操作进行编写

双网卡Linux配置NAT转发

主要用处

  • 将Linux作为跳板机访问网站
  • 作为NAT转发将内网中服务映射到外网

下面通过NAT转发将内网中服务映射到外网来讲解如何配置

NAT转发将内网中服务映射到外网

双网卡Linux系统配置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,将内网中的服务映射了出去。