WireGuard VPN -palvelimen asentamiseksi asenna wireguard, luo avainpari palvelimelle ja jokaiselle asiakkaalle, kirjoita /etc/wireguard/wg0.conf yksityisellä aliverkolla, ota käyttöön IP-välitys ja NAT, avaa yksi UDP-portti ja käynnistä wg-quick@wg0. Ubuntu 24.04:llä tai Debian 12:lla se vie noin kymmenen minuuttia.
WireGuard on pieni, nopea ja sisäänrakennettu Linuxin ytimeen. Se sopii hyvin henkilökohtaiseksi VPN:ksi saksalaisella poistumispisteellä, etäyhteyteen yrityksen verkkoon tai palvelinten yhdistämiseen.
Mitä tarvitset
- VPS julkisella IPv4-osoitteella (IPv6 on plussaa). 1 vCPU / 1 GB -paketti riittää hyvin. Frankfurtin VPS tarjoaa matalan viiveen koko Eurooppaan.
- Root- tai sudo-oikeudet.
- WireGuard-sovellus jokaisella asiakaslaitteella: Windows, macOS, Linux, Android tai iOS.
Esimerkeissä:
| Kohde | Esimerkkiarvo |
|---|---|
| Palvelimen julkinen osoite | 203.0.113.10 |
| VPN-aliverkko | 10.8.0.0/24 |
| Palvelimen tunneliosoite | 10.8.0.1 |
| Ensimmäinen asiakas | 10.8.0.2 |
| UDP-portti | 51820 |
Korvaa ne omillasi. Haluatko oikotien? Valitse Wolkralla palvelinta luodessa WireGuardin yhden klikkauksen sovellus ja siirry suoraan vaiheeseen 7.
1. Asenna WireGuard
sudo apt update
sudo apt install -y wireguard qrencode
qrencode antaa näyttää asiakasasetukset QR-koodeina puhelimia varten.
2. Luo palvelimen avaimet
sudo -i
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
umask 077 varmistaa, että vain root voi lukea yksityisen avaimen.
3. Selvitä julkinen verkkoliitäntä
ip route show default
Sanaa dev seuraava sana on julkinen liitäntäsi, yleensä eth0 tai ens3. Esimerkeissä käytetään eth0:aa.
4. Kirjoita palvelimen asetukset
Luo /etc/wireguard/wg0.conf:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <contents of server.key>
# NAT for VPN clients going out to the internet
PostUp = iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Liitä avain komennolla:
sed -i "s|<contents of server.key>|$(cat server.key)|" wg0.conf
chmod 600 wg0.conf
Debian 12 ja Ubuntu 24.04 käyttävät taustalla nftablesia, ja iptables-komento toimii nftables-taustajärjestelmän kautta, joten yllä olevat säännöt toimivat molemmissa.
5. Ota IP-välitys käyttöön
echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-wireguard.conf
sysctl --system
6. Avaa palomuuri ja käynnistä tunneli
UFW:llä:
ufw allow 51820/udp
ufw route allow in on wg0 out on eth0
ufw reload
ufw route allow päästää tunnelista välitetyn liikenteen ulos internetiin. Ilman sitä asiakkaat saavat yhteyden, mutta internet ei toimi.
Jos käytät Wolkran palomuuria, lisää myös sinne saapuvan liikenteen sääntö UDP-portille 51820.
Käynnistä WireGuard ja ota se käyttöön käynnistyksen yhteydessä:
systemctl enable --now wg-quick@wg0
wg show
wg show -komennon pitäisi näyttää wg0-liitäntä ja sen kuunteleva portti.
7. Lisää asiakas
Luo asiakkaan avaimet palvelimella (tai asiakaslaitteella, mikä on hieman turvallisempaa, koska yksityinen avain ei koskaan poistu laitteelta):
cd /etc/wireguard
wg genkey | tee laptop.key | wg pubkey > laptop.pub
Lisää asiakas vertaiseksi käynnissä olevaan palvelimeen ja tallenna asetukset:
wg set wg0 peer "$(cat laptop.pub)" allowed-ips 10.8.0.2/32
wg-quick save wg0
wg-quick save kirjoittaa ajonaikaisen tilan takaisin tiedostoon wg0.conf, joten vertainen säilyy uudelleenkäynnistyksen yli.
8. Kirjoita asiakkaan asetukset
Luo laptop.conf:
[Interface]
PrivateKey = <contents of laptop.key>
Address = 10.8.0.2/32
DNS = <your resolver>
[Peer]
PublicKey = <contents of server.pub>
Endpoint = 203.0.113.10:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
AllowedIPs = 0.0.0.0/0, ::/0ohjaa kaiken liikenteen VPN:n kautta (täysi tunneli).- Jaetussa tunnelissa, joka tavoittaa vain yksityisverkkosi, käytä esimerkiksi
AllowedIPs = 10.8.0.0/24, 10.0.0.0/24. PersistentKeepalivepitää tunnelin auki kotireitittimien ja mobiiliverkkojen takana.DNSon luotettavan nimipalvelimen osoite, esimerkiksi julkinen nimipalvelin tai palvelimella itse ajamasi.
Tuonti puhelimeen
qrencode -t ansiutf8 < laptop.conf
Avaa WireGuard-sovellus, valitse Skannaa QR-koodista ja osoita kameralla päätettä.
Tuonti tietokoneelle
Kopioi laptop.conf laitteelle turvallisesti (esimerkiksi scp:llä) ja tuo se WireGuard-sovellukseen, tai Linuxilla:
sudo cp laptop.conf /etc/wireguard/wg0.conf
sudo wg-quick up wg0
Linux-asiakkaalla wg-quick asettaa DNS:n resolvconf:n kautta. Jos se valittaa komennon puuttuvan, asenna openresolv (Debian) tai poista DNS-rivi ja määritä DNS itse.
Poista lopuksi asiakkaan yksityinen avain palvelimelta, jos loit sen siellä.
9. Testaa tunneli
Yhdistä asiakkaalla ja tarkista julkinen osoite:
curl -4 https://ifconfig.me
Sen pitäisi näyttää palvelimen osoite. Palvelimella:
wg show
Tuore ”latest handshake” ja kasvavat siirtolaskurit tarkoittavat, että vertainen on yhdistetty.
IPv6:n lisääminen tunneliin
Jos palvelimellasi on IPv6-osoite, voit antaa IPv6:n myös asiakkaille. Lisää palvelimen Address-kenttään yksityinen IPv6-alue (paikallinen yksilöllinen osoite, kuten fd42:42:42::1/64), vastaava osoite jokaiselle asiakkaalle, ota käyttöön net.ipv6.conf.all.forwarding=1 ja lisää IPv4-säännön kaltainen ip6tables-masquerade-sääntö. Muussa tapauksessa jätä ::/0 pois asiakkaan AllowedIPs-kentästä, tai IPv6-liikenne pudotetaan sen sijaan, että se vuotaisi.
Vianetsintä
| Oire | Tarkista |
|---|---|
| Ei kättelyä | Onko UDP-portti auki UFW:ssä ja pilvipalomuurissa? Ovatko päätepiste ja julkinen avain oikein? |
| Kättely onnistuu, mutta internet ei toimi | Onko ip_forward asetettu? Onko NAT-sääntö oikealla liitännällä? Onko ufw route allow lisätty? |
| Verkkosivut latautuvat hitaasti | Kokeile pienentää MTU:ta: lisää MTU = 1380 asiakkaan [Interface]-osioon |
| Toimii Wi-Fissä, ei mobiiliverkossa | Lisää PersistentKeepalive = 25 |
journalctl -u wg-quick@wg0 näyttää käynnistyksen virheet.
Liikenne ja kustannukset
VPN kaksinkertaistaa palvelimen liikenteen: data tulee internetistä sisään ja lähtee ulos asiakkaalle. Mitatuissa paketeissa se kertyy nopeasti. Wolkran palvelimissa on mittaamaton kaistanleveys ilman gigatavukohtaisia maksuja, jaetuilla enintään 10 Gbit/s porteilla kohtuullisen käytön periaatteella. Huomaa, että hyväksyttävän käytön periaatteet koskevat silti kaikkea VPN:si kautta kulkevaa liikennettä.
Lisää siitä, miksi ihmiset ajavat omaa VPN:ää, löydät sivulta VPN-palvelimen käyttötapaukset. Koventaaksesi itse isäntäkonetta noudata opasta Ubuntu-palvelimen suojaaminen, mutta ohita sysctl-uudelleenohjausasetukset, jotka ovat ristiriidassa reitityksen kanssa.
Usein kysytyt kysymykset
Kuinka tehokkaan palvelimen WireGuard tarvitsee?
Hyvin vähän. WireGuard toimii ytimessä, ja 1 vCPU:n ja 1 GB:n palvelin riittää helposti kotitaloudelle tai pienelle tiimille.
Mitä porttia WireGuard käyttää?
Mitä tahansa valitsemaasi UDP-porttia. 51820 on yleinen oletus; avaa se sekä palvelimen palomuurissa että mahdollisessa pilvipalomuurissa.
Kuluttaako VPN-palvelin paljon liikennettä?
Kyllä, jokainen asiakkaan käyttämä tavu kulkee palvelimen läpi sisään ja ulos. Mittaamattomalla paketilla vältät siitä aiheutuvat gigatavukohtaiset maksut.
Onko WireGuardin käsin määrittämistä helpompaa tapaa?
Wolkralla voit valita palvelinta luodessa WireGuardin yhden klikkauksen sovelluksen. Se on valmis muutama minuutti käynnistyksen jälkeen.
Voinko käyttää WireGuardia yksityisten palvelinten tavoittamiseen?
Kyllä. Reititä tunnelin kautta yksityisverkkosi osoitealue kaiken liikenteen sijaan, niin asiakkaat tavoittavat palvelimet, joilla ei ole julkista IP-osoitetta.