WSL2 (Ubuntu Windows-on)
Windows Subsystem for Linux 2 - valódi Linux kernel Windows alatt. rsync, ansible, natív OpenSSH, dev workflow HelloHost szerverekhez.
A Windows Subsystem for Linux 2 a Microsoft hivatalos megoldása Windows 10/11-en futó Linux kernelre. WSL2 egy könnyűsúlyú virtuális gép, amiben teljes Ubuntu (vagy Debian, Alma, Fedora stb.) fut — saját fájlrendszerrel, saját csomagkezelővel, saját OpenSSH-val.
Ha a napi munkád magasabb szintű Unix eszközökre (rsync, ansible, make, jq, perl-script), vagy bash scriptekre támaszkodik, és nem akarsz dual-boot / VM / Mac-re váltani, WSL2 a legjobb Windows-on elérhető dev environment.
Miért WSL2?
Szekció neve “Miért WSL2?”Előnyei a natív Windows OpenSSH-hoz képest (amiből semmit nem vitatunk el):
- rsync — natívan, nagy könyvtárak szinkronizálásához (nginx konfig deploy, backup mirror)
- ssh-copy-id — egy parancs a publikus kulcs feltöltéséhez (Windows OpenSSH-ból hiányzik)
- ansible — infrastruktúra-as-code eszközökhöz
- make, cmake, gcc — build chain ha natív binárisokat build-elsz Linux-ra
- Bash scriptek — változtatás nélkül futnak; Windows-on a CRLF és path-szeparátor gondokat megoldja
- systemd (WSL2 1.0+) — szolgáltatásokat tud futtatni lokálisan
- docker-compose — docker bevonható (Docker Desktop-tól)
Telepítés
Szekció neve “Telepítés”Windows 11 vagy Windows 10 2004+
Szekció neve “Windows 11 vagy Windows 10 2004+”Rendszergazda PowerShell:
wsl --installAlapértelmezetten Ubuntu-t telepít. Újraindítás után elindul az Ubuntu telepítő, kér egy user nevet és jelszót (ez a Linux user, nem a Windows user).
Ellenőrzés
Szekció neve “Ellenőrzés”wsl --version# WSL version: 2.x.x# Kernel version: 5.15.x# WSLg version: 1.x.xMinden Ubuntu futtatása:
wslElső beállítás Ubuntu-n
Szekció neve “Első beállítás Ubuntu-n”A WSL Ubuntu első indítása utáni teendők:
sudo apt updatesudo apt upgrade -y
# Alapvető eszközöksudo apt install -y git curl wget unzip rsync jq openssh-client htop
# Ha ansible kellsudo apt install -y ansible
# Ha Node.jscurl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -sudo apt install -y nodejsSSH kulcs WSL-en
Szekció neve “SSH kulcs WSL-en”Két opció:
1. Saját kulcs a WSL-en (ajánlott)
Szekció neve “1. Saját kulcs a WSL-en (ajánlott)”ssh-keygen -t ed25519 -C "te@wsl"Majd a publikus kulcsot (~/.ssh/id_ed25519.pub) feltöltöd a HelloHost-ra ugyanúgy, mint bármely Linux-on. Részletek: SSH kulcs generálás.
2. Windows kulcs megosztása WSL-lel
Szekció neve “2. Windows kulcs megosztása WSL-lel”Ha már van Windows-on egy kulcsod és nem akarsz másikat, symlink-eld a WSL ~/.ssh-ot a Windows-éba:
# WSL bashrm -rf ~/.sshln -s /mnt/c/Users/<WindowsUser>/.ssh ~/.sshFigyelem: a jogosultságokat manuálisan kell beállítani, mert Windows fájlrendszer más perm model-t használ:
chmod 700 ~/.sshchmod 600 ~/.ssh/id_ed25519chmod 644 ~/.ssh/id_ed25519.pubchmod 600 ~/.ssh/config 2>/dev/null || trueHa SSH “bad permissions” hibát kap, valamiért a Windows mount perm-et nem respektálja a WSL, akkor inkább a külön WSL-es kulcs (1. opció).
Munkafolyamat példák
Szekció neve “Munkafolyamat példák”rsync deploy
Szekció neve “rsync deploy”Klasszikus Linux use case — lokális mappa szinkronizálása a szerverre:
rsync -avz --delete \ --exclude=node_modules \ --exclude=.git \ ./mytheme/ \ wphu:/home/voytachadev-hellodevs-dev/webapps/voytachadev.hellodevs.dev/wp-content/themes/mytheme/A wphu itt a ~/.ssh/config-ban definiált alias.
Ansible playbook több szerverre
Szekció neve “Ansible playbook több szerverre”Ha Ansible inventory-t használsz több HelloHost szerverre:
all: hosts: wphu: ansible_host: 2a01-4f9-5a-4651--108.ssh.hellohost.io ansible_port: 10009 ansible_user: root hellohost-103: ansible_host: 2a01-4f9-5a-4651--103.ssh.hellohost.io ansible_port: 10005 ansible_user: rootansible -i inventory.yml all -m pingansible-playbook -i inventory.yml update-wp-salts.ymlWindows-natív PowerShell-ből Ansible nem megy — WSL-ben viszont natívan fut.
Bash script ütemezéshez
Szekció neve “Bash script ütemezéshez”cat > ~/bin/backup-wphu.sh <<'EOF'#!/bin/bashset -euo pipefailDATE=$(date +%Y%m%d-%H%M%S)ssh wphu "cd webapps/voytachadev.hellodevs.dev && wp db export - --allow-root | gzip" \ > ~/backups/wphu-${DATE}.sql.gzecho "Backup saved: wphu-${DATE}.sql.gz"EOFchmod +x ~/bin/backup-wphu.shFuttatás: ~/bin/backup-wphu.sh. Cron-nal ütemezés (ha WSL-ben engedélyezed a systemd cron-t).
Fájlrendszer kereszt-hozzáférés
Szekció neve “Fájlrendszer kereszt-hozzáférés”WSL fájlok Windows-ról
Szekció neve “WSL fájlok Windows-ról”A WSL home-jához Windows-ból a \\wsl.localhost\Ubuntu\home\<username>\ UNC path-on jutsz. Pl. VS Code-ban a File → Open Folder → \\wsl.localhost\Ubuntu\home\te\projects\mytheme.
A gyorsabb elérés: Windows Explorer navigációs sávban írd be: \\wsl.localhost\Ubuntu\home\ — be is pin-elhető Quick Access-be.
Windows fájlok WSL-ből
Szekció neve “Windows fájlok WSL-ből”A Windows meghajtókat a /mnt/ alá csatolja a WSL:
cd /mnt/c/Users/te/DesktoplsPerformance megjegyzés: a /mnt/c/ FS access SZIGNIFIKÁNSAN lassabb mint a natív /home/te/. Ha nagy projekten dolgozol, tartsd a WSL home-ban, ne a Windows oldalon.
VS Code + WSL
Szekció neve “VS Code + WSL”A VS Code-nak van kifejezett WSL extension-je (ms-vscode-remote.remote-wsl), ami a WSL-en belülről indítja a VS Code Server-t. Így a lokális VS Code ablak szerkeszti a WSL-en belüli fájlokat natív Linux sebességgel.
- VS Code → Extensions → keresd:
WSL - Microsoft hivatalos → Install
- WSL Ubuntu terminálban:
cd ~/projects/mytheme && code . - VS Code új ablakban nyit, bal alsóban
WSL: Ubuntustátusz
A WSL-es VS Code-ból természetesen Remote-SSH-val HelloHost-ra is mehetsz, ha úgy akarod — de egyszerűbb WSL Ubuntu terminálból ssh wphu-t futtatni.
Docker Desktop + WSL2
Szekció neve “Docker Desktop + WSL2”Ha Docker Desktop-ot telepítesz, default backend a WSL2. Ez azt jelenti, hogy a docker CLI a WSL Ubuntu-ból natívan működik:
docker psdocker-compose up -dHa a HelloHost szerveren is Docker-t üzemeltetsz, lokálisan WSL2 + Docker Desktop kombó a leggördülékenyebb.
WSL konfiguráció
Szekció neve “WSL konfiguráció”.wslconfig — globális WSL beállítás
Szekció neve “.wslconfig — globális WSL beállítás”C:\Users\<WindowsUser>\.wslconfig:
[wsl2]memory=8GBprocessors=4swap=2GBlocalhostForwarding=trueA WSL VM-hez allokált erőforrások. Default: a Windows gép RAM-jának 50%-a. Dev-re 4-8 GB bőven elég.
/etc/wsl.conf — distro-szintű beállítás
Szekció neve “/etc/wsl.conf — distro-szintű beállítás”Ubuntu-n belül /etc/wsl.conf:
[boot]systemd=true
[network]generateHosts = false
[interop]enabled = trueappendWindowsPath = truesystemd=true engedi a modern cron/systemd-based szolgáltatásokat.
WSL parancsok cheatsheet
Szekció neve “WSL parancsok cheatsheet”wsl # alapértelmezett distro indításawsl -d Ubuntu # specifikus distrowsl --list --verbose # futó distrókwsl --shutdown # MINDEN distro leállítása (gyors restart után)wsl --terminate Ubuntu # csak egy distro leállításawsl --update # WSL kernel frissítéswsl --export Ubuntu backup.tar # teljes distro mentésewsl --import Ubuntu2 C:\wsl\ubuntu2 backup.tar # visszaimportálás új névenwsl --unregister Ubuntu2 # törlésHibák
Szekció neve “Hibák”“WslRegisterDistribution failed with error: 0x80370102”
Szekció neve ““WslRegisterDistribution failed with error: 0x80370102””Virtualizáció nincs engedélyezve a BIOS-ban. Boot → BIOS/UEFI → Intel VT-x / AMD-V engedélyezése.
Internet nem megy WSL-ből
Szekció neve “Internet nem megy WSL-ből”Valószínűleg VPN vagy AV interferencia. Próbáld:
wsl --shutdownGet-NetAdapter | Where-Object { $_.Name -like "*WSL*" } | Restart-NetAdapterwslHosszabb távon: Settings → Windows Subsystem for Linux oldal → kapcsolj a Mirrored networking-re (Windows 11).
DNS nem működik
Szekció neve “DNS nem működik”/etc/resolv.conf sérül WSL reboot után. Fixálás:
sudo bash -c 'cat > /etc/wsl.conf <<EOF[network]generateResolvConf = falseEOF'sudo rm /etc/resolv.confecho "nameserver 1.1.1.1" | sudo tee /etc/resolv.confsudo chattr +i /etc/resolv.conf # lefagyasztja a fájlt, WSL nem írja felülNagy disk usage (ext4.vhdx)
Szekció neve “Nagy disk usage (ext4.vhdx)”A WSL virtual disk ext4.vhdx nő fájlokkal, de nem zsugorodik auto. Ha nagyon felduzzadt:
wsl --shutdown# Majd futtasd a Hyper-V Optimize-VHD-t (csak Pro/Enterprise-en)# Vagy WSL restart + disk trimwsl --manage Ubuntu --set-sparse trueHome editions-ön egyszerűbb: export + unregister + import új helyre.
Mikor ne ezt használd?
Szekció neve “Mikor ne ezt használd?”- Csak gyors SSH és nem akarsz egy 4 GB-os Linuxot → Windows Terminal + OpenSSH
- Kódot szerkesztesz és remote minden → VS Code + Remote - SSH
- GUI SFTP kliens kell → WinSCP
- Csak sok session manager → MobaXterm
Tipp: kombinálj
Szekció neve “Tipp: kombinálj”A legjobb workflow gyakran a kombinált: WSL Ubuntu a fő munkához, Windows Terminal-ban tab-ként futtatod, és szerveroldalon dolgozol SSH / VS Code Remote-SSH kombóval. Minden eszköz a helyén.