GNU/Linux >> Znalost Linux >  >> Linux

Použití Tailscale ve Windows ke snazší síti s WSL2 a Visual Studio Code

Tailscale je síť „VPN“ s nulovou konfigurací, která běží na jiných sítích a efektivně „zplošťuje“ sítě a umožňuje uživatelům/službám snadněji (a bezpečně) spolu komunikovat.

Například jsem obsáhle psal o tom, jak SSH do WSL2 ve Windows 10 z jiného počítače a všimnete si, že existuje nejen spousta kroků, ale existuje více než jeden způsob, jak to udělat !

Mluvil jsem o tom pro SSH, ale pokud jste aktivním vývojářem a chcete sdílet služby a weby, na kterých pracujete, se svými spolupracovníky a spolupracovníky, je potřeba řešit netriviální množství nastavení, správy a údržby. s.

Řečeno jinak:„Nebylo by jednodušší, kdybychom byli všichni ve stejné síti a podsíti?“

WSL1 sdílí svůj síťový zásobník s Windows 10, takže „stroj“ je stejný. Ať už je YourMachineName cokoliv, provozování služby na 5000 je stejné, pokud se jedná o službu Windows nebo aplikaci běžící v Linuxu pod WSL1. Ve WSL2 je však vaše prostředí Linuxu „za“ hostitelem Windows. Zatímco WSL2 usnadňuje přístup k http://localhost:5000 transparentním přesměrováním portů, váš počítač WSL2 Linux ve skutečnosti není rovnocenným partnerem ve stejné síti jako vaše ostatní zařízení.

Použití síťového systému s nulovou konfigurací, jako je Tailscale (a podobné služby), vyrovnává podmínky – a síť. Vzhledem k některým vlastnostem WSL2 existuje několik problémů. Zde je návod, jak to funguje pro mě.

Tailscale na WSL2

Získejte WSL

  • Nainstalujte WSL2 – postupujte podle pokynů zde
  • Nainstalovat distribuci Linuxu – použil jsem Ubuntu 20.04
    • projděte procesem, vytvořte uživatele atd.
  • Nainstalujte si Windows Terminal – je mnohem lepší a opravdu vám zlepší práci s příkazovým řádkem

Získejte Tailscale

  • Instalovat Tailscale – použil jsem pokyny Ubuntu 20.04

Upravit WSL2

  • Dnes se mi nedaří spustit Tailscale na WSL2 s instalací ipv6, takže ji deaktivuji.
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

Spustit Tailscale

Zde spustíte démona. Na WSL2 (zatím) není systemd, ale pokud používáte verzi přes Windows 10 sestavení 21286, existují způsoby, jak spustit příkazy při spuštění v subsystému Windows pro Linux. Osobně to dělám v bash skriptu.

sudo tailscaled 

WSL nemá způsob, jak provést interaktivní přihlašovací proces, takže chcete vytvořit klíč pro předběžnou autentizaci pro ověření jednoho počítače. Pak použijte tento klíč, jako to dělám zde, k vyvolání Tailscale v rámci WSL:

tailscale up --authkey=tskey-9e85d94f237c54253cf0

Rád to nechám otevřené na jiné kartě Terminál nebo v podokně, abych mohl sledovat protokoly. Je to zajímavé a podrobné!

Na panelu správy strojů Tailscale můžete vidět všechny stroje ve vaší nové síti Tailscale. Všimněte si, že mám scottha-proto uveden jako Windows a scottha-proto-1 jako Linux. První je můj hostitelský počítač a druhý (-1) je moje instance Linux WSL2! Nyní jsou na ploché síti!

Také se mi podařilo pozvat uživatele mimo moji síť pomocí nové (již brzy) funkce sdílení uzlů Tailscale. Můj přítel Glenn NENÍ v mé organizaci, ale stejně jako já používám OneDrive nebo DropBox k vytvoření odkazu pro přístup k JEDNÉ entitě, ale ne CELÉMU systému, mohu udělat totéž zde.

Nyní mohu nechat Glenna spustit službu běžící ve WSL2 z jeho domu.

Vytvořte službu a připojte ji k síti Tailscale

Nainstaloval jsem .NET 5 do svého systému WSL2 Ubuntu, vytvořil jsem složku a spustil dotnet new web vytvořit mikroslužbu Hello World.

