WLAN-Signal durch Ethernet-Kabel „leiten“

WLAN-Signal durch Ethernet-Kabel „leiten“

Derzeit sind die Ethernet-Ports in dem Gebäude, in dem ich arbeite, ausgefallen, aber das WLAN funktioniert. Ich habe einen Laptop mit WLAN-Funktion (Ubuntu 14.04LTS (Trusty Tahr)) und eine nicht Wi-Fi-fähige Workstation (Debian 8(Jessie)) mit nur einem Ethernet-Stecker.

Ist es möglich, die beiden über ein Ethernet-Kabel zu verbinden und eine Netzwerkverbindung auf der Workstation herzustellen?

Antwort1

Ja, das können Sie tun, und es ist nicht einmal so schwer. Ich habe einen Laptop mit einer WLAN-Karte und einem Ethernet-Anschluss. Ich habe einen RapberryPi mit Arch Linux über ein „Crossover“-Ethernet-Kabel daran angeschlossen. Das ist eine spezielle Sache, die Sie möglicherweise benötigen – nicht alle Ethernet-Karten können eine direkte Verbindung von Maschine zu Maschine herstellen.

Der andere schwierige Teil ist die IP-Adressierung. Am besten lässt sich das veranschaulichen. Hier ist mein kleines Setup-Skript. Noch einmal: enp9s0 ist der Ethernet-Port des Laptops und wlp12s0 ist das drahtlose Gerät des Laptops.

#!/bin/bash
/usr/bin/ip link set dev enp9s0 up
/usr/bin/ip addr add 172.16.1.1/24 dev enp9s0
sleep 10

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE
iptables -A FORWARD -o enp9s0 -i wlp12s0 -s 172.16.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

dhcpd -cf /etc/dhcpd.enp9s0.conf enp9s0

Das Skript legt eine statische IP-Adresse für die Ethernet-Karte fest, 172.16.1.1, und richtet dann NAT ein, indem es ein Kernelmodul lädt. Es aktiviert das IP-Routing (auf dem Laptop) und führt dann ein paar iptableskleine Zaubertricks aus, um Pakete von der WLAN-Karte über das Ethernet zu routen und umgekehrt.

Ich habe dhcpdes auf dem Ethernet-Port laufen lassen, um IP-Adressen auszugeben, weil das Raspberry Pi das will, aber Sie könnten auf Ihrer Workstation auch eine statische Adresse einrichten, zusammen mit statischem Routing, DNS-Server und NTP-Server.

/etc/dhcpd.enp9s0.confFür den Fall, dass Sie diesen Weg einschlagen, sieht die Datei folgendermaßen aus:

option domain-name "subnet";
option domain-name-servers 10.0.0.3;
option routers 172.16.1.1;
option ntp-servers 10.0.0.3;
default-lease-time 14440;
ddns-update-style none;
deny bootp;
shared-network intranet {
        subnet 172.16.1.0 netmask 255.255.255.0 {
                option subnet-mask 255.255.255.0;
                pool { range 172.16.1.50 172.16.1.200; }
        }
}

Die Wahl der IP-Adresse ist ziemlich kritisch. Ich habe 172.16.1.0/24 für das Ethernet-Kabel verwendet, das aus dem Laptop kommt. Die WLAN-Karte auf dem Laptop hat am Ende eine 192.161.1.0/24 . Sie müssen nachsehen, welche IP-Adresse das WLAN des Laptops hat, und ein anderes Subnetz für die Ethernet-Karte wählen. Außerdem müssen Sie eines der „Bogon“- oder „nicht routbaren“ Netzwerke wählen. In meinem Beispiel gehört 172.16.1.0/24 zu den offiziellen nicht routbaren IP-Adressbereichen, ebenso wie 192.168.1.0/24 und die Adresse 10.0.0.3, die dhcpd.enp9s0.conffür einen DNS-Server und einen NTP-Server angegeben wird. Sie müssen Ihren Kopf benutzen, um herauszufinden, was für Ihr Setup angemessen ist.

Antwort2

