Debian スタイル (怠惰な方法):

Debian スタイル (怠惰な方法):

私は 2 台の Ubuntu サーバーを所有しています:

  • サーバー 1 (IP: 192.168.10.11) はオンラインで、2 つのネットワーク インターフェイス (内部、パブリック) に接続しています。

  • パブリックアクセスなしのサーバー 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 することはできますが、サーバー 2 から Google に PING することはできません。

答え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"

バッシュスタイル:

nano /root/allow_lan_nat.sh
自分に合った正しい LAN を調整する必要があります。たとえば
、192.168.0.0/24 (1 つの 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  

REMINDはens3インターネットに面したインターフェースである必要があります必要に応じて更新してください。

関連情報