...
实践环境
虚拟机系统:CentOS 7.8 Minimal
网卡eth0(公网ipv4):42.51.9.135
网卡eth1(公网ipv6):240e:93d:1000:9::10
安装 iptables
由于CentOS 7 默认自带 Firewalld 防火墙,我们先关闭它
禁用 firewalld 服务
systemctl disable firewalld
systemctl stop firewalld安装 & 启动 iptables
yum install -y iptables iptables-services
systemctl start iptables ip6tables  #启动服务
systemctl enable iptables ip6tables  #开机启动
开启IPv4 & IPv6 路由转发
修改 /etc/sysctl.conf 文件参数值为如下,不存在则添加
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1执行以下命令生效修改
sysctl -p创建虚拟网关IP地址
创建 IPv4 虚拟网卡 /etc/sysconfig/network-scripts/ifcfg-eth0:1
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0:1
DEVICE=eth0:1
ONBOOT=yes
IPADDR=172.20.10.1
NETMASK=255.255.255.0创建 IPv6 虚拟网卡 /etc/sysconfig/network-scripts/ifcfg-eth1:1
BOOTPROTO=none
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1:1
DEVICE=eth1:1
ONBOOT=yes
IPV6ADDR=1000:2000:3::1/64注意:ifcfg-eth0:1 和 ifcfg-eth1:1 是根据真实网卡名称追加 :1 而来,如果你是双栈网络,则只需创建一个虚拟网卡即可
重启网卡
systemctl restart network使用 ifconfig 命令查看虚拟网卡是否生效
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 42.51.9.135  netmask 255.255.255.0  broadcast 42.51.9.255
        ether fa:d8:c6:d5:36:00  txqueuelen 1000  (Ethernet)
        RX packets 2737180  bytes 1381900847 (1.2 GiB)
        RX errors 0  dropped 131721  overruns 0  frame 0
        TX packets 2336822  bytes 1584694107 (1.4 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.20.10.1  netmask 255.255.255.0  broadcast 172.20.10.255 # 虚拟网卡地址 172.20.10.1 正常
        ether fa:d8:c6:d5:36:00  txqueuelen 1000  (Ethernet)
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 240e:93d:1000:9::10  prefixlen 64  scopeid 0x0<global>
        inet6 1000:2000:3::1  prefixlen 64  scopeid 0x0<global> # 虚拟网卡地址 1000:2000:3::1 正常
        inet6 fe80::2e60:784b:cb24:db8e  prefixlen 64  scopeid 0x20<link>
        inet6 fe80::f85e:e8ff:fe69:4901  prefixlen 64  scopeid 0x20<link>
        ether fa:5e:e8:69:49:01  txqueuelen 1000  (Ethernet)
        RX packets 3956859  bytes 661939743 (631.2 MiB)
        RX errors 0  dropped 131668  overruns 0  frame 0
        TX packets 279555  bytes 207357925 (197.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0建立 iptables SNAT 转发规则
为了保证没有其它规则影响,可以先把 iptables 现有NAT 规则清空
iptables -F && iptables -t nat -F
ip6tables -F && ip6tables -t nat -F建立转发规则
iptables -t nat -A POSTROUTING -s 172.20.10.0/24 -j MASQUERADE
ip6tables -t nat -A POSTROUTING -s 1000:2000:3::/64 -j MASQUERADE保存规则
service iptables save
service ip6tables save开始使用
在你的云计算平台创建两个私有网络地址池
IPv4:
网关:172.20.10.1
掩码:255.255.255.0
DNS:114.114.114.114(任何可用的公共DNS)
可用IP范围:172.20.10.2-172.20.10.254 (当然,你可以根据自己需求设置IP范围)IPv6:
网关:1000:2000:3::1
前缀长度:64
DNS:2400:3200:baba::1(任何可用的公共DNS)
可用IP范围:随心所欲。。。功效扩展
 
NAT网关 - 私有网段 互通
私有IP - 私有IP 互通
当你想使用私有网段下的云主机某个端口通过 NAT网关(公网)访问,一样可以使用 iptables 映射 172.20.10.x 指定端口到公网上。具体端口映射规则自行百度就有。
同时你也可以使用 nginx 等程序反向代理私有IP 的任何应用,达到一个IP 共用 80 & 443 端口的效果。
SNI Proxy 也是一个非常好的开源程序,能实现四层协议无缝反代( 
 )
版权声明:本文为原创文章,版权归 Cooluc's Blog 所有,转载请注明出处!
本文链接:https://www.cooluc.com/archives/856.html
友情提示:如果博客出现404或链接失效,请留言或者联系博主修复!
                            
1 条评论
nat 后 ssh 上不去了,怎么解😂