Întrebare
Există un script generic care partajează Wi-Fi prin Ethernet de la un server Ubuntu la altul (care nu are un card Wi-Fi)? am văzut această întrebare (și acest, și acest) o rezolvă pentru versiunea cu GUI folosind clicuri de mouse și m-am gândit că aș putea preveni reinventarea roții dacă există deja un script echivalent.
Partea server (funcționează CLI)
S-a găsit o versiune redusă a acestui script pe GitHub, combinat cu instrucțiunile de pe acest site a lucrat pe partea de server.
sudo nano /etc/sysctl.conf
Anulați comentariul (se poate termina cu sudo tee
comanda în script):
net.ipv4.ip_forward=1
Salvați cu ctrl+s
, ctrl+x
. Reîncărcați folosind:
sudo sysctl -p /etc/sysctl.conf
Creați următorul script numit share_wifi.sh
:
lan_device="eth0"
online_device="wlan0"
iptables -t nat -A POSTROUTING -o $online_device -j MASQUERADE
iptables -A FORWARD -i $online_device -o $lan_device -m stare --state RELATED,STABLISHED -j ACCEPT
iptables -A FORWARD -i $lan_device -o $online_device -j ACCEPT
Faceți-l rulabil și rulați-l cu:
chmod +x share_wifi.sh
sudo ./share_wifi.sh
Apoi, am stocat adresa IP locală a „serverului” rulând:
numele gazdă -I
Care a returnat ceva de genul 123.145.16.18 415.141.14.15
, am stocat prima adresă IP care a fost returnată.
Partea client (numai pentru GUI)
Cu toate acestea, am setat computerul client manual folosind o GUI în loc de CLI. Mai întâi am încercat comenzile CLI, dar acestea au returnat erori:
sudo ip route del default
sudo ip route add default prin <ip of gateway pc>
sudo nano /etc/resolv.conf
Si adaugat: server de nume 8.8.8.8
, l-a salvat cu ctrl+s
, ctrl+x
.
Acest lucru nu a oferit internet dispozitivului, așa că am încercat o soluție manuală/GUI, care a funcționat:
Am dat clic pe simbolul Wi-Fi/LAN din dreapta sus setări cu fir
, a dat clic pe fila: IPv4
, a dat clic pe Metoda IPv4
și în acea secțiune a făcut clic pe Manual
. Următorul în secțiune Adrese
am completat:
Adresa:123.145.16.55
Mască de rețea:255.255.255.0
Gateway: 123.145.16.18
- Notă în
Abordare
Am introdus o adresă IP aleatorie în același
format/interval ca adresa IP locală a serverului. Deci, de exemplu,
serverul avea: 123.145.16.18
si am ales 123.145.16.55
, cred ca eu
am avut noroc acolo că acel IP nu a fost încă preluat de un alt dispozitiv.
- Notă în
Mască de rețea
Am introdus o valoare implicită/standard.
- Notă în
Poarta de acces
Am introdus adresa IP locală a serverului pe care am notat-o mai devreme cu numele gazdă -I
comanda.
Apoi, am dat clic pe aplica, și asta a fost tot, computerul client a fost conectat automat la internet.
Așadar, îmi propun să automatizez ultimul pas, în mod ideal prin detectarea automată a computerului client prin ssh, autentificarea și rularea unui script pe el de pe computerul gazdă, care practic configurează acea conexiune manuală la gazdă. În caz contrar, folosind două scripturi separate, unul pentru gazdă, altul pentru client.