Sdílení internetového připojení
Univerzální postup s využitím CLI nástrojů
Nastavení serveru
Budeme potřebovat dvě síťové karty (jednu pro připojení k internetu, druhou pro připojení k vlastní síti), nebo jednu síťovou kartu a rozhraní PPP (které zprostředkovává připojení k internetu). Jedna síťová karta je připojena k vaší vlastní síti, nazveme ji eth0. Druhá karta, či PPP rozhraní, které je připojeno k internetu nazveme eth1 či ppp0. Předpoklad pro úspěšné sdílení je, že počítač má v síti přidělenou vlastní ipadresu. Což lze ověřit pomocí příkazu ip address show, či pomocí network manageru vpravo nahoře na liště.
sudo iptables -A FORWARD -i eth1 -o eth0 -s 192.168.0.0/24 -m state --state NEW -j ACCEPT sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT sudo iptables -A POSTROUTING -t nat -j MASQUERADE
- Povolíme přeposílání paketů v systému
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Nastavení klienta
- Zastavíme používání všech síťových rozhraní
sudo /etc/init.d/networking stop
- Nastavíme IP adresu klienta v stejném rozsahu jako má server (například 192.168.0.xxx)
sudo ip address add <ip> dev eth<x>
eth<x>
nahradíme označením rozhraní na kterém se síť nachází, <ip>
nahradíme adresou, např 192.168.0.2
- Nastavíme směrování:
sudo route add default gw <ip>
kde <ip>
je IP adresa serveru, například 192.168.0.1
- Dodáme bránu pro nastavení DNS
gksudo gedit /etc/resolv.conf
Přidáme na konec souboru:
nameserver <ip>
<ip>
nahradíme IP adresou serveru, například 192.168.0.1
Aktivace sdílení při každém startu počítače
Chcete-li mít zapnuté sdílení internetu do sítě po každém startu PC, je nutné zadávat výše zmíněné příkazy pokaždé když spustíte Váš počítač. Nejsnažší cestou automatizace tohoto procesu je zapsat požadavek do souboru rc.local .
- Spustíme oblíbený editor a otevřeme soubor:
gksudo gedit /etc/rc.local
- Přidáme výše zmíněné řádky do souboru před řádek
exit 0
:
# # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. ##připojení k internetu pppd & ##sdílení připojení iptables -A FORWARD -i eth1 -o eth0 -s 192.168.0.0/24 -m state --state NEW -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A POSTROUTING -t nat -j MASQUERADE sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward" exit 0
—- Chcete-li poskytovat připojení na počítač s operačním systémem Windows, nastavte IP adresu serveru (192.168.0.1) ve Windows ve správci sítí v položce Výchozí Brána
DHCP server
Velmi pěkný návod jak vše nastavit, sice v AJ, ale se základní znalostí to nastaví každý. zde
GUI NetworkManageru
Nastavení serveru
Novější verze Network Manageru (0.7+, tzn. *buntu 8.10+, případně i 8.04 s tímto repozitářem) dovedou totéž zařídit automaticky a to včetně DHCP serveru. Postup je následující:
- vytvořte nový profil u rozhraní, které chcete použít ke sdílení připojení k internetu ostatním (buď drátěnou nebo bezdrátovou síťovku)
- v nastavení IPv4 přepněte na „sdíleno ostatním počítačům“ a pokud nevíte co děláte, všechno ostatní klidně ignorujte
- potvrďte nastavení nového síťového profilu a zavřete dialog s nastavením Network Manageru
- použijte nově vytvořený profil na dané rozhraní
Pokud profil na daném rozhraní drží, aniž by se během chvíle zase odpojil, je vše v pořádku; pokud ne, zkuste přeinstalovat balíček dnsmasq-base
a případně aktualizovat Network Manager ze zmíněného repozitáře.
Nastavení klienta
Stačí použít libovolný síťový profil, který dané síťové rozhraní konfiguruje automaticky pomocí DHCP.
Aktivace sdílení při každém startu počítače
Stačí kromě zmíněného nastavení IPv4 také povolit automatické použití vytvořeného síťového profilu na dané síťové rozhraní (zatrhněte „připojovat automaticky“) a případně nastavit profil jako globální (zatrhněte „pro všechny uživatele“), aby se připojení sdílelo i když není na „serveru“ nikdo přihlášen.
DHCP server
Nemusíte nic řešit, tohle si Network Manager zařídí sám pomocí dnsmasq z balíčku dnsmasq-base
, který je součástí základní instalace.