一、 iptable让内网机器通过跳板机能够上网

测试主机

  1. A IP:192.168.0.10 #无网络服务器
  2. B IP:192.168.0.11 公网ip:110.110.110.110 #有网络服务器

目的

  1. 使A192.168.0.10)服务器通过B192.168.0.11)服务器能上公网

有网络服务器B执行

  1. #开启内核转发
  2. sed -i 's/.*net.ipv4.ip_forward=.*/net.ipv4.ip_forward=1/' /etc/sysctl.conf|grep "net.ipv4.ip_forward"
  3. sysctl -p #生效
  4. #检查:
  5. cat /proc/sys/net/ipv4/ip_forward #返回1表示正常
  1. #配置iptables
  2. iptables -t nat -A POSTROUTING -s 192.168.0.10/32 -j SNAT --to 110.110.110.110 #解释,将发过来包的源地址为192.168.0.10/32(无网络服务器地址范围)修改为110.110.110.110 (有网络服务器ip)
  3. iptables save #保存配置

无网络服务器A执行

测试步骤(可选)

  1. ip route add 223.5.5.5/32 via 192.168.0.11 #223.5.5.5/32为访问的公网网段范围,192.168.0.11为有网络服务器地址
  2. ping 223.5.5.5 #能通表示没问题
  3. ip route del -net 223.5.5.5/32 gw 192.168.0.11 #删除测试步骤

正式步骤

  1. vim /etc/netplan/50-cloud-init.yaml #修改网卡配置,50-cloud-init需要修改为对应机器的
  2. #修改默认网关,如无则添加,如下:gateway4: 192.168.0.11 192.168.0.11为有网络服务器私网地址
  3. interfaces: [enp125s0f0,enp125s0f1,enp125s0f2,enp125s0f3]
  4. addresses: [192.168.0.10/24 ]
  5. gateway4: 192.168.0.11
  6. nameservers:

使配置生效

  1. sudo netplan apply

查看路由表

  1. route -n
  2. 输入类似如下
  3. 0.0.0.0 192.168.0.11 0.0.0.0 UG 0 0 0 enp1s0f0
  4. 192.168.0.10 0.0.0.0 255.255.255.0 U 0 0 0 enp1s0f0

可以测试访问公网了