Motivation:
Ich möchte aus mehreren Gründen meinen Linux-Server anstelle des durchschnittlichen WLAN-Routers verwenden
- Ich möchte lernen, wie man einen vollständigeren Server unter Linux einrichtet
- Ich möchte kein Modem, das an einen Router oder einen Netzwerk-Switch angeschlossen ist
- Ich habe es satt, meinen Router alle 10 Tage ausstecken zu müssen, weil er nur hängt
- Ich habe es satt, Router zu kaufen, nur um zu bemerken, dass ihnen etwas Entscheidendes fehlt, wie Portweiterleitung oder statische IP-Adressierung (DHCP).
Installieren:
Letztlich kommt die Verbindung zu einem Modem, und gerade in meinen Server durch eth0
, dann eth1
Ausgabe wird zu einem Netzwerk - Switch , den alle anderen Client - Computer über Ethernet - Kabel verbinden (vergessen für den Moment kabellos). Gegenwärtig bin ich jedoch in einem Bürogebäude und habe die Verbindung in einem Modem, das in einen Router geht, der in einen Netzwerkswitch geht, der dann in eth0
wie oben angegeben geht .
Aktuelle Tutorials:
Ich habe mir einige Tutorials angesehen ( das beste ist das Ubuntu-Tutorial ), und ich habe mir einige der Router-Fragen angesehen (dh diese hier ), aber alle beschönigen einige Schlüsselbegriffe, wie:
- Worauf bezieht sich
eth1
'seth0
? In/etc/network/interfaces
muss ich sageneth1
,eth0
wie die zu verwenden istnetwork
(in der Regel ist es die tatsächliche physikalische Router-Adresse)? - Muss ich irgendetwas tun, um anzuweisen
eth1
, dass das Internet, das hereinkommteth0
, an wen auch immer im Netzwerk-Switch weitergeleitet werden soll?
Gegenwärtiger Ansatz:
Hier ist meine /etc/network/interfaces
Datei auf dem Server:
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.70
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
auto eth1
# iface eth1 inet dhcp
iface eth1 inet static
address 192.168.7.0
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
Und ifconfig
sagt mir, dass beide Netzwerkkarten gut funktionieren:
eth0 Link encap:Ethernet HWaddr 20:cf:30:55:a0:5f
inet addr:192.168.1.70 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::22cf:30ff:fe55:a05f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11297 errors:0 dropped:0 overruns:0 frame:0
TX packets:16639 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:948633 (948.6 KB) TX bytes:1274685 (1.2 MB)
eth1 Link encap:Ethernet HWaddr 00:11:95:f7:f4:6d
inet addr:192.168.7.0 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::211:95ff:fef7:f46d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:243 errors:0 dropped:0 overruns:0 frame:0
TX packets:3231 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29934 (29.9 KB) TX bytes:213055 (213.0 KB)
Interrupt:21
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:5348 errors:0 dropped:0 overruns:0 frame:0
TX packets:5348 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:470737 (470.7 KB) TX bytes:470737 (470.7 KB)
wlan0 Link encap:Ethernet HWaddr bc:f6:85:f8:70:5c
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Und hier ist was route -n returns
auf dem Server:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.7.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Dann habe ich auf dem Client
auto lo
iface lo inet loopback
iface eth0 inet dhcp
Es wird aber keine IP-Adresse vergeben.
BEARBEITEN: Hier ist die Konfigurationsdatei für den isc-dhcp-Server, /etc/dhcp3/dhcpd.con
die ich hauptsächlich von dieser Site kopiert habe .
# Sample /etc/dhcpd.conf
# (add your comments here)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.example";
subnet 192.168.7.0 netmask 255.255.255.0 {
range 192.168.7.10 192.168.7.25;
}
EDIT: Ausgabe vonsudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level warning
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Frage:
Welche wichtigen Schritte / Komponenten fehlen mir in diesem Setup?
quelle
dhcp
(und damitdhcpd
) ist es nicht zwingend erforderlich, und dient nur zum Zentralisieren aller statischen IPS auf dem Server (im Gegensatz zum Ändern der/etc/network/interfaces
Datei in jedem Host). Deshalb habe ich beschlossen, damit nicht zu experimentieren, bis dies funktioniert. Ich habe jedochdhcp3-server
installiert, sowieisc-dhcp-server
dhcpd.conf
Datei hinzugefügt und angegeben, dass ichisc-dhcp-server
Antworten:
Ich muss wie Jack the Ripper gehen, weil einige Dinge fehlen, die du hast:
Wenn Ihr Client DHCP verwendet, um die IPs abzurufen, benötigen Sie einen DHCP-Server.
In den Clients bedeutet dies, dass sie ihre IP-Adressen von einem DHCP-Server beziehen. Wenn Sie keinen DHCP-Server eingerichtet haben, sollten Sie entweder feste IP-Adressen verwenden oder einen DHCP-Server installieren.
Auf den Clients sind keine DNS-Server konfiguriert. Entweder aufgrund des Fehlens eines DHCP-Servers, oder Sie möchten möglicherweise einen lokalen DNS-Server für Ihr gesamtes Netzwerk verwenden.
Sie haben die
iptables
Regeln (die Ausgabe vonsudo iptables -L
) nicht angeboten, aber ich konnte mir vorstellen, dass Sie weder die Masquerade-Regeln noch die IP-Weiterleitung wie beschrieben aktiviert haben .Die IP-Adresse von
eth1
wird nicht empfohlen. Jede IP-Adresse, die endet, ist in der0
Regel das Netzwerk selbst, und die meisten Router / Firewalls sind nur verwirrt, wenn diese verwendet werden . Ändern Sie es auf192.168.7.1
und es wird Ihnen größtenteils gut gehen.Ihr
broadcast
Wert in dereth1
Schnittstelle ist nicht korrekt. Versendet Pakete nach nirgendwo. Der richtige Wert (unter Berücksichtigung anderer Werte der Schnittstelle) ist192.168.7.255
.Ihre Optionen auf dem DHCP-Server sind bösartig. Die ARP-Pakete zu Ihrem Router werden niemals erreicht. Das sollten Sie haben:
Befolgen Sie diese und höchstwahrscheinlich wird Ihr Router funktionieren.
quelle
sudo iptables -L
zu question192.168.7.255
und Zeile 8subnet 192.168.7.0
.255
ist die normalerweise verwendete Broadcast-Adresse. Jedes Paket, das in diese Richtung gesendet wird, wird an alle Systeme in denselben Subnetzen gesendet. Was bedeutet , dass jedes Paket , zu 1.2.3.255 gesendet wird es von jedem System der IP-Adressen beginnen mit 1.2.3 , da sie alle sind im selben Subnetz empfangen wird en.wikipedia.org/wiki/Subnetwork#IPv4_subnettingdhcp
oder das Netzwerk ist. Gibt eine statische IP-Adresse zum Testen aus. verwende ich für die statische IP auf dem Client dieeth1
IP-Adresse des Gateways?Braiam beantwortete meine Frage, aber ich dachte, es wäre hilfreich, hier eine gründliche Anleitung zu geben. Bitte aktualisieren Sie diese, wenn ich Fehler gemacht habe.
Zunächst stellen Sie sicher , haben Sie zwei Ethernet - Karten (NICs) und die Update -
/etc/network/interfaces
Datei als solche (nicht nicht das für die Fehler -/etc/networks
Datei).So finden Sie Ihre
gateway
,broadcast
undnetwork
folgen Sie diese Anweisungen .Gehen Sie als Nächstes in den Client und bearbeiten Sie zuerst die Datei
/etc/network/interface
(erneut, nicht/etc/networks
) für die statische IP, um sicherzustellen, dass mindestens die NIC-Karte funktioniert.Ändern Sie die Werte so, dass sie mit den obigen Werten übereinstimmen. Wenn es funktioniert, großartig, dann befolgen Sie die Anweisungen hier genau , da es mehrere
dhcp
Dateien gibt. Verwechseln Sie also nicht den Ordner/etc/dhcp
mit/etc/dhcp3
und so weiter.quelle