Když spustím službu - .NET nebo Node, nebo cokoli jiného - je nezbytné, aby služba poslouchala v síti Tailscale. Váš systém Linux ve WSL2 je „multi-homed“ a je připojen k více sítím. Ve výchozím nastavení mé vývojářské systémy naslouchají pouze na localhost.

Pro .NET existuje několik způsobů, jak poslouchat ve všech sítích (včetně Tailscale), ale já jsem použil tento:

dotnet run --urls http://*:5100;https://*:5101

Takže tady jsem se připojil k Tailscale IP, která je spojena s mou instancí WSL2 a narazil jsem na svou službu Linux běžící v:

Jak daleko to můžeme zajít? No, protože jsem na síti Tailscale a Glenn se k ní připojil, celá síť je plochá, takže zásah do mé služby je triviální! Tady jsem v Teams s mojí plochou dole a Glennovou plochou nahoře.

Chladný. Jak daleko můžeme zajít?

Přidejte kód Visual Studio a rozšíření SSH pro vzdálený vývoj

Dobře, tak plochá zabezpečená síť, bez omezení! Mohu nastavit, aby moje instance WSL2 byla považována za vzdálený vývojový systém pro Glenna? Jistě proč ne?

Aby bylo jasno - to jen mluvím a experimentuji, ale něco tu je. Může to být také multiplatformní, Mac na Windows až WSL2 atd. Tuto sekci můžete také určitě použít k vytvoření virtuálního počítače v jakémkoli cloudovém hostiteli nebo hostiteli, instalaci Tailscale, přestat se starat o přesměrování portů a použít jej jako vývojový box. Ano, můžete použít WSL local, ale to je zábava a lze to využít jinými skvělými způsoby.

Na svém počítači WSL2 spustím službu ssh. Mohl bych sdílet veřejné klíče a provádět správné přihlášení založené na klíčích, ale za tímto účelem to udělám pomocí uživatelského jména.

Upravím /etc/ssh/sshd_config a nastavte port, ListenAddress a PasswordAuthentication na Yes. Zde je příklad:

Port 22
#AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::

PasswordAuthentication yes

Udělal jsem z glenna místního super uživatele právě v mé instanci WSL2:

sudo adduser glenn
usermoid -aG sudo glenn

Glenn poté nainstaluje balíček VS Code Remote Development Pack a připojí se pomocí Remote přes SSH k mé Tailscale IP. Zde můžete vidět, že VS Code z Glennova stroje ve skutečnosti instaluje VS Code Server a vzdálení vývojáři a Glenn a kód s VS Code jsou architektonicky rozděleny na polovinu s klientem na jeho počítači Windows a serverem na mé instanci WSL2.

Všimněte si, že v levém dolním rohu můžete vidět, že jeho VS kód je připojen k mé IP instanci WSL2 Linuxu!

Co si o tom myslíte?

Můžete porovnat Tailscale s věcmi, jako je NGrok, který nabízí vývojářsky orientovaný tunelovač localhost, ale jsou zde některé důležité rozdíly. Proveďte svůj výzkum! Nemám s touto společností žádný jiný vztah, než že jsem jejím fanouškem.

Sponzor: Sponzorem tohoto týdne jsem...já! Tento blog a můj podcast jsou dílem lásky již 19 let. Vaše sponzorství platí mé účty za hosting za obojí A umožňuje mi nakupovat gadgety ke kontrole A občasné taco. Přidej se ke mně!


Linux
  1. Jak nainstalovat rozšíření kódu Visual Studio

  2. Jak nainstalovat kód Visual Studio na CentOS 7?

  3. Jak používat Qt v kódu Visual Studio?

  1. Zprovozněte a zprovozněte podman na Windows pomocí Linuxu

  2. Začínáme s Visual Studio Code (VSC) v systému Linux

  3. Nainstalujte kód Microsoft Visual Studio v systému Linux

  1. Instalace kódu Microsoft Visual Studio v systému Linux

  2. Snadno sdílejte soubory mezi Linuxem, Windows a Mac pomocí NitroShare

  3. 3 způsoby instalace kódu Visual Studio v Ubuntu pomocí terminálu