Motivation:
Ich möchte aus mehreren Gründen meinen Linux-Server anstelle des durchschnittlichen WLAN-Routers verwenden
- Ich möchte lernen, wie man einen umfassenderen Server unter Linux einrichtet
- Ich möchte kein Modem haben, 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 einfach hängt
- Ich habe es satt, Router zu kaufen, nur um dann festzustellen, dass ihnen etwas Entscheidendes fehlt, wie Portweiterleitung oder statische IP-Adressierung (DHCP).
Aufstellen:
Letztendlich gelangt die Verbindung über ein Modem direkt zu meinem Server und wird eth0
dann eth1
an einen Netzwerk-Switch weitergeleitet, mit dem alle anderen Client-Computer über Ethernet-Kabel verbunden werden (drahtlos können wir für den Moment vergessen). Momentan befinde ich mich jedoch in einem Bürogebäude und habe eine Verbindung über ein Modem, das zu einem Router führt, der zu einem Netzwerk-Switch führt, der dann zu dem eth0
oben angegebenen führt.
Aktuelle Tutorials:
Ich habe mir einige Tutorials angesehen (Ubuntu-Tutorialist die beste), und ich habe mir einige der Routerfragen hier angesehen (z. B.Dieses hier), aber sie alle beschönigen mehrere Schlüsselkonzepte, wie zum Beispiel:
- In welcher
eth1
Beziehung steht 's zueth0
?/etc/network/interfaces
Muss ich angeben,eth1
dasseth0
als zu verwenden istnetwork
(im Allgemeinen ist es die tatsächliche physikalische Routeradresse)? - Muss ich irgendetwas tun, um die Anweisung
eth1
zu geben, das eingehende Interneteth0
an denjenigen weiterzuleiten, der es im Netzwerk-Switch haben möchte?
Aktueller 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 einwandfrei 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 ist:
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 ihm jedoch keine IP-Adresse zugewiesen.
BEARBEITEN:Hier ist die Konfigurationsdatei des isc-dhcp-Servers, /etc/dhcp3/dhcpd.con
die ich größtenteils kopiert habe vonDiese Seite.
# 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;
}
BEARBEITEN: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?
Antwort1
Ich muss wie Jack the Ripper vorgehen, da mehrere Dinge fehlen, die bei Ihnen fehlen:
Wenn Ihr Client DHCP zum Abrufen der IPs verwendet, benötigen Sie einen DHCP-Server.
iface eth0 inet dhcp
Dies bedeutet bei den Clients, dass sie ihre IPs von einem DHCP-Server erhalten. Wenn Sie keinen DHCP-Server eingerichtet haben, sollten Sie entweder feste IPs verwenden oder einen DHCP-Server installieren.
In den Clients sind keine DNS-Server konfiguriert. Entweder liegt das daran, dass kein DHCP-Server vorhanden ist, oder Sie möchten einen lokalen DNS-Server für Ihr gesamtes Netzwerk verwenden.
iptables
Du hast die Regeln (die Ausgabe von ) nicht angebotensudo iptables -L
, aber ich könnte mir vorstellen, dass du weder die Masquerade-Regeln noch die IP-Weiterleitung aktiviert hast.wie beschrieben.Die IP-Adresse von
eth1
wird nicht empfohlen. Jede IP, die mit endet,0
ist normalerweise das Netzwerk selbst unddie meisten Router/Firewalls geraten bei der Verwendung dieser einfach durcheinander. Ändern Sie es in192.168.7.1
und alles wird größtenteils gut.Ihr
broadcast
Wert in dereth1
Schnittstelle ist nicht korrekt. Sendet Pakete ins Nirgendwo. Der korrekte Wert (unter Berücksichtigung anderer Werte der Schnittstelle) ist192.168.7.255
.Ihre Optionen im DHCP-Server sind tückisch. Die ARP-Pakete werden Ihren Router nie erreichen. Folgendes sollten Sie haben:
default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.7.255; option routers 192.168.7.1; ## This should be the same value of the step 4 option domain-name-servers 8.8.8.8; subnet 192.168.7.0 netmask 255.255.255.0 { range 192.168.7.10 192.168.7.25; }
Befolgen Sie diese Schritte, und Ihr Router wird höchstwahrscheinlich funktionieren.
Antwort2
Braiam hat meine Frage beantwortet, aber ich dachte, es wäre hilfreich, hier eine ausführliche Anleitung zu veröffentlichen. Bitte aktualisieren Sie diese, wenn ich Fehler gemacht habe.
Stellen Sie zunächst sicher, dass Sie über zwei Ethernet-Karten (NICs) verfügen und aktualisieren Sie die /etc/network/interfaces
Datei entsprechend (nichtfälschlicherweise für die /etc/networks
Datei).
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 static
address 192.168.7.1
netmask 255.255.255.0
broadcast 192.168.7.255
network 192.168.1.0
Um Ihre gateway
, broadcast
und zu finden network
, folgen Siediese Anweisungen.
Gehen Sie als nächstes in den Client und bearbeiten Sie die /etc/network/interface
(nochmals,nicht /etc/networks
)-Datei für eine statische IP, um sicherzustellen, dass zumindest die Netzwerkkarte funktioniert.
iface eth0 inet static
address 192.168.7.75
netmask 255.255.255.0
network 192.168.7.0
broadcast 192.168.7.255
gateway 192.168.7.1
Ändern Sie die Werte so, dass sie mit den obigen Werten übereinstimmen. Wenn es funktioniert, großartig, dann folgen Sie den AnweisungenHieraber folge ihnengenau, da es mehrere Dateien gibt, dhcp
verwechseln Sie den Ordner also nicht /etc/dhcp
mit /etc/dhcp3
usw.