Segnale Wi-Fi "Pipe" tramite cavo Ethernet


8

Attualmente le porte Ethernet nell'edificio in cui lavoro sono inattive, ma il Wi-Fi funziona. Ho un laptop abilitato Wi-Fi ( Ubuntu 14.04 LTS (Trusty Tahr)) e un worktaion non abilitato Wi-Fi ( Debian 8 (Jessie)) con solo una presa Ethernet.

È possibile collegare i due tramite un cavo Ethernet ed essere in grado di ottenere la connettività di rete sulla workstation?


Dubbio, ma puoi collegare il cavo Ethernet direttamente al tuo router ..
ryekayo,

Vedi questa domanda su askubuntu - askubuntu.com/questions/359856/… . Questo presuppone che almeno una delle porte di rete sia auto-sensing (o che tu abbia un cavo crossover).
Andy C,

Risposte:


9

Sì, puoi farlo, e non è nemmeno così difficile. Ho un laptop con una scheda wireless e una porta Ethernet. Ho collegato un RapberryPi con Arch Linux, tramite un cavo Ethernet "crossover". Questa è una cosa speciale di cui potresti aver bisogno: non tutte le schede Ethernet possono effettuare una connessione diretta da macchina a macchina.

L'altra parte difficile è l'indirizzamento IP. È meglio illustrarlo. Ecco la mia piccola sceneggiatura. Ancora una volta, enp9s0 è la porta Ethernet del laptop e wlp12s0 è il dispositivo wireless del laptop.

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

Lo script imposta un indirizzo IP statico per la scheda Ethernet, 172.16.1.1, quindi imposta NAT caricando un modulo kernel. Attiva il routing IP (sul laptop), quindi fa un po ' iptablesdi magia per far instradare i pacchetti dalla scheda wireless da Ethernet, e viceversa.

Sono in dhcpdesecuzione sulla porta Ethernet per fornire indirizzi IP perché è quello che Raspberry Pi vuole, ma potresti fare un indirizzo statico sulla tua workstation, insieme a routing statico, server DNS e server NTP.

Il file /etc/dhcpd.enp9s0.confè simile al seguente, nel caso in cui segui questa strada:

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

La scelta dell'indirizzo IP è piuttosto critica. Ho usato 172.16.1.0/24 per il cavo Ethernet che esce dal laptop. La scheda wireless sul laptop finisce con un 192.161.1.0/24. È necessario esaminare l'indirizzo IP della rete wireless del laptop e scegliere un'altra sottorete per la scheda Ethernet. Inoltre, è necessario scegliere una delle reti "bogon" o "non instradabili". Nel mio esempio, 172.16.1.0/24 proviene dagli intervalli di indirizzi IP non instradabili ufficiali, come 192.168.1.0/24, così come l'indirizzo 10.0.0.3 viene fornito dhcpd.enp9s0.confper un server DNS e un server NTP. Dovrai usare la testa per capire cosa è appropriato per la tua configurazione.


PS: è più facile chiedere perdono che ottenere l'autorizzazione. Fallo e basta.
Bruce Ediger,

Questa è un'ottima risposta Ci lavorerò sopra. Grazie!
mbiokyle,

0

È possibile? Assolutamente. Tutto quello che devi fare è configurare l'inoltro IP, o il routing, o qualche altro (semplice) modo per spostare i pacchetti dalla porta Ethernet sul laptop al WiFi sul laptop e viceversa. È una buona idea? Probabilmente no - gli amministratori di rete potrebbero essere un po 'arrabbiati con te.


0

Per Wikipedia se una delle porte Ethernet è gigabit, il cavo normale funzionerà, non è necessario incrociarlo, ho gigabit su entrambi i lati e il normale cavo funziona.

La domanda viene posta nel 2016, quindi presumo che il gestore della rete sia in esecuzione su entrambe le macchine Linux, è possibile utilizzare la sua GUI per impostare gli ip-s, se non è probabile che tu abbia effettuato un'impostazione personalizzata e sappia come impostare l'ip dal prompt dei comandi, quindi Ometto quei dettagli.

Dopo esserti collegato con il cavo, otterrai i nomi delle interfacce di rete nella GUI relativa a Ethernet su laptop e workstation.

Supponendo che non ti interessi di collegare periodicamente workstation (e / o laptop tramite Ethernet) ad altre apparecchiature di rete, puoi impostare un IP statico su entrambe le interfacce Ethernet.

Imposta la tua sottorete dell'IP statico come per la rete Wi-Fi, ad esempio se la rete Wi-Fi è 192.168.1.0/16, imposta su 192.168.2.1 e 192.168.2.2, la maschera di sottorete è 255.255.255.0 poiché solo l'ultimo 'numero' di IP differisce , Il DNS sulla workstation deve essere impostato sullo stesso IP DNS del Wi-Fi sul laptop per poter utilizzare il DNS (siti aperti per nome, non solo IP) sulla workstation.

È necessario abilitare l'inoltro IP su laptop:

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

Come molto probabilmente il tuo gestore di rete su laptop considera Ethernet di qualità migliore rispetto al Wi-Fi, proverà a inviargli tutto per impostazione predefinita e perderai Internet dopo aver configurato Ethernet. Per tornare a utilizzare il Wi-Fi, sul laptop è necessario nella sezione [ipv4] del file relativo alla connessione Ethernet (nome che vedi nella GUI di Network Manager per Ethernet) nella posizione /etc/NetworkManager/aggiungi riga

never-default=true

(se la tua GUI ha qualcosa di simile alla casella di controllo "Usa solo per risorse su questa connessione" per Ethernet - nella mia è nella sezione ip4 delle proprietà della connessione, puoi invece usarla).

E infine, supponendo che le regole delle tabelle IP siano rimaste di default ACCETTA tutto, i pacchetti dalla workstation andranno su Internet, ma non troveranno il modo di viaggiare solo verso il laptop fino a quando non imposti la regola NAT sul laptop con un comando (dove eth0 dovrebbe essere il nome della tua connessione wi-fi, puoi scoprire il nome tramite sudo ifconfig):

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

Se non funziona dopo, prova a riavviare il gestore di rete:

sudo service network-manager restart

Dovresti essere pronto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.