«Pipe» signal Wi-Fi via un câble Ethernet

8

Actuellement, les ports Ethernet du bâtiment dans lequel je travaille sont en panne, mais le Wi-Fi fonctionne. J'ai un ordinateur portable compatible Wi-Fi ( Ubuntu 14.04 LTS (Trusty Tahr)) et une station de travail non compatible Wi-Fi ( Debian 8 (Jessie)) avec uniquement une prise Ethernet.

Est-il possible de connecter les deux via un câble Ethernet et d'obtenir la connectivité réseau sur la station de travail?

mbiokyle
la source
Douteux, mais vous pouvez brancher le câble Ethernet directement sur votre routeur ..
ryekayo
Voir cette question sur askubuntu - askubuntu.com/questions/359856/… . Cela suppose qu'au moins un des ports réseau est à détection automatique (ou vous avez un câble croisé).
Andy C

Réponses:

9

Oui, vous pouvez le faire, et ce n'est même pas si difficile. J'ai un ordinateur portable avec une carte sans fil et un port Ethernet. J'y ai branché un RapberryPi exécutant Arch Linux, via un câble Ethernet "croisé". C'est une chose spéciale dont vous pourriez avoir besoin - toutes les cartes Ethernet ne peuvent pas établir une connexion directe de machine à machine.

L'autre partie délicate est l'adressage IP. Il vaut mieux illustrer cela. Voici mon petit script de configuration. Encore une fois, enp9s0 est le port Ethernet de l'ordinateur portable et wlp12s0 est le périphérique sans fil de l'ordinateur portable.

#!/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

Le script définit une adresse IP statique pour la carte Ethernet, 172.16.1.1, puis configure NAT en chargeant un module du noyau. Il active le routage IP (sur l'ordinateur portable), puis fait un peu iptablesde magie pour que les paquets soient routés depuis la carte sans fil via Ethernet, et vice versa.

J'ai dhcpdexécuté sur le port Ethernet pour donner des adresses IP parce que c'est ce que veut le Raspberry Pi, mais vous pouvez faire une adresse statique sur votre poste de travail, avec un routage statique, un serveur DNS et un serveur NTP.

Le fichier /etc/dhcpd.enp9s0.confressemble à ceci, juste au cas où vous iriez dans cette voie:

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; }
        }
}

Le choix de l'adresse IP est assez critique. J'ai utilisé 172.16.1.0/24 pour le câble Ethernet sortant de l'ordinateur portable. La carte sans fil de l'ordinateur portable se termine par un 192.161.1.0/24. Vous devez regarder quelle adresse IP possède le sans fil de l'ordinateur portable et choisir un autre sous-réseau pour la carte Ethernet. De plus, vous devez choisir l'un des réseaux "bogon" ou "non routable". Dans mon exemple, 172.16.1.0/24 provient des plages d'adresses IP non routables officielles, tout comme 192.168.1.0/24, et l'adresse 10.0.0.3 l'est dhcpd.enp9s0.confégalement pour un serveur DNS et un serveur NTP. Vous devrez utiliser votre tête pour déterminer ce qui convient à votre configuration.

Bruce Ediger
la source
PS: il est plus facile de demander pardon que d'obtenir la permission. Simplement fais-le.
Bruce Ediger
C'est une excellente réponse. Je vais y travailler. Je vous remercie!
mbiokyle
0

C'est possible? Absolument. Tout ce que vous devez faire est de configurer le transfert ou le routage IP, ou une autre manière (simple) de déplacer des paquets du port Ethernet de l'ordinateur portable vers le WiFi de l'ordinateur portable et vice versa. Est-ce que c'est une bonne idée? Probablement pas - vos administrateurs réseau pourraient être un peu contrariés par vous.

John
la source
0

Par wikipedia, si l'un des ports Ethernet est gigabit, le câble ordinaire fonctionnera, pas besoin de croix, j'ai le gigabit des deux côtés et le câble ordinaire fonctionne.

La question est posée en 2016, donc je suppose que le gestionnaire de réseau fonctionne sur les deux machines Linux, vous pouvez utiliser son interface graphique pour définir les IP, sinon vous avez probablement fait une configuration personnalisée et savez comment configurer ip à partir de l'invite de commande, donc J'omet ces détails.

Après vous être connecté avec un câble, vous obtiendrez des noms d'interfaces réseau dans l'interface graphique relative à Ethernet sur un ordinateur portable et un poste de travail.

En supposant que vous ne vous souciez pas de connecter périodiquement une station de travail (et / ou un ordinateur portable par Ethernet) à d'autres équipements réseau, vous pouvez configurer une adresse IP statique sur les deux pour les interfaces Ethernet.

Définissez le même sous-réseau de votre adresse IP statique que pour le Wi-Fi, par exemple si le Wi-Fi est 192.168.1.0/16, défini sur 192.168.2.1 et 192.168.2.2, le masque de sous-réseau est 255.255.255.0 car seul le dernier `` nombre '' d'IP diffère , DNS sur le poste de travail doit être défini sur la même adresse IP DNS que pour le Wi-Fi sur un ordinateur portable pour pouvoir utiliser DNS (sites ouverts par nom, pas seulement IP) sur le poste de travail.

Vous devez activer le transfert IP sur un ordinateur portable:

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

Comme très probablement votre gestionnaire de réseau sur ordinateur portable considère Ethernet de meilleure qualité que le Wi-Fi, il essaiera de tout lui envoyer par défaut et vous perdrez Internet après avoir configuré Ethernet. Pour revenir à l'utilisation du Wi-Fi, sur un ordinateur portable, vous avez besoin dans la section [ipv4] du fichier relatif à la connexion Ethernet (nom que vous voyez dans l'interface graphique du gestionnaire de réseau pour Ethernet) dans l'emplacement /etc/NetworkManager/ajouter une ligne

never-default=true

(si votre interface graphique a quelque chose comme "Utiliser uniquement pour les ressources sur cette connexion" pour Ethernet - sur le mien, c'est dans la section ip4 des propriétés de connexion, vous pouvez l'utiliser à la place).

Et enfin, en supposant que vos règles de tables IP soient restées par défaut ACCEPTER tout, vos paquets de la station de travail iront sur Internet, mais ne trouveront pas le chemin du retour uniquement vers l'ordinateur portable jusqu'à ce que vous configuriez la règle NAT sur l'ordinateur portable par une seule commande (où eth0 devrait être le nom de votre connexion wi-fi, vous pouvez trouver le nom par sudo ifconfig):

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

Si cela ne fonctionne pas après cela, essayez de redémarrer le gestionnaire de réseau:

sudo service network-manager restart

Vous devriez être prêt.

Alexei Martianov
la source