Debian 风格(偷懒的方式):

Debian 风格(偷懒的方式):

我有两台 Ubuntu 服务器:

  • 服务器 1(IP:192.168.10.11)在线并连接到两个网络接口(内部、公共)

  • 服务器 2(IP:192.168.10.10),无公共访问权限(内部)

我正在尝试使用 server1 作为 server2 的默认网关,这是我所做的:

# on online server (Jumpbox)
iptables -t nat -A POSTROUTING -s 192.168.10.10 ! -d 192.168.30.1/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

# On offline server
route add default gw 192.168.10.11

两者上都安装了 Docker(172.17.0.0)

它们可以互相 PING 通,但是从 server2 无法 PING 通 Google。

答案1

Debian 风格(偷懒的方式):

编辑/etc/network/interfaces

iface eth0 inet static
address  10.0.0.1
netmask  255.0.0.0
post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
post-up   iptables -t nat -A POSTROUTING -s '10.0.0.0/8' -o eth0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/8' -o eth0 -j MASQUERADE

懒惰的 Crontab 方式:

编辑/etc/crontab

@reboot root "echo 1 > /proc/sys/net/ipv4/ip_forward; iptables -t nat -A POSTROUTING -s '10.0.0.0/8' -o eth0 -j MASQUERADE; iptables -t nat -D POSTROUTING -s '10.0.0.0/8' -o eth0 -j MASQUERADE"

Bash 风格:

nano /root/allow_lan_nat.sh
您必须调整适合您的正确 LAN,可能是
192.168.0.0/24(一个 LAN 子网,默认类 C)
192.168.0.0/16(192.168 的所有子网)
172.16.0.0/16(默认类 B)
10.0.0.0/8(默认类 A)

#!/bin/bash
#Ajust the LAN, as above shown
MYLANIP=10.0.0.0/8

#The IFACE that has Internet.
MYINETIFACE=eth0
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s $MYLANIP -o $MYINETIFACE -j MASQUERADE
iptables -t nat -D POSTROUTING -s $MYLANIP -o $MYINETIFACE -j MASQUERADE 

跑步bash /root/allow_lan_nat.sh

直接回答你的问题

提醒一下,在我回答这个问题的时候,我不知道界面是什么,所以我假设 ens3 是你面向互联网的界面,否则请像上面一样更新它

echo 1 > /proc/sys/net/ipv4/ip_forward  
iptables -t nat -A POSTROUTING -s '192.168.10.0/24' -o ens3 -j MASQUERADE  
iptables -t nat -D POSTROUTING -s '192.168.10.0/24' -o ens3 -j MASQUERADE  

提醒一下,ens3必须是面向互联网的界面因此请根据您的需要进行更新。

相关内容