{"id":72,"date":"2026-06-13T16:57:01","date_gmt":"2026-06-13T16:57:01","guid":{"rendered":"https:\/\/shattered.io\/fi\/2026\/06\/13\/wireguard-vpn-palvelin-linux\/"},"modified":"2026-06-13T20:40:42","modified_gmt":"2026-06-13T20:40:42","slug":"wireguard-vpn-palvelin-linux","status":"publish","type":"post","link":"https:\/\/shattered.io\/fi\/2026\/06\/13\/wireguard-vpn-palvelin-linux\/","title":{"rendered":"WireGuard VPN Linuxille: oma palvelin 12 vaiheessa [2026]"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">WireGuard on noussut muutamassa vuodessa Linuxin oletusvalinnaksi VPN-yhteyksille, ja syy on yksinkertainen: se on nopeampi, kevyempi ja helpompi pystytt\u00e4\u00e4 kuin vanhat vaihtoehdot. T\u00e4m\u00e4 opas vie sinut tyhj\u00e4st\u00e4 toimivaan WireGuard-palvelimeen 12 vaiheessa. Aikaa kuluu noin 30 minuuttia. Lopuksi sinulla on oma salattu tunneli, jonka l\u00e4pi kannettava, puhelin ja muut laitteet p\u00e4\u00e4sev\u00e4t verkkoon turvallisesti, esimerkiksi avoimesta kahvila-WiFist\u00e4 tai ulkomailta k\u00e4sin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">K\u00e4ymme l\u00e4pi jokaisen komennon, palvelimen ja asiakkaan konfiguraatiot, palomuuris\u00e4\u00e4nn\u00f6t sek\u00e4 yleisimm\u00e4t virheet ja niiden korjaukset. Esimerkit on testattu Ubuntu 24.04 LTS -palvelimella, mutta samat periaatteet toimivat my\u00f6s Debianissa ja muissa Linux-jakeluissa. P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4: 13. kes\u00e4kuuta 2026.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"miksi-wireguard-nopeus-kryptografia-ja-4-000-rivia-koodia\">Miksi WireGuard? Nopeus, kryptografia ja 4 000 rivi\u00e4 koodia<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WireGuardin loi Jason A. Donenfeld, ja projekti alkoi vuonna 2016. Ratkaiseva hetki tuli 29. maaliskuuta 2020, kun WireGuard sulautettiin Linux-ytimen versioon 5.6. T\u00e4m\u00e4n j\u00e4lkeen sit\u00e4 ei tarvitse asentaa erillisen\u00e4 ydinmoduulina, vaan se on osa ytimen verkkopinoa. K\u00e4yt\u00e4nn\u00f6ss\u00e4 t\u00e4m\u00e4 tarkoittaa pienemp\u00e4\u00e4 viivett\u00e4 ja parempaa suorituskyky\u00e4, koska liikennett\u00e4 ei tarvitse siirt\u00e4\u00e4 k\u00e4ytt\u00e4j\u00e4tilan ja ytimen v\u00e4lill\u00e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Suorituskykyero vanhaan OpenVPN-protokollaan on selv\u00e4. RTINGSin julkaisemassa testiss\u00e4 WireGuard ylsi 353,6 Mbit\/s latausnopeuteen ja 366,0 Mbit\/s l\u00e4hetysnopeuteen 90,1 ms viiveell\u00e4, kun OpenVPN TCP j\u00e4i 44,1 Mbit\/s lataukseen ja 39,2 Mbit\/s l\u00e4hetykseen. Toisessa NordVPN-palvelimilla tehdyss\u00e4 mittauksessa WireGuard saavutti 903 Mbit\/s ja OpenVPN vain 222 Mbit\/s. Useat riippumattomat testit raportoivat WireGuardin olevan tyypillisesti 3\u20134 kertaa nopeampi kuin OpenVPN.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nopeuden lis\u00e4ksi WireGuardin valtti on yksinkertaisuus. Sen Linux-ytimen toteutus on alle 4 000 rivi\u00e4 koodia, kun OpenVPN ja IPsec koostuvat sadoista tuhansista riveist\u00e4. Pienempi koodikanta tarkoittaa pienemp\u00e4\u00e4 hy\u00f6kk\u00e4yspintaa ja helpompaa tarkastusta. Salaus perustuu nykyaikaisiin algoritmeihin: ChaCha20-Poly1305 liikenteen salaukseen, Curve25519 avaintenvaihtoon, BLAKE2s tiivisteisiin, SipHash24 hajautustauluihin ja HKDF avainten johtamiseen. K\u00e4ttely valmistuu noin 1,5 edestakaisessa kierroksessa (RTT), eli yhteys muodostuu l\u00e4hes v\u00e4litt\u00f6m\u00e4sti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WireGuard k\u00e4ytt\u00e4\u00e4 julkisen avaimen kryptografiaa samaan tapaan kuin SSH. Jokaisella laitteella on yksityinen ja julkinen avain. Palvelin tuntee asiakkaiden julkiset avaimet ja asiakkaat palvelimen julkisen avaimen. Mit\u00e4\u00e4n salasanoja, varmenteita tai monimutkaisia PKI-rakenteita ei tarvita. Jos haluat verrata eri VPN-palveluita ennen oman palvelimen pystytt\u00e4mist\u00e4, lue my\u00f6s vertailumme <a href=\"\/fi\/nordvpn-vs-protonvpn-vs-mullvad\/\">NordVPN vs ProtonVPN vs Mullvad<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wireguardin-kayttotapaukset-suomessa-ja-pohjoismaissa\">WireGuardin k\u00e4ytt\u00f6tapaukset Suomessa ja Pohjoismaissa<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Oma WireGuard-palvelin ratkaisee monta arkista ongelmaa. Yleisin on suojautuminen julkisissa verkoissa. Kun yhdist\u00e4t kannettavan tai puhelimen avoimeen WiFiin esimerkiksi lentokent\u00e4ll\u00e4, kahvilassa tai hotellissa, kaikki liikenne kulkee salaamattomana, ellei k\u00e4yt\u00e4 VPN:\u00e4\u00e4. WireGuard-tunneli salaa liikenteen p\u00e4\u00e4st\u00e4 p\u00e4\u00e4h\u00e4n palvelimellesi asti, joten samassa verkossa olevat eiv\u00e4t pysty nuuskimaan istuntojasi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Toinen yleinen tarve on p\u00e4\u00e4sy kotiverkkoon ulkomailta. Jos matkustat ja haluat k\u00e4ytt\u00e4\u00e4 kotipalvelintasi, NAS-laitettasi tai kotiautomaatiotasi turvallisesti, WireGuard tarjoaa siihen kevyen ja vakaan tunnelin. Pohjoismaissa, joissa et\u00e4ty\u00f6 on yleist\u00e4, sama ratkaisu sopii my\u00f6s pienyrityksen sis\u00e4verkon suojattuun et\u00e4k\u00e4ytt\u00f6\u00f6n ilman raskasta yrityks-VPN-laitteistoa. Koska WireGuard kuormittaa konetta v\u00e4h\u00e4n ja muodostaa yhteyden l\u00e4hes v\u00e4litt\u00f6m\u00e4sti, se sopii erityisen hyvin mobiilik\u00e4ytt\u00f6\u00f6n, jossa yhteys katkeilee ja muodostuu uudelleen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kolmas k\u00e4ytt\u00f6tapaus on liikenteen reititt\u00e4minen tietyn maan kautta. Jos haluat n\u00e4ytt\u00e4\u00e4 internetille suomalaisen IP-osoitteen ollessasi ulkomailla, voit ajaa WireGuard-palvelinta suomalaisella konesalipalvelimella ja reititt\u00e4\u00e4 liikenteesi sen kautta. T\u00e4m\u00e4 on hy\u00f6dyllist\u00e4 esimerkiksi kotimaisten verkkopankki- ja viranomaispalveluiden k\u00e4ytt\u00f6\u00f6n ulkomailta. Erona kaupalliseen VPN-palveluun on, ett\u00e4 hallitset itse koko ketjua: tied\u00e4t tarkalleen, kuka palvelimen omistaa ja mit\u00e4 lokitietoja siit\u00e4 j\u00e4\u00e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"esitiedot-ja-vaaditut-versiot\">Esitiedot ja vaaditut versiot<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ennen kuin aloitat, tarvitset muutaman asian. T\u00e4rkeint\u00e4 on palvelin, jolla on julkinen IP-osoite, jotta asiakkaat l\u00f6yt\u00e4v\u00e4t sen internetist\u00e4. Edullisin tapa on vuokrata virtuaalipalvelin (VPS) esimerkiksi Hetznerilt\u00e4, UpCloudilta tai DigitalOceanilta. Jo halvin, muutaman euron kuukausihintainen palvelin riitt\u00e4\u00e4 helposti kotik\u00e4ytt\u00f6\u00f6n, koska WireGuard kuormittaa konetta hyvin v\u00e4h\u00e4n.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Komponentti<\/th><th>Suositeltu versio<\/th><th>Huomiot<\/th><\/tr><\/thead><tbody><tr><td>K\u00e4ytt\u00f6j\u00e4rjestelm\u00e4 (palvelin)<\/td><td>Ubuntu 24.04 LTS<\/td><td>My\u00f6s Debian 12 ja uudemmat toimivat<\/td><\/tr><tr><td>Linux-ydin<\/td><td>5.6 tai uudempi<\/td><td>WireGuard on mukana ytimess\u00e4<\/td><\/tr><tr><td>wireguard-tools<\/td><td>Jakelun uusin versio<\/td><td>Sis\u00e4lt\u00e4\u00e4 wg- ja wg-quick-komennot<\/td><\/tr><tr><td>Julkinen IP-osoite<\/td><td>Pakollinen palvelimella<\/td><td>Staattinen tai dynaaminen (DDNS)<\/td><\/tr><tr><td>Avoin portti<\/td><td>UDP 51820<\/td><td>Avataan palomuurissa ja pilvess\u00e4<\/td><\/tr><tr><td>P\u00e4\u00e4syoikeudet<\/td><td>sudo \/ root<\/td><td>Asennus vaatii p\u00e4\u00e4k\u00e4ytt\u00e4j\u00e4n oikeudet<\/td><\/tr><tr><td>Asiakasohjelma<\/td><td>WireGuard-sovellus<\/td><td>Windows, macOS, Linux, Android, iOS<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Tarvitset my\u00f6s perustaidot komentorivin k\u00e4yt\u00f6st\u00e4 ja SSH-yhteyden palvelimellesi. Varmista, ett\u00e4 palvelimesi k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4 on ajan tasalla ennen aloittamista. Jos k\u00e4yt\u00e4t kotipalvelinta dynaamisella IP-osoitteella, harkitse dynaamista DNS-palvelua (DDNS), jotta osoite pysyy tavoitettavissa my\u00f6s IP:n vaihtuessa. Asiakaslaitteille asennetaan virallinen WireGuard-sovellus, joka on saatavilla kaikille yleisimmille alustoille osoitteesta <a href=\"https:\/\/www.wireguard.com\/\" target=\"_blank\" rel=\"noopener\">wireguard.com<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Resurssitarpeet ovat pienet. WireGuard ei vaadi tehokasta palvelinta, vaan jopa kevyt yhden ytimen ja 512 megatavun muistin virtuaalipalvelin riitt\u00e4\u00e4 useille asiakkaille. Suurin pullonkaula on yleens\u00e4 palvelimen verkkoyhteyden nopeus, ei laskentateho, koska ChaCha20-Poly1305-salaus on suunniteltu nopeaksi my\u00f6s ilman erillist\u00e4 laitteistokiihdytyst\u00e4. Jos suunnittelet palvelimen ajamista vanhalla Raspberry Pi -laitteella kotona, sekin p\u00e4rj\u00e4\u00e4 helposti tavallisessa kotik\u00e4yt\u00f6ss\u00e4. Varmista vain, ett\u00e4 reitittimesi palomuurissa on avattu UDP-portti 51820 ja ohjattu se palvelimelle (port forwarding), jos palvelin on kotiverkon takana.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vaihe-1-paivita-jarjestelma-ja-asenna-wireguard\">Vaihe 1: P\u00e4ivit\u00e4 j\u00e4rjestelm\u00e4 ja asenna WireGuard<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aloita kirjautumalla palvelimelle SSH:lla ja p\u00e4ivitt\u00e4m\u00e4ll\u00e4 pakettiluettelo sek\u00e4 asennetut paketit. Asenna sen j\u00e4lkeen WireGuard ja sen ty\u00f6kalut sek\u00e4 ufw-palomuuri, jota k\u00e4yt\u00e4mme my\u00f6hemmin.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt upgrade -y\nsudo apt install wireguard wireguard-tools ufw -y<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Paketti <code>wireguard<\/code> tuo mukanaan ytimen kanssa toimivan moduulin metatiedot, ja <code>wireguard-tools<\/code> sis\u00e4lt\u00e4\u00e4 t\u00e4rke\u00e4t <code>wg<\/code>&#8211; ja <code>wg-quick<\/code>-komennot. Voit varmistaa asennuksen onnistumisen tarkistamalla version:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wg --version<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Komento tulostaa asennetun version, esimerkiksi <code>wireguard-tools v1.0.x<\/code>. Jos saat virheen &#8220;command not found&#8221;, asennus ei onnistunut, ja sinun kannattaa tarkistaa, ett\u00e4 k\u00e4yt\u00e4t tuettua Ubuntu- tai Debian-versiota. Koska WireGuard on osa Linux-ydint\u00e4 versiosta 5.6 alkaen, erillist\u00e4 ydinmoduulia ei tarvitse k\u00e4\u00e4nt\u00e4\u00e4 nykyaikaisilla jakeluilla.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vaihe-2-luo-palvelimen-avainpari-curve25519\">Vaihe 2: Luo palvelimen avainpari (Curve25519)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WireGuard tunnistaa laitteet julkisen avaimen kryptografialla. Luo ensin hakemisto ja aseta sille tiukat oikeudet, jotta vain p\u00e4\u00e4k\u00e4ytt\u00e4j\u00e4 voi lukea avaimet.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir -p \/etc\/wireguard\nsudo chmod 700 \/etc\/wireguard\ncd \/etc\/wireguard<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Luo seuraavaksi palvelimen yksityinen ja julkinen avain. Komento <code>wg genkey<\/code> luo yksityisen avaimen, joka sy\u00f6tet\u00e4\u00e4n putkella <code>wg pubkey<\/code> -komennolle julkisen avaimen muodostamiseksi.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wg genkey | sudo tee \/etc\/wireguard\/server_private.key | wg pubkey | sudo tee \/etc\/wireguard\/server_public.key\nsudo chmod 600 \/etc\/wireguard\/server_private.key \/etc\/wireguard\/server_public.key<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Avaimet ovat Curve25519-pohjaisia, ja ne tulostuvat Base64-muodossa, esimerkiksi <code>oK7p...=<\/code>. Tulosta yksityinen avain n\u00e4kyviin, koska tarvitset sen seuraavassa vaiheessa palvelimen konfiguraatiotiedostoon:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo cat \/etc\/wireguard\/server_private.key<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c4l\u00e4 koskaan jaa yksityist\u00e4 avainta tai kopioi sit\u00e4 ep\u00e4luotettaviin paikkoihin, kuten chat-viesteihin tai tukij\u00e4rjestelm\u00e4n tiketteihin. Yksityinen avain on koko j\u00e4rjestelm\u00e4n turvallisuuden perusta. Jos haluat syventy\u00e4 siihen, miten julkiset ja yksityiset avaimet toimivat, lue <a href=\"\/fi\/digitaaliset-allekirjoitukset\/\">digitaaliset allekirjoitukset<\/a> -artikkelimme.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vaihe-3-kirjoita-palvelimen-wg0-conf\">Vaihe 3: Kirjoita palvelimen wg0.conf<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nyt luodaan palvelimen p\u00e4\u00e4rakennuskivi eli liit\u00e4nt\u00e4tiedosto <code>\/etc\/wireguard\/wg0.conf<\/code>. Tunneliverkoksi valitaan yksityinen RFC1918-osoiteavaruus 10.8.0.0\/24, jossa palvelin saa osoitteen 10.8.0.1. Avaa tiedosto editorissa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/wireguard\/wg0.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Liit\u00e4 seuraava sis\u00e4lt\u00f6. Korvaa <code>SERVER_PRIVATE_KEY<\/code> edellisess\u00e4 vaiheessa tulostamallasi yksityisell\u00e4 avaimella. Tarkista my\u00f6s verkkoliit\u00e4nn\u00e4n nimi (alla <code>eth0<\/code>); selvit\u00e4 se komennolla <code>ip route list default<\/code> ja korvaa tarvittaessa nimell\u00e4 kuten <code>ens3<\/code> tai <code>enp1s0<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[Interface]\nPrivateKey = SERVER_PRIVATE_KEY\nAddress = 10.8.0.1\/24\nListenPort = 51820\nSaveConfig = false\n\nPostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE\nPostUp = iptables -A FORWARD -i wg0 -j ACCEPT\nPostUp = iptables -A FORWARD -o wg0 -j ACCEPT\n\nPostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE\nPostDown = iptables -D FORWARD -i wg0 -j ACCEPT\nPostDown = iptables -D FORWARD -o wg0 -j ACCEPT<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kohta <code>[Interface]<\/code> m\u00e4\u00e4ritt\u00e4\u00e4 palvelimen oman liit\u00e4nn\u00e4n. <code>ListenPort = 51820<\/code> on WireGuardin oletusportti UDP-protokollalla. <code>PostUp<\/code>&#8211; ja <code>PostDown<\/code>-rivit lis\u00e4\u00e4v\u00e4t ja poistavat NAT-s\u00e4\u00e4nn\u00f6t automaattisesti, kun tunneli k\u00e4ynnistet\u00e4\u00e4n tai sammutetaan. Asetus <code>SaveConfig = false<\/code> est\u00e4\u00e4 wg-quickia kirjoittamasta tiedostoa uudelleen, mik\u00e4 pit\u00e4\u00e4 k\u00e4sin tekem\u00e4si muutokset tallessa. Tallenna tiedosto n\u00e4pp\u00e4inyhdistelm\u00e4ll\u00e4 Ctrl+O ja poistu Ctrl+X.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Osoiteavaruuden valinnalla on merkityst\u00e4. K\u00e4yt\u00e4 yksityist\u00e4 RFC1918-aluetta, joka ei ole jo k\u00e4yt\u00f6ss\u00e4 kotiverkossasi. Jos kotiverkkosi on tyypillinen 192.168.1.0\/24, \u00e4l\u00e4 valitse tunnelille samaa aluetta, koska reititys menisi sekaisin. T\u00e4st\u00e4 syyst\u00e4 esimerkki k\u00e4ytt\u00e4\u00e4 harvemmin t\u00f6rm\u00e4\u00e4v\u00e4\u00e4 10.8.0.0\/24-aluetta. <code>ListenPort<\/code> voidaan my\u00f6s vaihtaa toiseen UDP-porttiin, jos haluat v\u00e4ltt\u00e4\u00e4 porttiskannauksia, mutta muista silloin p\u00e4ivitt\u00e4\u00e4 sek\u00e4 palomuurin s\u00e4\u00e4nt\u00f6 ett\u00e4 asiakkaiden <code>Endpoint<\/code>-rivi vastaamaan uutta porttia. Pid\u00e4 portti UDP-protokollassa, koska WireGuard ei tue TCP:t\u00e4 natiivisti.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vaihe-4-ota-ip-edelleenlahetys-ja-nat-kayttoon\">Vaihe 4: Ota IP-edelleenl\u00e4hetys ja NAT k\u00e4ytt\u00f6\u00f6n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jotta palvelin osaa reititt\u00e4\u00e4 asiakkaiden liikenteen internetiin, Linuxin ytimen IP-edelleenl\u00e4hetys (IP forwarding) on otettava k\u00e4ytt\u00f6\u00f6n. Ilman t\u00e4t\u00e4 asetusta asiakas saa tunnelin pystyyn mutta ei p\u00e4\u00e4se verkkoon. Ota asetus k\u00e4ytt\u00f6\u00f6n heti ja tee siit\u00e4 pysyv\u00e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo sysctl -w net.ipv4.ip_forward=1\necho 'net.ipv4.ip_forward=1' | sudo tee \/etc\/sysctl.d\/99-wireguard.conf\nsudo sysctl --system<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ensimm\u00e4inen komento ottaa edelleenl\u00e4hetyksen k\u00e4ytt\u00f6\u00f6n v\u00e4litt\u00f6m\u00e4sti. Toinen komento kirjoittaa asetuksen tiedostoon, joka luetaan jokaisella k\u00e4ynnistyksell\u00e4, joten asetus s\u00e4ilyy my\u00f6s palvelimen uudelleenk\u00e4ynnistyksen j\u00e4lkeen. Voit varmistaa, ett\u00e4 arvo on 1:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat \/proc\/sys\/net\/ipv4\/ip_forward<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Komennon pit\u00e4isi tulostaa <code>1<\/code>. NAT-osuuden (Network Address Translation) hoitavat jo edellisess\u00e4 vaiheessa lis\u00e4tyt <code>iptables ... MASQUERADE<\/code> -s\u00e4\u00e4nn\u00f6t, jotka k\u00e4\u00e4nt\u00e4v\u00e4t asiakkaiden yksityiset osoitteet palvelimen julkiseen osoitteeseen. Jos haluat ohjata my\u00f6s IPv6-liikenteen, lis\u00e4\u00e4 vastaava rivi <code>net.ipv6.conf.all.forwarding=1<\/code> ja IPv6-osoiteavaruus konfiguraatioon.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Edelleenl\u00e4hetys ja NAT muodostavat yhdess\u00e4 reitityksen perustan. Ilman edelleenl\u00e4hetyst\u00e4 ydin hylk\u00e4\u00e4 paketit, jotka eiv\u00e4t ole osoitettu suoraan palvelimelle. Ilman NAT-s\u00e4\u00e4nt\u00f6\u00e4 taas vastausliikenne ei l\u00f6yd\u00e4 takaisin asiakkaalle, koska internetin reitittimet eiv\u00e4t tunne yksityist\u00e4 10.8.0.0\/24-aluetta. N\u00e4m\u00e4 kaksi asetusta selitt\u00e4v\u00e4t valtaosan &#8220;tunneli toimii mutta netti\u00e4 ei ole&#8221; -ongelmista, joten kannattaa varmistaa molemmat heti, jos liikenne ei kulje.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vaihe-5-avaa-palomuuri-ja-kaynnista-wireguard\">Vaihe 5: Avaa palomuuri ja k\u00e4ynnist\u00e4 WireGuard<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Avaa ufw-palomuurissa WireGuardin UDP-portti 51820 ja varmista, ett\u00e4 SSH pysyy auki, jottet lukitse itse\u00e4si ulos palvelimelta. Ota palomuuri sitten k\u00e4ytt\u00f6\u00f6n.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 51820\/udp\nsudo ufw allow OpenSSH\nsudo ufw enable\nsudo ufw status verbose<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jos k\u00e4yt\u00e4t pilvipalvelua, kuten Hetzneri\u00e4 tai AWS:\u00e4\u00e4, muista avata UDP-portti 51820 my\u00f6s pilven omassa palomuurissa tai security groupissa. Pelkk\u00e4 palvelimen sis\u00e4inen ufw ei riit\u00e4, jos pilvi suodattaa liikenteen jo aiemmin. K\u00e4ynnist\u00e4 nyt WireGuard-liit\u00e4nt\u00e4 ja aseta se k\u00e4ynnistym\u00e4\u00e4n automaattisesti palvelimen k\u00e4ynnistyess\u00e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo wg-quick up wg0\nsudo systemctl enable wg-quick@wg0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tarkista tunnelin tila komennolla <code>sudo wg show<\/code>. Tulosteen pit\u00e4isi n\u00e4ytt\u00e4\u00e4 t\u00e4lt\u00e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>interface: wg0\n  public key: oK7p9Hh...=\n  private key: (hidden)\n  listening port: 51820<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Palvelin on nyt pystyss\u00e4 ja kuuntelee yhteyksi\u00e4. Vertaillaksesi salatun yhteyden merkityst\u00e4 yleisemmin, katso my\u00f6s <a href=\"\/fi\/https-ja-tls\/\">HTTPS ja TLS<\/a> -oppaamme.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vaihe-6-luo-ensimmainen-asiakas-peer\">Vaihe 6: Luo ensimm\u00e4inen asiakas (peer)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jokaiselle asiakaslaitteelle luodaan oma avainpari. T\u00e4m\u00e4 on t\u00e4rke\u00e4 turvallisuusperiaate: jos jokin laite katoaa, voit poistaa vain sen avaimen ilman, ett\u00e4 muiden laitteiden tarvitsee vaihtaa avaimia. Luo asiakkaan avaimet palvelimella (tai suoraan asiakaslaitteella):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wg genkey | tee client1_private.key | wg pubkey | tee client1_public.key<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Luo seuraavaksi asiakkaan konfiguraatiotiedosto, esimerkiksi <code>client1.conf<\/code>. Korvaa <code>CLIENT_PRIVATE_KEY<\/code> asiakkaan yksityisell\u00e4 avaimella, <code>SERVER_PUBLIC_KEY<\/code> palvelimen julkisella avaimella ja <code>PALVELIMEN_JULKINEN_IP<\/code> palvelimesi todellisella osoitteella.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[Interface]\nPrivateKey = CLIENT_PRIVATE_KEY\nAddress = 10.8.0.2\/32\nDNS = 1.1.1.1\n\n[Peer]\nPublicKey = SERVER_PUBLIC_KEY\nEndpoint = PALVELIMEN_JULKINEN_IP:51820\nAllowedIPs = 0.0.0.0\/0\nPersistentKeepalive = 25<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Asetus <code>AllowedIPs = 0.0.0.0\/0<\/code> ohjaa kaiken asiakkaan liikenteen tunnelin l\u00e4pi, mik\u00e4 on oikea valinta t\u00e4ydelle VPN-suojalle esimerkiksi julkisessa verkossa. Jos haluat vain p\u00e4\u00e4syn palvelimen l\u00e4hiverkkoon (split tunnel), korvaa arvo esimerkiksi <code>10.8.0.0\/24<\/code>. <code>PersistentKeepalive = 25<\/code> pit\u00e4\u00e4 yhteyden auki NAT-palomuurien l\u00e4pi l\u00e4hett\u00e4m\u00e4ll\u00e4 paketin 25 sekunnin v\u00e4lein, mik\u00e4 on hy\u00f6dyllist\u00e4 mobiililaitteille.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vaihe-7-lisaa-asiakas-palvelimelle\">Vaihe 7: Lis\u00e4\u00e4 asiakas palvelimelle<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Palvelimen pit\u00e4\u00e4 tuntea asiakkaan julkinen avain ennen kuin yhteys onnistuu. Lis\u00e4\u00e4 asiakas peer-merkint\u00e4n\u00e4 palvelimen <code>wg0.conf<\/code> -tiedostoon. Avaa tiedosto ja lis\u00e4\u00e4 loppuun:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[Peer]\n# client1 (kannettava)\nPublicKey = CLIENT_PUBLIC_KEY\nAllowedIPs = 10.8.0.2\/32<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Huomaa ero asiakas- ja palvelinkonfiguraatioiden v\u00e4lill\u00e4: palvelimella <code>AllowedIPs<\/code> kertoo, mist\u00e4 osoitteesta t\u00e4m\u00e4 asiakas saa l\u00e4hett\u00e4\u00e4 liikennett\u00e4 (t\u00e4ss\u00e4 10.8.0.2\/32, eli vain yksi osoite). Lis\u00e4\u00e4 sen j\u00e4lkeen muutos ilman, ett\u00e4 koko tunneli katkeaa, k\u00e4ytt\u00e4m\u00e4ll\u00e4 komentoa, joka lukee konfiguraation uudelleen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo wg syncconf wg0 &lt;(wg-quick strip wg0)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">T\u00e4m\u00e4 komento p\u00e4ivitt\u00e4\u00e4 peerit ilman olemassa olevien yhteyksien katkaisua, toisin kuin <code>wg-quick down<\/code> ja <code>up<\/code>. Vaihtoehtoisesti voit k\u00e4ynnist\u00e4\u00e4 tunnelin uudelleen, jos et ole huolissasi katkoksesta. Tarkista, ett\u00e4 uusi peer n\u00e4kyy komennolla <code>sudo wg show<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vaihe-8-yhdista-tyopoyta-ja-mobiili-qr-koodi\">Vaihe 8: Yhdist\u00e4 ty\u00f6p\u00f6yt\u00e4 ja mobiili (QR-koodi)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ty\u00f6p\u00f6yt\u00e4koneella (Windows, macOS, Linux) asenna virallinen WireGuard-sovellus, valitse &#8220;Import tunnel from file&#8221; ja osoita siihen luomaasi <code>client1.conf<\/code> -tiedostoon. Aktivoi tunneli yhdell\u00e4 napsautuksella. Linux-asiakkaalla voit my\u00f6s kopioida tiedoston <code>\/etc\/wireguard\/<\/code> -hakemistoon ja k\u00e4ynnist\u00e4\u00e4 sen komennolla <code>sudo wg-quick up client1<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puhelimelle helpoin tapa on QR-koodi. Asenna palvelimelle <code>qrencode<\/code> ja luo koodi suoraan asiakaskonfiguraatiosta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install qrencode -y\nqrencode -t ansiutf8 &lt; client1.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Terminaaliin ilmestyy QR-koodi. Avaa Androidin tai iOS:n WireGuard-sovellus, valitse &#8220;Lis\u00e4\u00e4 tunneli&#8221; ja &#8220;Skannaa QR-koodista&#8221;. Suuntaa kamera koodiin, ja konfiguraatio siirtyy puhelimeen sekunneissa. Anna tunnelille selke\u00e4 nimi, kuten &#8220;Koti-VPN&#8221;. Muista, ett\u00e4 jokaiselle puhelimelle pit\u00e4\u00e4 luoda oma avainpari ja oma peer-merkint\u00e4 palvelimelle, ei k\u00e4ytt\u00e4\u00e4 samaa avainta usealla laitteella.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vaihe-9-testaa-yhteys-ja-esta-dns-vuodot\">Vaihe 9: Testaa yhteys ja est\u00e4 DNS-vuodot<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kun olet aktivoinut tunnelin asiakaslaitteella, testaa ett\u00e4 yhteys toimii ja ett\u00e4 liikenne kulkee palvelimen kautta. Tarkista ensin julkinen IP-osoitteesi. Sen pit\u00e4isi n\u00e4ytt\u00e4\u00e4 palvelimesi osoite, ei oman internetyhteytesi osoitetta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl ifconfig.me\nping -c 4 1.1.1.1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jos <code>curl ifconfig.me<\/code> palauttaa palvelimesi julkisen IP:n, tunneli toimii oikein. Komento <code>ping<\/code> taas kertoo, kulkeeko liikenne tunnelin l\u00e4pi ja mill\u00e4 viiveell\u00e4. Jos ping vastaa mutta selain ei avaa sivuja, kyse on l\u00e4hes aina DNS-asetuksesta tai MTU-arvosta, ei itse tunnelista. Tarkista viel\u00e4 k\u00e4ttelyn tila palvelimelta komennolla <code>sudo wg show<\/code>. Toimivassa yhteydess\u00e4 n\u00e4et rivin <code>latest handshake<\/code> ja siirretyt tavut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>peer: 9Hh3K...=\n  endpoint: 84.123.45.67:51820\n  allowed ips: 10.8.0.2\/32\n  latest handshake: 18 seconds ago\n  transfer: 1.24 MiB received, 845.32 KiB sent<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">DNS-vuoto tarkoittaa, ett\u00e4 nimipalvelukyselysi vuotavat tunnelin ohi internet-operaattorillesi, vaikka muu liikenne kulkee VPN:n l\u00e4pi. Est\u00e4 t\u00e4m\u00e4 varmistamalla, ett\u00e4 asiakaskonfiguraation <code>[Interface]<\/code>-osiossa on rivi <code>DNS = 1.1.1.1<\/code> (tai oma luotettu resolverisi). Voit testata mahdolliset vuodot palveluilla kuten dnsleaktest.com. Hyv\u00e4 yksityisyys edellytt\u00e4\u00e4 my\u00f6s vahvoja salasanoja; kertaa periaatteet <a href=\"\/fi\/salasanaturvallisuus\/\">salasanaturvallisuus<\/a>-oppaastamme.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vaihe-10-lisaa-asiakkaita-ja-automatisoi-luonti\">Vaihe 10: Lis\u00e4\u00e4 asiakkaita ja automatisoi luonti<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Useamman laitteen lis\u00e4\u00e4minen sujuu nopeasti pienell\u00e4 skriptill\u00e4. Jokainen uusi asiakas tarvitsee oman avainparin, oman IP-osoitteen tunneliverkosta (10.8.0.3, 10.8.0.4 ja niin edelleen) ja oman peer-merkinn\u00e4n palvelimelle. T\u00e4ss\u00e4 yksinkertainen skripti, joka luo uuden asiakkaan:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n# Kaytto: sudo .\/add-client.sh nimi 3\nNAME=$1\nIP_LAST=$2\ncd \/etc\/wireguard\n\nwg genkey | tee ${NAME}_private.key | wg pubkey | tee ${NAME}_public.key\nSERVER_PUB=$(cat server_public.key)\nCLIENT_PRIV=$(cat ${NAME}_private.key)\nCLIENT_PUB=$(cat ${NAME}_public.key)\n\ncat &gt; ${NAME}.conf &lt;&lt;EOF\n[Interface]\nPrivateKey = ${CLIENT_PRIV}\nAddress = 10.8.0.${IP_LAST}\/32\nDNS = 1.1.1.1\n\n[Peer]\nPublicKey = ${SERVER_PUB}\nEndpoint = PALVELIMEN_JULKINEN_IP:51820\nAllowedIPs = 0.0.0.0\/0\nPersistentKeepalive = 25\nEOF\n\necho \"[Peer]\" &gt;&gt; wg0.conf\necho \"# ${NAME}\" &gt;&gt; wg0.conf\necho \"PublicKey = ${CLIENT_PUB}\" &gt;&gt; wg0.conf\necho \"AllowedIPs = 10.8.0.${IP_LAST}\/32\" &gt;&gt; wg0.conf\n\nwg syncconf wg0 &lt;(wg-quick strip wg0)\necho \"Asiakas ${NAME} luotu: ${NAME}.conf\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tallenna skripti nimell\u00e4 <code>add-client.sh<\/code>, anna sille suoritusoikeudet komennolla <code>chmod +x add-client.sh<\/code> ja muista korvata <code>PALVELIMEN_JULKINEN_IP<\/code> palvelimesi osoitteella. T\u00e4m\u00e4n j\u00e4lkeen uusi asiakas syntyy yhdell\u00e4 komennolla, esimerkiksi <code>sudo .\/add-client.sh puhelin 3<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vaihe-11-edistyneet-vinkit-kill-switch-split-tunnel\">Vaihe 11: Edistyneet vinkit (kill switch, split tunnel)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kun perusasetukset ovat kunnossa, voit parantaa turvallisuutta ja joustavuutta muutamalla lis\u00e4asetuksella. <strong>Kill switch<\/strong> est\u00e4\u00e4 liikenteen vuotamisen, jos VPN-yhteys katkeaa. Lis\u00e4\u00e4 asiakaskonfiguraation <code>[Interface]<\/code>-osioon rivit, jotka katkaisevat verkon, jos tunneli sammuu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT\nPreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Split tunnel<\/strong> taas reititt\u00e4\u00e4 vain valitun liikenteen tunnelin l\u00e4pi. Esimerkiksi jos haluat ohjata vain yrityksen sis\u00e4verkon liikenteen VPN:\u00e4\u00e4n ja j\u00e4tt\u00e4\u00e4 muun suoraan internetiin, aseta asiakkaalle <code>AllowedIPs = 10.8.0.0\/24, 192.168.1.0\/24<\/code>. <strong>Avainten kierto<\/strong> kannattaa tehd\u00e4 s\u00e4\u00e4nn\u00f6llisesti: luo uudet avaimet, p\u00e4ivit\u00e4 peer-merkinn\u00e4t ja poista vanhat. S\u00e4ilyt\u00e4 my\u00f6s palvelimen ohjelmistot ajan tasalla, koska tietoturvap\u00e4ivitykset tulevat ytimen mukana.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voit my\u00f6s yhdist\u00e4\u00e4 WireGuardin DNS-suodatukseen ajamalla palvelimella esimerkiksi Pi-holen, jolloin koko VPN-liikenteesi suodattuu mainoksista ja seurantadomaineista. Toinen hy\u00f6dyllinen lis\u00e4 on monivaiheinen tunnistautuminen hallintapaneeleihin; tutustu aiheeseen vertailussamme <a href=\"\/fi\/kaksivaiheinen-tunnistautuminen-vertailu\/\">kaksivaiheinen tunnistautuminen<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vaihe-12-6-yleista-sudenkuoppaa\">Vaihe 12: 6 yleist\u00e4 sudenkuoppaa<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Useimmat WireGuard-ongelmat johtuvat samoista perusvirheist\u00e4. T\u00e4ss\u00e4 kuusi yleisint\u00e4 sudenkuoppaa, jotka kannattaa tarkistaa ennen kuin alkaa ep\u00e4ill\u00e4 monimutkaisempia syit\u00e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>IP-edelleenl\u00e4hetys pois p\u00e4\u00e4lt\u00e4.<\/strong> Yleisin syy siihen, ett\u00e4 asiakas saa tunnelin pystyyn mutta ei p\u00e4\u00e4se internetiin. Tarkista, ett\u00e4 <code>net.ipv4.ip_forward = 1<\/code>.<\/li><li><strong>V\u00e4\u00e4r\u00e4 verkkoliit\u00e4nn\u00e4n nimi NAT-s\u00e4\u00e4nn\u00f6ss\u00e4.<\/strong> Jos palvelimesi liit\u00e4nt\u00e4 on <code>ens3<\/code> mutta s\u00e4\u00e4nn\u00f6ss\u00e4 lukee <code>eth0<\/code>, NAT ei toimi. Selvit\u00e4 nimi komennolla <code>ip route list default<\/code>.<\/li><li><strong>Pilven palomuuri est\u00e4\u00e4 portin.<\/strong> Pelkk\u00e4 ufw ei riit\u00e4, jos pilvipalvelun security group suodattaa UDP 51820:n jo ennen palvelinta.<\/li><li><strong>Sama avain usealla laitteella.<\/strong> Jokaiselle laitteelle pit\u00e4\u00e4 luoda oma avainpari ja oma peer. Saman avaimen jakaminen aiheuttaa satunnaisia katkoksia.<\/li><li><strong>Puuttuva DNS asiakkaalla.<\/strong> Ilman <code>DNS<\/code>-rivi\u00e4 asiakas voi vuotaa nimikyselyt tunnelin ohi, vaikka muu liikenne kulkee VPN:n l\u00e4pi.<\/li><li><strong>SaveConfig = true ylikirjoittaa muutokset.<\/strong> Jos teet k\u00e4sin muutoksia mutta SaveConfig on p\u00e4\u00e4ll\u00e4, wg-quick voi ylikirjoittaa ne tunnelin sammuessa.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wireguard-eri-alustoilla-ja-reitittimissa\">WireGuard eri alustoilla ja reitittimiss\u00e4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">T\u00e4h\u00e4n asti olemme keskittyneet Linux-palvelimeen ja ty\u00f6p\u00f6yt\u00e4- sek\u00e4 mobiiliasiakkaisiin, mutta WireGuard toimii my\u00f6s monilla muilla alustoilla. T\u00e4m\u00e4 joustavuus tekee siit\u00e4 erinomaisen valinnan kotiverkkoon, jossa on useita erilaisia laitteita. K\u00e4yd\u00e4\u00e4n l\u00e4pi t\u00e4rkeimm\u00e4t vaihtoehdot ja niiden erityispiirteet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"reitittimet-ja-openwrt\">Reitittimet ja OpenWrt<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Monet kotireitittimet tukevat WireGuardia suoraan, ja avoimen l\u00e4hdekoodin OpenWrt-laiteohjelmisto tuo tuen l\u00e4hes mihin tahansa yhteensopivaan reitittimeen. Kun ajat WireGuard-asiakasta reitittimell\u00e4, voit reititt\u00e4\u00e4 koko kotiverkon liikenteen tunnelin l\u00e4pi ilman, ett\u00e4 jokaiselle laitteelle asennetaan erikseen sovellusta. T\u00e4m\u00e4 on k\u00e4tev\u00e4\u00e4 esimerkiksi \u00e4lytelevisioille ja muille laitteille, joihin ei saa VPN-sovellusta. Reitittimell\u00e4 asetukset tehd\u00e4\u00e4n yleens\u00e4 web-k\u00e4ytt\u00f6liittym\u00e4st\u00e4, mutta taustalla on sama <code>wg0.conf<\/code>-logiikka kuin Linuxissa.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"windows-macos-ja-konttiymparistot\">Windows, macOS ja konttiymp\u00e4rist\u00f6t<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Windowsille ja macOS:lle on viralliset, graafiset WireGuard-sovellukset, jotka tuovat tunnelin pystyyn yhdell\u00e4 napsautuksella konfiguraatiotiedostosta. Ne hoitavat reitityksen ja DNS-asetukset automaattisesti, joten k\u00e4ytt\u00e4j\u00e4n ei tarvitse koskea komentoriviin. Palvelinpuolella WireGuard sopii my\u00f6s konttiymp\u00e4rist\u00f6ihin: voit ajaa sit\u00e4 Dockerissa tai osana Kubernetes-klusteria, mik\u00e4 on hy\u00f6dyllist\u00e4, jos haluat tunneloida liikenteen mikropalveluiden v\u00e4lill\u00e4. Konttiratkaisuissa on huomioitava, ett\u00e4 kontti tarvitsee <code>NET_ADMIN<\/code>-oikeudet ja p\u00e4\u00e4syn ytimen WireGuard-moduuliin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Riippumatta alustasta perusperiaate s\u00e4ilyy samana: jokaisella laitteella on oma avainpari, palvelin tuntee asiakkaan julkisen avaimen, ja liikenne salataan ChaCha20-Poly1305-algoritmilla. T\u00e4m\u00e4 yhten\u00e4isyys on yksi syy WireGuardin suosioon. Sama mentaalimalli p\u00e4tee kaikkialla, eik\u00e4 jokaista alustaa varten tarvitse opetella uutta konfiguraatiotapaa. Jos vasta harkitset, kannattaako oma palvelin pystytt\u00e4\u00e4 vai ostaa valmis palvelu, vertailumme <a href=\"\/fi\/nordvpn-vs-protonvpn-vs-mullvad\/\">parhaista VPN-palveluista<\/a> auttaa p\u00e4\u00e4t\u00f6ksess\u00e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vianmaaritys-8-yleista-ongelmaa-ja-korjaus\">Vianm\u00e4\u00e4ritys: 8 yleist\u00e4 ongelmaa ja korjaus<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jos yhteys ei toimi vaiheittaisesta ohjeesta huolimatta, k\u00e4y l\u00e4pi seuraava vianm\u00e4\u00e4ritystaulukko. Aloita aina komennosta <code>sudo wg show<\/code>, joka paljastaa, onko k\u00e4ttely (handshake) tapahtunut.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Oire<\/th><th>Todenn\u00e4k\u00f6inen syy<\/th><th>Korjaus<\/th><\/tr><\/thead><tbody><tr><td>Ei k\u00e4ttely\u00e4 (handshake)<\/td><td>V\u00e4\u00e4r\u00e4 avain tai endpoint<\/td><td>Tarkista julkiset avaimet ja palvelimen IP\/portti<\/td><\/tr><tr><td>Tunneli pystyss\u00e4, ei netti\u00e4<\/td><td>IP-edelleenl\u00e4hetys pois<\/td><td>Aseta net.ipv4.ip_forward = 1<\/td><\/tr><tr><td>Yhteys katkeaa NATin takana<\/td><td>Keepalive puuttuu<\/td><td>Lis\u00e4\u00e4 PersistentKeepalive = 25<\/td><\/tr><tr><td>DNS ei toimi \/ vuotaa<\/td><td>DNS-rivi puuttuu<\/td><td>Lis\u00e4\u00e4 DNS = 1.1.1.1 asiakkaalle<\/td><\/tr><tr><td>Sivut latautuvat osittain<\/td><td>MTU liian suuri<\/td><td>Laske MTU arvoon 1380 tai 1280<\/td><\/tr><tr><td>Portti ei vastaa<\/td><td>Palomuuri est\u00e4\u00e4<\/td><td>Avaa UDP 51820 ufw:ss\u00e4 ja pilvess\u00e4<\/td><\/tr><tr><td>Ei reitti\u00e4 asiakkaalle<\/td><td>V\u00e4\u00e4r\u00e4 AllowedIPs palvelimella<\/td><td>Korjaa peerin AllowedIPs (esim. 10.8.0.2\/32)<\/td><\/tr><tr><td>Tunneli ei k\u00e4ynnisty bootissa<\/td><td>Palvelu ei k\u00e4yt\u00f6ss\u00e4<\/td><td>Aja systemctl enable wg-quick@wg0<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">MTU-ongelmat ovat erityisen petollisia, koska ne aiheuttavat osittaista toimintaa: pienet sivut latautuvat mutta suuret j\u00e4\u00e4v\u00e4t jumiin. WireGuard k\u00e4ytt\u00e4\u00e4 tyypillisesti MTU-arvoa 1420, koska salausotsikot viev\u00e4t osan paketin koosta. Jos ep\u00e4ilet MTU-ongelmaa, lis\u00e4\u00e4 asiakkaan <code>[Interface]<\/code>-osioon rivi <code>MTU = 1380<\/code> ja testaa uudelleen. Tarvittaessa laske arvoa edelleen 1280:een, joka on turvallinen v\u00e4himm\u00e4isarvo l\u00e4hes kaikissa verkoissa.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"kattelyn-handshake-tarkempi-diagnoosi\">K\u00e4ttelyn (handshake) tarkempi diagnoosi<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Jos <code>sudo wg show<\/code> ei n\u00e4yt\u00e4 rivi\u00e4 &#8220;latest handshake&#8221;, asiakkaan ja palvelimen v\u00e4lill\u00e4 ei ole muodostunut yhteytt\u00e4 lainkaan. T\u00e4m\u00e4 on l\u00e4hes aina kolmen syyn summa: portti ei ole auki, endpoint-osoite on v\u00e4\u00e4r\u00e4, tai avaimet eiv\u00e4t t\u00e4sm\u00e4\u00e4. Tarkista palvelimelta, ett\u00e4 portti kuuntelee:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ss -ulnp | grep 51820<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jos rivi puuttuu, tunneli ei ole pystyss\u00e4, ja sinun kannattaa ajaa <code>sudo wg-quick up wg0<\/code> uudelleen ja tarkkailla mahdollisia virheilmoituksia. Voit my\u00f6s seurata, saapuuko asiakkaan liikenne palvelimelle, komennolla <code>sudo tcpdump -i eth0 udp port 51820<\/code>. Jos paketteja ei n\u00e4y, ongelma on verkossa tai palomuurissa palvelimen ja asiakkaan v\u00e4liss\u00e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wireguard-vs-openvpn-suorituskyky-2026\">WireGuard vs OpenVPN: suorituskyky 2026<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WireGuardin valinta perustuu mitattuun suorituskykyyn, ei pelkk\u00e4\u00e4n maineeseen. Alla oleva taulukko kokoaa julkaistuja vertailulukuja. Muista, ett\u00e4 absoluuttiset luvut riippuvat palvelimen sijainnista ja yhteysnopeudesta, mutta suhteellinen ero protokollien v\u00e4lill\u00e4 toistuu testist\u00e4 toiseen.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Mittari<\/th><th>WireGuard<\/th><th>OpenVPN<\/th><th>L\u00e4hde \/ huomio<\/th><\/tr><\/thead><tbody><tr><td>Lataus (RTINGS)<\/td><td>353,6 Mbit\/s<\/td><td>44,1 Mbit\/s (TCP)<\/td><td>RTINGS-testi<\/td><\/tr><tr><td>L\u00e4hetys (RTINGS)<\/td><td>366,0 Mbit\/s<\/td><td>39,2 Mbit\/s (TCP)<\/td><td>RTINGS-testi<\/td><\/tr><tr><td>Lataus (NordVPN-testi)<\/td><td>903 Mbit\/s<\/td><td>222 Mbit\/s<\/td><td>Seattle-palvelin<\/td><\/tr><tr><td>Suhteellinen nopeus<\/td><td>3\u20134x nopeampi<\/td><td>vertailutaso<\/td><td>Useat testit<\/td><\/tr><tr><td>Koodirivit<\/td><td>alle 4 000<\/td><td>satoja tuhansia<\/td><td>Pienempi hy\u00f6kk\u00e4yspinta<\/td><\/tr><tr><td>K\u00e4ttely<\/td><td>~1,5 RTT<\/td><td>moninkertainen<\/td><td>L\u00e4hes v\u00e4lit\u00f6n yhteys<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Jos haluat syv\u00e4llisemm\u00e4n vertailun protokollien arkkitehtuurista ja siit\u00e4, milloin OpenVPN on silti perusteltu valinta, lue riippumattomat mittaukset esimerkiksi <a href=\"https:\/\/www.rtings.com\/vpn\/reviews\/nordvpn\" target=\"_blank\" rel=\"noopener\">RTINGSin VPN-testeist\u00e4<\/a>. WireGuardin virallinen tekninen kuvaus ja vertaisarvioitu tutkimuspaperi l\u00f6ytyv\u00e4t <a href=\"https:\/\/www.wireguard.com\/papers\/wireguard.pdf\" target=\"_blank\" rel=\"noopener\">wireguard.com-sivustolta<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wireguardin-kryptografia-ja-turvallisuus\">WireGuardin kryptografia ja turvallisuus<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WireGuardin turvallisuus perustuu pieneen joukkoon nykyaikaisia, tarkkaan valittuja salausalgoritmeja. Toisin kuin OpenVPN tai IPsec, WireGuard ei tarjoa kymmeni\u00e4 vaihtoehtoja, vaan k\u00e4ytt\u00e4\u00e4 yht\u00e4 vahvaa yhdistelm\u00e4\u00e4. T\u00e4m\u00e4 &#8220;kryptografinen j\u00e4ykkyys&#8221; v\u00e4hent\u00e4\u00e4 virheellisten asetusten riski\u00e4, koska v\u00e4\u00e4r\u00e4\u00e4 tai heikkoa algoritmia ei voi vahingossa valita.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>ChaCha20-Poly1305<\/strong> hoitaa varsinaisen liikenteen salauksen ja eheystarkistuksen (autentikoitu salaus).<\/li><li><strong>Curve25519<\/strong> vastaa avaintenvaihdosta (Elliptic Curve Diffie-Hellman), joka muodostaa jaetun salaisuuden osapuolten v\u00e4lille.<\/li><li><strong>BLAKE2s<\/strong> on nopea kryptografinen tiivistefunktio, jota k\u00e4ytet\u00e4\u00e4n k\u00e4ttelyss\u00e4.<\/li><li><strong>SipHash24<\/strong> suojaa palvelimen sis\u00e4isi\u00e4 hajautustauluja palvelunestohy\u00f6kk\u00e4yksilt\u00e4.<\/li><li><strong>HKDF<\/strong> johtaa istuntoavaimet jaetusta salaisuudesta.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">WireGuard tukee my\u00f6s t\u00e4ydellist\u00e4 edelleensalaisuutta (perfect forward secrecy): istuntoavaimet vaihtuvat s\u00e4\u00e4nn\u00f6llisesti, joten yhden avaimen paljastuminen ei vaaranna aiempaa liikennett\u00e4. Lis\u00e4ksi protokolla on suunniteltu &#8220;hiljaiseksi&#8221;: se ei vastaa tunnistamattomiin paketteihin, mik\u00e4 tekee palvelimen l\u00f6yt\u00e4misen porttiskannereilla vaikeammaksi. T\u00e4m\u00e4 piilottavuus on hy\u00f6dyllinen lis\u00e4kerros turvallisuutta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On hyv\u00e4 huomata, ett\u00e4 WireGuardin nykyiset algoritmit eiv\u00e4t ole viel\u00e4 kvanttiturvallisia. Curve25519-avaintenvaihto olisi teoriassa haavoittuvainen riitt\u00e4v\u00e4n tehokkaalle kvanttitietokoneelle. T\u00e4llaisia koneita ei ole olemassa, mutta pitk\u00e4n aikav\u00e4lin suojaa varten kvanttiturvallisia laajennuksia kehitet\u00e4\u00e4n. Voit syventy\u00e4 siihen, miten kryptografiset perusteet toimivat, lukemalla <a href=\"\/fi\/digitaaliset-allekirjoitukset\/\">digitaaliset allekirjoitukset<\/a> -artikkelimme.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"turvallisuuden-parhaat-kaytannot-2026\">Turvallisuuden parhaat k\u00e4yt\u00e4nn\u00f6t 2026<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Toimiva WireGuard-palvelin ei ole sama asia kuin turvallinen palvelin. Noudata seuraavia k\u00e4yt\u00e4nt\u00f6j\u00e4 pit\u00e4\u00e4ksesi tunnelisi ja palvelimesi suojattuina pitk\u00e4ll\u00e4 aikav\u00e4lill\u00e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Tiukat tiedosto-oikeudet.<\/strong> Pid\u00e4 kaikki <code>\/etc\/wireguard\/<\/code>-hakemiston yksityiset avaimet oikeuksissa 600, jotta vain root voi lukea ne.<\/li><li><strong>Oma avainpari jokaiselle laitteelle.<\/strong> N\u00e4in voit poistaa yhden laitteen avaimen ilman, ett\u00e4 muiden tarvitsee vaihtaa avaimia.<\/li><li><strong>Minimoi AllowedIPs.<\/strong> K\u00e4yt\u00e4 split tunnelia, jos asiakkaan ei tarvitse reititt\u00e4\u00e4 kaikkea liikennett\u00e4 palvelimen kautta.<\/li><li><strong>Pid\u00e4 palvelin p\u00e4ivitettyn\u00e4.<\/strong> Asenna Ubuntun tietoturvap\u00e4ivitykset s\u00e4\u00e4nn\u00f6llisesti, koska WireGuard tulee ytimen mukana.<\/li><li><strong>Kovenna SSH.<\/strong> K\u00e4yt\u00e4 avainpohjaista tunnistautumista, poista salasanakirjautuminen ja harkitse Fail2bania.<\/li><li><strong>Varmuuskopioi konfiguraatiot.<\/strong> S\u00e4ilyt\u00e4 palvelimen ja asiakkaiden avaimet salatussa varmuuskopiossa, mutta \u00e4l\u00e4 koskaan julkisissa paikoissa.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Muista my\u00f6s, ett\u00e4 VPN suojaa liikenteen siirtotien, mutta ei korvaa hyv\u00e4\u00e4 yleist\u00e4 tietoturvaa. Lue, miten tietomurrot tyypillisesti tapahtuvat ja miten suojaudut niilt\u00e4, <a href=\"\/fi\/tietomurrot\/\">tietomurrot<\/a>-oppaastamme. Lis\u00e4\u00e4 aiheesta l\u00f6yd\u00e4t my\u00f6s <a href=\"\/fi\/privacy\/\">yksityisyys-osiostamme<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"tunnelin-valvonta-yllapito-ja-varmuuskopiointi\">Tunnelin valvonta, yll\u00e4pito ja varmuuskopiointi<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kun WireGuard on tuotantok\u00e4yt\u00f6ss\u00e4, sit\u00e4 kannattaa valvoa ja yll\u00e4pit\u00e4\u00e4 s\u00e4\u00e4nn\u00f6llisesti. T\u00e4rkein yksitt\u00e4inen komento on edelleen <code>sudo wg show<\/code>, joka n\u00e4ytt\u00e4\u00e4 jokaisen peerin viimeisimm\u00e4n k\u00e4ttelyn ja siirretyt tavut. Jos jonkin asiakkaan k\u00e4ttely on tuntien takaa, laite on todenn\u00e4k\u00f6isesti sammuksissa tai sen yhteys on katkennut. Voit my\u00f6s seurata liit\u00e4nn\u00e4n liikennett\u00e4 reaaliajassa ty\u00f6kaluilla kuten <code>vnstat<\/code> tai <code>iftop<\/code>, jotka n\u00e4ytt\u00e4v\u00e4t, kuinka paljon dataa tunnelin l\u00e4pi liikkuu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Palvelimen tilan voi tarkistaa my\u00f6s systemd:n kautta, mik\u00e4 on hy\u00f6dyllist\u00e4, jos ep\u00e4ilet, ettei tunneli k\u00e4ynnistynyt boottauksen yhteydess\u00e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status wg-quick@wg0\nsudo journalctl -u wg-quick@wg0 --no-pager -n 30<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Komento <code>systemctl status<\/code> n\u00e4ytt\u00e4\u00e4, onko palvelu aktiivinen (active), ja <code>journalctl<\/code> tulostaa viimeisimm\u00e4t lokirivit, joista n\u00e4kee mahdolliset virheet k\u00e4ynnistyksess\u00e4. Jos n\u00e4et rivin &#8220;active (exited)&#8221;, liit\u00e4nt\u00e4 on pystyss\u00e4, koska wg-quick muodostaa tunnelin kerran eik\u00e4 j\u00e4\u00e4 taustaprosessiksi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Varmuuskopioi koko <code>\/etc\/wireguard\/<\/code>-hakemisto turvalliseen paikkaan, sill\u00e4 se sis\u00e4lt\u00e4\u00e4 sek\u00e4 palvelimen ett\u00e4 asiakkaiden avaimet ja konfiguraatiot. Pakkaa ja salaa varmuuskopio ennen sen siirt\u00e4mist\u00e4 pois palvelimelta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo tar czf - \/etc\/wireguard | gpg -c &gt; wireguard-backup.tar.gz.gpg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Komento luo salatun varmuuskopion, jonka avaamiseen tarvitaan salasana. S\u00e4ilyt\u00e4 varmuuskopio erill\u00e4\u00e4n palvelimesta, esimerkiksi salatulla USB-tikulla tai luotetussa pilvitallennuksessa. \u00c4l\u00e4 koskaan tallenna avaimia salaamattomana julkiseen versionhallintaan tai jaettuun kansioon. Avainten kierto kannattaa ajoittaa esimerkiksi puolivuosittain: luo uudet avaimet, p\u00e4ivit\u00e4 peerit ja poista vanhat tiedostot turvallisesti komennolla <code>shred<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jos hallinnoit useita palvelimia tai kymmeni\u00e4 asiakkaita, harkitse hallintaty\u00f6kalua kuten wg-easy tai firezone, jotka tarjoavat web-k\u00e4ytt\u00f6liittym\u00e4n asiakkaiden lis\u00e4\u00e4miseen ja poistamiseen. Pieness\u00e4 ymp\u00e4rist\u00f6ss\u00e4 komentorivi ja aiemmin esitelty <code>add-client.sh<\/code>-skripti riitt\u00e4v\u00e4t kuitenkin hyvin. Pid\u00e4 mieless\u00e4, ett\u00e4 jokainen lis\u00e4tty hallintakerros kasvattaa hy\u00f6kk\u00e4yspintaa, joten yksinkertaisinta ratkaisua kannattaa suosia silloin, kun se on mahdollista.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"usein-kysytyt-kysymykset\">Usein kysytyt kysymykset<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"onko-wireguard-ilmainen\">Onko WireGuard ilmainen?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kyll\u00e4. WireGuard on avointa l\u00e4hdekoodia ja t\u00e4ysin ilmainen. Ainoa kulu on palvelin, jolla ajat sit\u00e4, eli esimerkiksi muutaman euron kuukausihintainen virtuaalipalvelin. Itse ohjelmistosta ei makseta mit\u00e4\u00e4n, ja se on saatavilla kaikille yleisille k\u00e4ytt\u00f6j\u00e4rjestelmille osoitteesta <a href=\"https:\/\/www.wireguard.com\/\" target=\"_blank\" rel=\"noopener\">wireguard.com<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"tarvitsenko-staattisen-ip-osoitteen-palvelimelle\">Tarvitsenko staattisen IP-osoitteen palvelimelle?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Staattinen IP helpottaa, mutta ei ole pakollinen. Jos palvelimellasi on dynaaminen osoite, k\u00e4yt\u00e4 dynaamista DNS-palvelua (DDNS), joka pit\u00e4\u00e4 verkkotunnuksen osoittamaan vaihtuvaan IP:hen. Aseta asiakkaan <code>Endpoint<\/code> osoittamaan verkkotunnukseen IP-osoitteen sijaan.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"kuinka-monta-laitetta-voin-yhdistaa\">Kuinka monta laitetta voin yhdist\u00e4\u00e4?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">K\u00e4yt\u00e4nn\u00f6ss\u00e4 rajaton m\u00e4\u00e4r\u00e4. Jokaiselle laitteelle luodaan oma avainpari ja oma IP-osoite tunneliverkosta (10.8.0.2, 10.8.0.3 ja niin edelleen). 10.8.0.0\/24-aliverkkoon mahtuu yli 250 asiakasta, ja voit kasvattaa aliverkkoa tarvittaessa. Palvelimen suorituskyky riitt\u00e4\u00e4 helposti kymmenille samanaikaisille yhteyksille.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"toimiiko-wireguard-puhelimessa\">Toimiiko WireGuard puhelimessa?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Toimii. Sek\u00e4 Androidille ett\u00e4 iOS:lle on virallinen WireGuard-sovellus. Helpoin tapa lis\u00e4t\u00e4 konfiguraatio on skannata QR-koodi, jonka luot palvelimella <code>qrencode<\/code>-ty\u00f6kalulla. <code>PersistentKeepalive = 25<\/code> -asetus pit\u00e4\u00e4 yhteyden vakaana my\u00f6s mobiiliverkoissa NAT-palomuurien takana.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mika-on-ero-allowedips-0-0-0-0-0-ja-aliverkon-valilla\">Mik\u00e4 on ero AllowedIPs 0.0.0.0\/0 ja aliverkon v\u00e4lill\u00e4?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Arvo <code>0.0.0.0\/0<\/code> ohjaa kaiken asiakkaan liikenteen tunnelin l\u00e4pi (t\u00e4ysi VPN), mik\u00e4 on oikea valinta julkisessa verkossa yksityisyyden suojaamiseksi. Tietyn aliverkon, kuten <code>10.8.0.0\/24<\/code>, k\u00e4ytt\u00f6 taas ohjaa vain kyseisen verkon liikenteen tunneliin (split tunnel) ja j\u00e4tt\u00e4\u00e4 muun internetliikenteen suoraksi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"miksi-yhteys-muodostuu-mutta-internet-ei-toimi\">Miksi yhteys muodostuu mutta internet ei toimi?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">L\u00e4hes aina syy on, ett\u00e4 IP-edelleenl\u00e4hetys on pois p\u00e4\u00e4lt\u00e4 tai NAT-s\u00e4\u00e4nn\u00f6n verkkoliit\u00e4nt\u00e4 on v\u00e4\u00e4r\u00e4. Tarkista, ett\u00e4 <code>net.ipv4.ip_forward = 1<\/code> ja ett\u00e4 <code>iptables ... MASQUERADE<\/code> -s\u00e4\u00e4nn\u00f6n liit\u00e4nt\u00e4 (esimerkiksi eth0) vastaa palvelimesi todellista julkista liit\u00e4nt\u00e4\u00e4. Selvit\u00e4 oikea nimi komennolla <code>ip route list default<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"onko-wireguard-turvallisempi-kuin-openvpn\">Onko WireGuard turvallisempi kuin OpenVPN?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Molemmat ovat turvallisia oikein m\u00e4\u00e4ritettyin\u00e4. WireGuardin etu on pienempi koodikanta (alle 4 000 rivi\u00e4), joka tarkoittaa pienemp\u00e4\u00e4 hy\u00f6kk\u00e4yspintaa ja helpompaa tietoturvatarkastusta. Lis\u00e4ksi WireGuard k\u00e4ytt\u00e4\u00e4 vain nykyaikaisia algoritmeja, joten heikon salauksen vahinkovalinta ei ole mahdollinen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mista-tiedan-etta-vpn-todella-suojaa-liikennettani\">Mist\u00e4 tied\u00e4n, ett\u00e4 VPN todella suojaa liikennett\u00e4ni?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tarkista julkinen IP-osoitteesi komennolla <code>curl ifconfig.me<\/code> tunnelin ollessa p\u00e4\u00e4ll\u00e4: sen pit\u00e4isi n\u00e4ytt\u00e4\u00e4 palvelimesi osoite. Testaa my\u00f6s DNS-vuodot palvelulla kuten dnsleaktest.com. Jos molemmat osoittavat palvelimeesi, liikenteesi kulkee salatun tunnelin l\u00e4pi oikein.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"related-coverage\">Related Coverage<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"\/fi\/nordvpn-vs-protonvpn-vs-mullvad\/\">NordVPN vs ProtonVPN vs Mullvad: 8800 vs 650 [2026]<\/a><\/li><li><a href=\"\/fi\/kaksivaiheinen-tunnistautuminen-vertailu\/\">2FA-vertailu: 5 tapaa ja 99,9 % suoja [2026]<\/a><\/li><li><a href=\"\/fi\/https-ja-tls\/\">HTTPS ja TLS: miten salattu yhteys suojaa sinua<\/a><\/li><li><a href=\"\/fi\/salasanaturvallisuus\/\">Salasanaturvallisuus: vahvat salasanat ja niiden suojaus<\/a><\/li><li><a href=\"\/fi\/tietomurrot\/\">Tietomurrot: miten ne tapahtuvat ja miten suojaudut<\/a><\/li><li><a href=\"\/fi\/privacy\/\">Yksityisyys: kaikki oppaat ja artikkelit<\/a><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Olet nyt pystytt\u00e4nyt oman WireGuard-VPN-palvelimen, yhdist\u00e4nyt siihen ty\u00f6p\u00f6yd\u00e4n ja puhelimen sek\u00e4 oppinut korjaamaan yleisimm\u00e4t ongelmat. Sinulla on t\u00e4ysi hallinta omasta salatusta tunnelistasi, ilman kolmannen osapuolen VPN-palvelua. Lis\u00e4tietoja WireGuardin ty\u00f6kaluista l\u00f6yd\u00e4t virallisesta <a href=\"https:\/\/git.zx2c4.com\/wireguard-tools\/about\/\" target=\"_blank\" rel=\"noopener\">wireguard-tools-dokumentaatiosta<\/a> ja Linux-ytimen kehityksest\u00e4 sivustolta <a href=\"https:\/\/www.kernel.org\/\" target=\"_blank\" rel=\"noopener\">kernel.org<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Seuraava luonteva askel on laajentaa asetuksia omiin tarpeisiisi. Voit lis\u00e4t\u00e4 laitteita add-client-skriptill\u00e4, ottaa k\u00e4ytt\u00f6\u00f6n kill switchin kaikilla mobiililaitteilla ja yhdist\u00e4\u00e4 WireGuardin DNS-suodatukseen Pi-holella. Jos py\u00f6rit\u00e4t useita palvelimia, harkitse niiden yhdist\u00e4mist\u00e4 site-to-site-tunneleilla, joissa palvelimet toimivat toistensa peerein\u00e4. T\u00e4rkeint\u00e4 on muistaa turvallisuuden perusperiaatteet: oma avainpari jokaiselle laitteelle, tiukat tiedosto-oikeudet, s\u00e4\u00e4nn\u00f6lliset p\u00e4ivitykset ja varmuuskopiot. N\u00e4in pid\u00e4t tunnelisi luotettavana vuosien ajan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WireGuard on hyv\u00e4 esimerkki siit\u00e4, miten nykyaikainen kryptografia voi olla samaan aikaan vahvaa ja yksinkertaista k\u00e4ytt\u00e4\u00e4. Alle 4 000 rivin koodikanta, nopea ChaCha20-Poly1305-salaus ja selke\u00e4 avainmalli tekev\u00e4t siit\u00e4 ratkaisun, joka kest\u00e4\u00e4 tarkastelun sek\u00e4 turvallisuuden ett\u00e4 suorituskyvyn kannalta. Kun ymm\u00e4rr\u00e4t perusteet, voit soveltaa samoja periaatteita kaikkialla, miss\u00e4 tarvitset luotettavan salatun yhteyden kahden pisteen v\u00e4lille.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WireGuard on noussut muutamassa vuodessa Linuxin oletusvalinnaksi VPN-yhteyksille, ja syy on yksinkertainen: se on nopeampi, kevyempi ja helpompi pystytt\u00e4\u00e4 kuin vanhat vaihtoehdot. T\u00e4m\u00e4 opas vie sinut tyhj\u00e4st\u00e4 toimivaan WireGuard-palvelimeen 12\u2026<\/p>\n","protected":false},"author":6,"featured_media":73,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,4],"tags":[],"class_list":["post-72","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-10","category-privacy"],"_links":{"self":[{"href":"https:\/\/shattered.io\/fi\/wp-json\/wp\/v2\/posts\/72","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shattered.io\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shattered.io\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shattered.io\/fi\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/shattered.io\/fi\/wp-json\/wp\/v2\/comments?post=72"}],"version-history":[{"count":1,"href":"https:\/\/shattered.io\/fi\/wp-json\/wp\/v2\/posts\/72\/revisions"}],"predecessor-version":[{"id":74,"href":"https:\/\/shattered.io\/fi\/wp-json\/wp\/v2\/posts\/72\/revisions\/74"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/shattered.io\/fi\/wp-json\/wp\/v2\/media\/73"}],"wp:attachment":[{"href":"https:\/\/shattered.io\/fi\/wp-json\/wp\/v2\/media?parent=72"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shattered.io\/fi\/wp-json\/wp\/v2\/categories?post=72"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shattered.io\/fi\/wp-json\/wp\/v2\/tags?post=72"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}