Skip to content

Sett opp en WireGuard VPN-server ​

Sett opp en WireGuard VPN-server på Ubuntu og koble en klient til den.

Forutsetninger ​

  • En Linux-server (Ubuntu 22.04+ anbefales).
  • Root- eller sudo-tilgang.
  • En offentlig IP-adresse: serverens primære IPv4.

Steg 1: oppdater systemet ​

bash
sudo apt update && sudo apt upgrade -y

Steg 2: installer WireGuard ​

bash
sudo apt install wireguard -y
wg --version

Steg 3: generer serverens nøkkelpar ​

bash
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key
FilBruk
server_private.keyBlir på serveren. Del den aldri.
server_public.keyGår inn i konfigurasjonen til hver klient.

Steg 4: skriv serverkonfigurasjonen ​

bash
sudo nano /etc/wireguard/wg0.conf
ini
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; \
         iptables -A FORWARD -o wg0 -j ACCEPT; \
         iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; \
           iptables -D FORWARD -o wg0 -j ACCEPT; \
           iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Erstatt <SERVER_PRIVATE_KEY> med innholdet i server_private.key. Hvis primærgrensesnittet ikke er eth0 (kjør ip a for å bekrefte), oppdater MASQUERADE-linjene tilsvarende.

Steg 5: aktiver IP-forwarding ​

bash
sudo nano /etc/sysctl.conf

Avkommenter eller legg til:

net.ipv4.ip_forward=1

Aktiver umiddelbart:

bash
sudo sysctl -p

Steg 6: start WireGuard ​

bash
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo wg show

wg show viser wg0 uten peers ennå.

Steg 7: legg til en klient ​

Generer klientens nøkkelpar (på klientmaskinen) ​

bash
wg genkey | tee client_private.key | wg pubkey > client_public.key

Registrer klienten på serveren ​

Rediger /etc/wireguard/wg0.conf og legg til:

ini
[Peer]
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.0.0.2/32

Last inn på nytt:

bash
sudo systemctl restart wg-quick@wg0

Klientens konfigurasjonsfil ​

Opprett wg0.conf på klientmaskinen:

ini
[Interface]
PrivateKey = <CLIENT_PRIVATE_KEY>
Address    = 10.0.0.2/24
DNS        = 1.1.1.1

[Peer]
PublicKey           = <SERVER_PUBLIC_KEY>
Endpoint            = YOUR_SERVER_PUBLIC_IP:51820
AllowedIPs          = 0.0.0.0/0
PersistentKeepalive = 25

Sett inn de faktiske verdiene:

PlassholderVerdi
<CLIENT_PRIVATE_KEY>Innholdet i client_private.key (klientsiden).
<SERVER_PUBLIC_KEY>Innholdet i server_public.key (serversiden).
YOUR_SERVER_PUBLIC_IPGigahost-serverens primære offentlige IPv4.

AllowedIPs = 0.0.0.0/0 gjør VPN-en til en full-tunnel (all trafikk). Sett den til et bestemt subnett (f.eks. 10.0.0.0/24) for en split-tunnel der bare LAN-trafikk rutes.

Steg 8: åpne brannmuren ​

Hvis UFW er aktivert på serveren:

bash
sudo ufw allow 51820/udp

For firewalld:

bash
sudo firewall-cmd --permanent --add-port=51820/udp
sudo firewall-cmd --reload

Test tunnelen ​

Aktiver tilkoblingen på klienten (wg-quick up wg0, de offisielle WireGuard-appene for skrivebord, eller en av mobilappene), og sjekk hvilken adresse internett ser deg som:

bash
curl ifconfig.me

Den skal rapportere serverens offentlige IP, ikke din lokale.

TIPS

For flere klienter, gjenta Steg 7 med et nytt nøkkelpar per klient og gi hver klient sin egen 10.0.0.X/32 inne i det samme /24-et.

Hvor dette passer ​

Lås SSH og andre tjenester ned til VPN-området 10.0.0.0/24, slik at de ikke er eksponert offentlig. Se Sikre Linux-serveren din.

Gigahost Docs

This site is currently in development.
Enter the password to continue.