Wolkra

Oppaat

WireGuard VPN -palvelimen asennus

Asenna WireGuard VPN -palvelin Ubuntu 24.04:lle tai Debian 12:lle: avaimet, wg0-asetukset, IP-välitys, NAT, palomuuri ja asiakasasetukset puhelimille ja kannettaville.

Päivitetty 4 min lukuaika

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

bash
sudo apt update
sudo apt install -y wireguard qrencode

qrencode antaa näyttää asiakasasetukset QR-koodeina puhelimia varten.

2. Luo palvelimen avaimet

bash
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ä

bash
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:

ini
[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:

bash
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

bash
echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-wireguard.conf
sysctl --system

6. Avaa palomuuri ja käynnistä tunneli

UFW:llä:

bash
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ä:

bash
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):

bash
cd /etc/wireguard
wg genkey | tee laptop.key | wg pubkey > laptop.pub

Lisää asiakas vertaiseksi käynnissä olevaan palvelimeen ja tallenna asetukset:

bash
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:

ini
[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, ::/0 ohjaa 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.
  • PersistentKeepalive pitää tunnelin auki kotireitittimien ja mobiiliverkkojen takana.
  • DNS on luotettavan nimipalvelimen osoite, esimerkiksi julkinen nimipalvelin tai palvelimella itse ajamasi.

Tuonti puhelimeen

bash
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:

bash
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:

bash
curl -4 https://ifconfig.me

Sen pitäisi näyttää palvelimen osoite. Palvelimella:

bash
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.

Käynnistä palvelin Frankfurtissa

Luo tili, lataa saldoa ja aja palvelinta alkaen €3.49 kuukaudessa. Maksat vain käyttämistäsi tunneista. Mittaamaton kaistanleveys kaikissa paketeissa.