双网卡Linux系统配置NAT转发

本文根据在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

步骤二:更改路由表

ubuntu@root: sudo route add 10.10.41.202 gw 10.10.3.1

这一步的是因为在测试环境中A2和B1不属于一个网段,因为要配置路由表保证跳板机有去代理服务机的路由,如果在A2和B1是在一个网段下,那这条命令也不用配置。这里要根据实际的网络情况配置路由。

步骤三:配置NAT规则

# 开启相关服务,这一步也可能可以不作,因为可能系统本身就是开启的
ubuntu@root: sudo /sbin/modprobe ip_tables
ubuntu@root: sudo /sbin/modprobe ip_conntrack
ubuntu@root: sudo /sbin/modprobe ip_conntrack_ftp
ubuntu@root: sudo /sbin/modprobe ip_nat_ftp

#清空NAT现有规则,也可以不清除
ubuntu@root: sudo iptables -t nat -F                        
ubuntu@root: sudo iptables -F INPUT
ubuntu@root: sudo iptables -F OUTPUT
ubuntu@root: sudo iptables -F FORWARD

# 配置NAT映射和IP伪装,主要实现从eno1 6666端口进来的数据包 通过 eno2 转发给 10.10.41.202 的 6666 端口
ubuntu@root: sudo iptables -t nat -A PREROUTING -p tcp --dport 6666 -j DNAT -i eno1 --to-destination 10.10.41.202:6666
ubuntu@root: 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映射没法转发,就是这个转发链没有配置)
ubuntu@root: sudo iptables -A FORWARD -i eno2 -o eno1 -p tcp  -j ACCEPT
ubuntu@root: 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,将内网中的服务映射了出去。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章