Jak v Ubuntu připojit do internetu počítač přes druhý počítač

Nadpis je tak trochu podivný, ale v celku asi výstižný. Mám totiž jeden malý server, který má nainstalovaný Ubuntu Server a který není přímo připojený do internetu, tedy je, ale přes druhý počítač, který má připojení realizované přes WiFi hotspot v mobilu. Jelikož po instalaci Ubuntu Server neumí zprovoznit WiFi USB dongle, který mám pro spojení se světem v serveru, musel jsem realizovat připojení tak, že jsem oba počítače propojit LAN kabelem přes switch a na PC připojeném do i-netu nastavit vše potřebné pro přeposílání paketů. No a protože si za nějakou dobu už asi určitě nevzpomenu jak jsem to udělal, tak zde je návod:

  • Po propojení počítačů kabelem je potřeba na obou síťových kartách nastavit IP z rozsahu, který je mimo IP, které mi přidělil DHCP WiFi hotspotu. Přitom není potřeba nastavovat nic jiného než IP adresy (nastavení IP v Ubuntu Server), na serveru pak i gateway a nameserver. GW je IP adresa protistrany a DNS to samé, plus pro jistotu přidávám googlí IP DNS 8.8.8.8.
  • Na PC připojením do inetu je nutné povolit packet forwarding a to následovně. Stačí vyeditovat soubor /etc/sysctl.conf a povolit net.ipv4.ip_forward=1. Změny je potřeba načít příkazem sysctl -p.
  • Dále je potřeba nastavit ip tables, aby akceptovali přeposlané pakety a nastavily maškarádu. Pravidla viz. níže. No a to je vše. Pravidla fungují okamžitě, jen je potřeba nezapomenout je uložit, jinak po restartu budou vymazaná ( iptables-save > /etc/network/iptables.rules   [iptables-restore /etc/network/iptables.rules pak pravidla načte] ).

 

#pravidla pro iptables. enp0s25 je síťová karta pro spojení se serverem a wlp4s0 je WiFi.
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -i enp0s25 -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o wlp4s0 -j MASQUERADE
sudo iptables -A FORWARD -i wlp4s0 -o enp0s25 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i enp0s25 -o wlp4s0 -j ACCEPT