Ist das möglich? Absolut. Sie müssen lediglich die IP-Weiterleitung oder das Routing oder eine andere (einfache) Möglichkeit konfigurieren, Pakete vom Ethernet-Port des Laptops zum WLAN des Laptops und umgekehrt zu verschieben. Ist das eine gute Idee? Wahrscheinlich nicht – Ihre Netzwerkadministratoren könnten ein wenig sauer auf Sie sein.

Antwort3

Laut Wikipedia funktioniert ein normales Kabel, wenn einer der Ethernet-Ports Gigabit ist, kein Crossover erforderlich, ich habe auf beiden Seiten Gigabit und ein normales Kabel funktioniert.

Die Frage wurde im Jahr 2016 gestellt, daher gehe ich davon aus, dass der Netzwerkmanager auf beiden Linux-Rechnern läuft und Sie dessen GUI zum Festlegen von IPs verwenden können. Andernfalls haben Sie wahrscheinlich eine benutzerdefinierte Einrichtung vorgenommen und wissen, wie Sie eine IP über die Eingabeaufforderung einrichten, daher lasse ich diese Details aus.

Nachdem Sie die Verbindung per Kabel hergestellt haben, werden Ihnen in der GUI die Namen der Netzwerkschnittstellen angezeigt, die sich auf Ethernet auf Laptop und Workstation beziehen.

Vorausgesetzt, es ist Ihnen nicht wichtig, die Arbeitsstation (und/oder den Laptop über Ethernet) regelmäßig mit anderen Netzwerkgeräten zu verbinden, können Sie auf beiden eine statische IP für die Ethernet-Schnittstellen einrichten.

Stellen Sie Ihre statischen IPs nicht auf dasselbe Subnetz wie für WLAN ein. Wenn WLAN beispielsweise 192.168.1.0/16 ist, stellen Sie es auf 192.168.2.1 und 192.168.2.2 ein. Die Subnetzmaske ist 255.255.255.0, da sich nur die letzte „Zahl“ der IP unterscheidet. DNS auf der Arbeitsstation sollte auf dieselbe DNS-IP wie für WLAN auf dem Laptop eingestellt werden, um DNS (Sites nach Namen öffnen, nicht nur nach IP) auf der Arbeitsstation verwenden zu können.

Sie müssen die IP-Weiterleitung auf dem Laptop aktivieren:

sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

Da Ihr Netzwerkmanager auf dem Laptop höchstwahrscheinlich Ethernet als qualitativ besser als WLAN ansieht, wird er standardmäßig versuchen, alles dorthin zu senden, und Sie verlieren nach der Einrichtung von Ethernet die Internetverbindung. Um wieder WLAN verwenden zu können, müssen Sie auf dem Laptop im Abschnitt [ipv4] der Datei, die sich auf die Ethernet-Verbindung bezieht (Name, den Sie in der GUI des Netzwerkmanagers für Ethernet sehen), an der Position die /etc/NetworkManager/Zeile hinzufügen

never-default=true

(Wenn Ihre GUI über ein Kontrollkästchen wie „Nur für Ressourcen dieser Verbindung verwenden“ für Ethernet verfügt – bei mir befindet es sich im Abschnitt „IP4“ der Verbindungseigenschaften –, können Sie das stattdessen verwenden.)

Und schließlich, vorausgesetzt, Ihre IP-Tabellenregeln bleiben standardmäßig auf „alles akzeptieren“ eingestellt, werden Ihre Pakete von der Arbeitsstation ins Internet gehen, aber nicht den Weg zurück finden, sondern nur zum Laptop gelangen, bis Sie mit einem Befehl eine NAT-Regel auf dem Laptop einrichten (wobei eth0 der Name Ihrer WLAN-Verbindung sein sollte, den Namen können Sie wie folgt herausfinden sudo ifconfig):

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Wenn es danach nicht funktioniert, versuchen Sie, den Netzwerkmanager neu zu starten:

sudo service network-manager restart

Sie sollten nun fertig sein.

verwandte Informationen