Ich habe zwei Ubuntu-Server:
Server 1 (IP: 192.168.10.11) ist online und verbindet sich mit zwei Netzwerkschnittstellen (intern, öffentlich)
Server 2 (IP: 192.168.10.10) ohne öffentlichen Zugriff (intern)
Ich versuche, Server1 als Standard-Gateway für Server2 zu verwenden, und Folgendes habe ich getan:
# 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 ist auf beiden installiert (172.17.0.0)
Sie können sich gegenseitig anpingen, aber von Server2 aus ist es nicht möglich, Google anzupingen.
Antwort1
Debian-Stil (der einfache Weg):
bearbeiten/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
Die Lazy-Crontab-Methode:
bearbeiten/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-Stil:
nano /root/allow_lan_nat.sh
Sie müssen das für Sie passende LAN einstellen. Dies könnte beispielsweise
192.168.0.0/24 (ein LAN-Subnetz, Standardklasse C),
192.168.0.0/16 (alle Subnetze von 192.168),
172.16.0.0/16 (Standardklasse B) oder
10.0.0.0/8 (Standardklasse A) sein.
#!/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
laufenbash /root/allow_lan_nat.sh
Direkte Antwort auf Ihre Frage
Denken Sie daran, dass ich zum Zeitpunkt dieser Antwort die Schnittstelle nicht kenne. Ich gehe also davon aus, dass es sich bei Ihrer Schnittstelle um eine Schnittstelle zum Internet handelt. Andernfalls aktualisieren Sie sie wie oben beschrieben.
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
MERKEN, ens3
muss die Internet-Schnittstelle seinAktualisieren Sie es also entsprechend Ihren Anforderungen.