У меня есть два сервера 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)
Они могут пинговать друг друга, но с сервера2 не удается пинговать гугл.
редактировать/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
редактировать/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
Вы должны настроить правильную локальную сеть, которая вам подходит, что может
192.168.0.0/24 (Одна подсеть локальной сети, класс 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
должен быть интерфейсом с выходом в Интернет , поэтому обновите его в соответствии с вашими потребностями.