
Ich habe ein Problem. Zunächst möchte ich einen Server auf Ubuntu 14.04 einrichten. Ich habe zwei Schnittstellen: eth0 für den DHCP-Server und eth1 für die Internetverbindung. Aber wenn ich mich gleichzeitig mit zwei Netzwerken verbinde, habe ich auf dem PC kein Internet. Ich muss mich also zwischen Server und Internet entscheiden. Das ist schrecklich. Kann mir jemand sagen, wie ich dieses Problem beheben kann?
/etc/Netzwerk/Schnittstellen:
auto lo eth0 eth1
iface lo inet loopback
iface eth0 inet static
address 172.16.1.100
netmask 255.255.255.0
broadcast 172.16.1.255
gateway 172.16.1.254
sudo route gibt aus:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
192.168.0.0 * 255.255.255.0 U 1 0 0 eth1
UPD: ifconfig gibt aus:
eth0 Link encap:Ethernet HWaddr 90:e6:ba:46:1d:50
inet6 addr: fe80::92e6:baff:fe46:1d50/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:1110 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:184287 (184.2 KB)
eth1 Link encap:Ethernet HWaddr 00:04:75:98:5f:da
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::204:75ff:fe98:5fda/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14498 errors:0 dropped:0 overruns:2 frame:0
TX packets:13096 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9710708 (9.7 MB) TX bytes:1840400 (1.8 MB)
Interrupt:18 Base address:0x4c00
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4398 errors:0 dropped:0 overruns:0 frame:0
TX packets:4398 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:527890 (527.8 KB) TX bytes:527890 (527.8 KB)
Antwort1
Beim Konfigurieren der Ausgabe ifconfig
und den Kommentaren zu meiner ersten Antwort denke ich, dass das Problem mit der Art und Weise zusammenhängt, wie Sie Ihre Netzwerkkarten in konfigurieren /etc/network/interfaces
.
Da Sie keine spezielle Konfiguration füreth1Ich gehe davon aus /etc/network/interfaces
, dass Ihr Modem Ihrem Server die IP-Informationen über DHCP übermittelt. Gemäß der route
Ausgabe erhalten Sie Ihr Standard-Gateway, das auf das Modem und damit auf das Internet verweist.
Aber in Ihrer /etc/network/interfaces
Akte für dieeth0Sie haben auch ein Standard-Gateway konfiguriert (Anweisung gateway 172.16.1.254
).
Sie können nicht zwei Standard-Gateways auf einem System haben. Die Zuweisung des Standard-Gateways aufeth1Deaktivieren der statischen Konfiguration voneth0, Grund, warum es keine IP füreth0in der ifconfig
Ausgabe und warum das Internet funktioniert und das interne Netzwerk nicht mehr.
Sie müssen die Zeile entfernen gateway 172.16.1.254
und es erneut versuchen.
Wenn Sie mehr als ein Subnetz im internen LAN haben, können Sie diese natürlich nicht mehr erreichen. Es sei denn, Sie konfigurieren eine statische Route zu allen diesen Subnetzen auf Ihrem Server:
sudo route add -net ABCD gw 172.16.1.254
route
Sie können den Befehl zu einem darunter gespeicherten Skript hinzufügen, /etc/network/if-up.d
das jedes Mal ausgeführt wird, wenn eine Schnittstelle aktiv ist.
Antwort2
Soweit ich Ihren Beitrag verstehe, verbinden Sie sich mit dem Internet übereth1und zu Ihrem internen Netzwerk übereth0. Und Ihr Server übernimmt dann die Rolle des DHCP-Servers und des Standard-Gateways für den Internetzugang Ihrer PCs.
Überprüfen Sie zunächst auf dem PC, ob alle DHCP-Einstellungen, einschließlich des Gateways, korrekt empfangen wurden. Aus Ihrer Frage schließe ich, dass es 172.16.1.100 sein sollte.
Zweitens, stellen Sie sicher, dass Ihreeth1eine gute Internetverbindung und Konfiguration aufweist; dies hängt natürlich von Ihrem ISP ab.
Zum Schluss noch der wichtigste Schritt: Sie müssen die IP-Weiterleitung zwischen Ihren beiden Schnittstellen auf dem Server aktivieren. Ohne diese Funktion werden keine Pakete zwischen Ihren PCs und dem Internet weitergeleitet:
Manuelle Einrichtung :
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Um das IP-Forward-Flag automatisch beim Booten einzurichten, entfernen Sie das Kommentarzeichen aus der Zeile #net.ipv4.ip_forward=1
in/etc/sysctl.conf
Sie müssen außerdem sicherstellen, dass es keine IPtables-Firewallregeln gibt, die den Datenverkehr blockieren. Gehen Sie folgendermaßen vor:
iptables -L -n
um eine Liste der Regeln zu erhalten, falls es welche gibt. Ich würde zunächst dieses Setup mit allen deaktivierten Firewall-Regeln ausprobieren:
iptables -F
Antwort3
Ich hatte ein ähnliches Problem, aber meine Schnittstellendatei war leer und sah folgendermaßen aus:
# The loopback network interface
auto lo
iface lo inet loopback
Ich konnte das Problem beheben, indem ich die folgende Datei für die kabelgebundene Verbindung verschoben/entfernt habe:
/etc/NetworkManager/system-connections/Wired connection 1
Nach dem Neustart konnte eine Verbindung zu beiden Netzwerken hergestellt werden.