Ako pristupovať k domácemu Raspberry Pi bez verejnej IP adresy
Už dlho vo svojej domácej sieti používam Raspberry Pi, ktoré u mňa doma plní viacero funkcií. Niekedy by sa mi však zišiel prístup k tomuto Raspberry Pi aj z vonku, napríklad na cestách alebo z práce.
Ak má vaše domáce internetové pripojenie verejnú IP adresu, je to relatívne jednoduché, stačí pár nastavení v routeri. Bez verejnej IP adresy je to však zložitejšie.
Ako nejednoduchšie riešenie, ktoré nevyžaduje verejnú IP adresu, sa mi osvedčil Tailscale.
Tailscale
Tailscale je služba, ktorá veľmi jednoducho vytvorí sieť medzi vašimi zariadeniami. Na bezpečné pripojenie sa používa Wireguard a najväčšou výhodou je skoro nulová konfigurácia.
Na všetky zariadenia jednoducho nainštalujete Tailscale klienta, prihlásite sa do svojho účtu a hotovo. Všetky pripojené zariadenia môžu medzi sebou komunikovať aj bez verejnej IP adresy.
Inštalácia
Instalácia Tailscale na Raspberry Pi je relatívne jednoduchá, vyžaduje však pridanie Tailscale repozitára
sudo apt-get install apt-transport-https
curl -fsSL https://pkgs.tailscale.com/stable/raspbian/buster.gpg | sudo apt-key add -
curl -fsSL https://pkgs.tailscale.com/stable/raspbian/buster.list | sudo tee /etc/apt/sources.list.d/tailscale.list
sudo apt-get update
sudo apt-get install tailscale
Spustenie Tailscale klienta potom vykonáte príkazom
sudo tailscale up
a prihlásite sa.
Pre Windows, macOS, Android a iOS existujú grafické aplikácie, ktoré stačí len jednoducho nainštalovať a prihlásiť sa.
Použitie
Po prihlásení a pripojení v aplikácií uvidíte zoznam vašich zariadení a ich IP adresy.
Takže napríklad na počítači uvidíte v zozname zariadení svoje Raspberry Pi, skopírujete si jeho IP adresu a môžete ju použiť na ssh
alebo smb
rovnako ako na domácej lokálnej sieti.
Presmerovanie celého trafficu
V základom nastavení môžete pomocou Tailscale pristupovať k vašim pripojením zariadeniam, zvyšný internetový traffic putuje klasicky cez vášho poskytovateľa pripojenia.
Tailscale však ponúka aj možnosť nastaviť nejaké zariadenie, napríklad domáce Raspberry Pi, ako tzv. exit node a smerovať traffic ostatných zariadení cez tento exit node. Týmto spôsobom si môžete jednoducho vytvoriť vlastnú VPN.
Raspberry Pi označíte ako exit node príkazom
sudo tailscale up --advertise-exit-node
Pre správne fungovanie je typicky ešte nutné nastaviť IP forwarding
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
Pri pripojení si potom na každom zariadení vyberiete, či chcete alebo nechcete svoj traffic smerovať cez určený exit node.