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
sudo apt update && sudo apt upgrade -ySteg 2: installer WireGuard
sudo apt install wireguard -y
wg --versionSteg 3: generer serverens nøkkelpar
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key| Fil | Bruk |
|---|---|
server_private.key | Blir på serveren. Del den aldri. |
server_public.key | Går inn i konfigurasjonen til hver klient. |
Steg 4: skriv serverkonfigurasjonen
sudo nano /etc/wireguard/wg0.conf[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 MASQUERADEErstatt <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
sudo nano /etc/sysctl.confAvkommenter eller legg til:
net.ipv4.ip_forward=1Aktiver umiddelbart:
sudo sysctl -pSteg 6: start WireGuard
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo wg showwg show viser wg0 uten peers ennå.
Steg 7: legg til en klient
Generer klientens nøkkelpar (på klientmaskinen)
wg genkey | tee client_private.key | wg pubkey > client_public.keyRegistrer klienten på serveren
Rediger /etc/wireguard/wg0.conf og legg til:
[Peer]
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.0.0.2/32Last inn på nytt:
sudo systemctl restart wg-quick@wg0Klientens konfigurasjonsfil
Opprett wg0.conf på klientmaskinen:
[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 = 25Sett inn de faktiske verdiene:
| Plassholder | Verdi |
|---|---|
<CLIENT_PRIVATE_KEY> | Innholdet i client_private.key (klientsiden). |
<SERVER_PUBLIC_KEY> | Innholdet i server_public.key (serversiden). |
YOUR_SERVER_PUBLIC_IP | Gigahost-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:
sudo ufw allow 51820/udpFor firewalld:
sudo firewall-cmd --permanent --add-port=51820/udp
sudo firewall-cmd --reloadTest 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:
curl ifconfig.meDen 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.

