Savs VPN ar WireGuard uz VPS: uzstādīšana 2026
Palaist serverī ar vienu komandu (vispirms pārbaudiet skripta saturu zemāk):
curl -sSL https://cp.lv/scripts/svoj-vpn-wireguard.sh | sudo bash…vai ar wget:
wget -qO- https://cp.lv/scripts/svoj-vpn-wireguard.sh | sudo bashSkripta saturs svoj-vpn-wireguard.sh:
#!/usr/bin/env bash
# Savs VPN uz WireGuard: serveris + pirmais klients (Ubuntu/Debian)
set -euo pipefail
WG_DIR=/etc/wireguard
SERVER_IP=$(curl -s ifconfig.me)
WAN_IF=$(ip route list default | awk '{print $5; exit}')
# 1. Instalēšana
sudo apt update && sudo apt install -y wireguard wireguard-tools qrencode
# 2. Servera un klienta atslēgas
cd "$WG_DIR"
umask 077
wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key
wg genkey | sudo tee client_private.key | wg pubkey | sudo tee client_public.key
SRV_PRIV=$(sudo cat server_private.key)
SRV_PUB=$(sudo cat server_public.key)
CLI_PRIV=$(sudo cat client_private.key)
CLI_PUB=$(sudo cat client_public.key)
# 3. Servera konfigurācija (mainīgie tiks aizvietoti)
sudo tee "$WG_DIR/wg0.conf" > /dev/null << EOF
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = ${SRV_PRIV}
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ${WAN_IF} -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ${WAN_IF} -j MASQUERADE
[Peer]
PublicKey = ${CLI_PUB}
AllowedIPs = 10.8.0.2/32
EOF
# 4. IP pārsūtīšanas ieslēgšana
echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl -p /etc/sysctl.d/99-wireguard.conf
# 5. Klienta konfigurācija
sudo tee "$WG_DIR/client.conf" > /dev/null << EOF
[Interface]
PrivateKey = ${CLI_PRIV}
Address = 10.8.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = ${SRV_PUB}
Endpoint = ${SERVER_IP}:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
EOF
# 6. Ugunsmūris un palaišana
sudo ufw allow 51820/udp || true
sudo systemctl enable --now wg-quick@wg0
sudo qrencode -t ansiutf8 < "$WG_DIR/client.conf"
echo "Gatavs: VPN pacelts, klienta konfigurācija — $WG_DIR/client.conf"
Savu VPN ar WireGuard var uzcelt 15 minūtēs: uzinstalēt pakotni, uzģenerēt atslēgu pāri, aprakstīt wg0 interfeisu uz servera, ieslēgt IP pārsūtīšanu un pievienot klientu. Zemāk — pilna komandu secība Ubuntu/Debian uz jebkura VPS.
Kāpēc tieši WireGuard
WireGuard ir iebūvēts Linux kodolā, izmanto mūsdienīgu kriptogrāfiju (Curve25519, ChaCha20) un strādā ātrāk par OpenVPN, turklāt ar daudz mazāku koda apjomu. Konfigurācija ir divi īsi faili. Personīgam VPN ar to pilnīgi pietiek.
Minimālās prasības: VPS ar 1 vCPU un 512 MB RAM, publisks IPv4, root piekļuve. VPN vajadzībām der jebkurš lētākais tarifs — šifrēšanas trafiks procesoru gandrīz neslogo.
1. solis. Instalēšana
apt update && apt upgrade -y
apt install -y wireguard wireguard-tools
2. solis. Servera atslēgu ģenerēšana
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key
cat server_private.key
cat server_public.key
umask 077 pasargā privāto atslēgu no citu lietotāju lasīšanas. Saglabājiet abas vērtības — tās būs vajadzīgas konfigurācijā.
3. solis. Servera konfigurācija
Noskaidrojiet ārējo tīkla interfeisu:
ip route list default
Parasti tas ir eth0 vai ens3. Atveriet /etc/wireguard/wg0.conf redaktorā (sudo nano /etc/wireguard/wg0.conf) un ielīmējiet saturu:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <server_private.key>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Vai izveidojiet failu uzreiz ar vienu komandu — nokopējiet un ielīmējiet konsolē (pēdiņas 'EOF' saglabā vietturus tādus, kādi tie ir):
sudo tee /etc/wireguard/wg0.conf > /dev/null << 'EOF'
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <server_private.key>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
EOF
Nomainiet eth0 uz sava interfeisa nosaukumu un ielīmējiet servera privāto atslēgu.
4. solis. IP pārsūtīšanas ieslēgšana
Bez tās serveris nepārsūtīs klientu trafiku uz internetu:
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-wireguard.conf
sysctl -p /etc/sysctl.d/99-wireguard.conf
5. solis. Klienta atslēgas un konfigurācija
Uzģenerējiet atslēgu pāri klientam:
wg genkey | tee client_private.key | wg pubkey > client_public.key
Klienta ierīcē atveriet failu client.conf redaktorā (nano client.conf) un ielīmējiet saturu:
[Interface]
PrivateKey = <client_private.key>
Address = 10.8.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = <server_public.key>
Endpoint = <jusu_VPS_IP>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Vai ierakstiet failu uzreiz ar vienu komandu (pēdiņas 'EOF' atstās vietturus nemainītus):
tee client.conf > /dev/null << 'EOF'
[Interface]
PrivateKey = <client_private.key>
Address = 10.8.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = <server_public.key>
Endpoint = <jusu_VPS_IP>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
EOF
AllowedIPs = 0.0.0.0/0 novirza visu trafiku caur VPN. PersistentKeepalive = 25 uztur savienojumu dzīvu aiz NAT.
6. solis. Klienta reģistrēšana uz servera
Pievienojiet faila /etc/wireguard/wg0.conf beigās:
[Peer]
PublicKey = <client_public.key>
AllowedIPs = 10.8.0.2/32
7. solis. Palaišana
systemctl enable --now wg-quick@wg0
systemctl status wg-quick@wg0
wg show
Atveriet portu ugunsmūrī (ja lietojat ufw):
ufw allow 51820/udp
Klienta pieslēgšana
Telefonā konfigurāciju ērti importēt ar QR kodu:
apt install -y qrencode
qrencode -t ansiutf8 < client.conf
Noskenējiet kodu WireGuard lietotnē — savienojums izveidosies automātiski.
Pārbaude
Pēc pieslēgšanās pārbaudiet ārējo IP:
curl ifconfig.me
Jāatgriež jūsu VPS IP adrese. Ja nē — pārbaudiet IP pārsūtīšanu un MASQUERADE noteikumu.
Vairāku klientu pievienošana
Katrai ierīcei vajadzīgs savs atslēgu pāris un sava IP adrese no apakštīkla. Uzģenerējiet atslēgas otrajam klientam:
cd /etc/wireguard
wg genkey | tee client2_private.key | wg pubkey > client2_public.key
Pievienojiet jaunu bloku failā /etc/wireguard/wg0.conf:
[Peer]
PublicKey = <client2_public.key>
AllowedIPs = 10.8.0.3/32
Pielietojiet izmaiņas, nepārraujot esošos savienojumus:
wg syncconf wg0 <(wg-quick strip wg0)
Tā konfigurācija tiek pārlasīta darbības laikā, un aktīvie pīri neatvienojas.
Dublēšana un atjaunošana
Visi VPN iestatījumi glabājas mapē /etc/wireguard. Saglabājiet tos drošā vietā:
tar czf wireguard-backup.tar.gz /etc/wireguard
Pārceļot uz jaunu serveri, atpakojiet arhīvu, uzinstalējiet wireguard-tools un palaidiet wg-quick@wg0 — klientiem neko mainīt nevajadzēs, ja servera IP ir saglabājies.
Pārbaude pēc pārstartēšanas
Pārliecinieties, ka interfeiss paceļas automātiski:
reboot
# pēc pieteikšanās
wg show
systemctl is-enabled wg-quick@wg0
Atbilde enabled apstiprina autopalaišanu. Ja interfeiss nav pacēlies — skatiet journalctl -u wg-quick@wg0.
Interfeisa drošība
Servera privātā atslēga ir visjutīgākais fails. Pārbaudiet tiesības:
chmod 600 /etc/wireguard/*.key /etc/wireguard/wg0.conf
Nesūtiet privātās atslēgas pa nešifrētiem kanāliem un ģenerējiet atsevišķu pāri katrai ierīcei — tad viena klienta kompromitēšana neatklāj pārējos.
Biežāk uzdotie jautājumi
Cik ierīces var pieslēgt?
Cik vien vajag. Katrai ierīcei pievienojiet atsevišķu [Peer] bloku ar unikālu AllowedIPs (10.8.0.3/32, 10.8.0.4/32 utt.).
Vai WireGuard strādā tikai pa UDP portiem? Jā, WireGuard izmanto tikai UDP. Pārliecinieties, ka interneta operators un ugunsmūris nebloķē izvēlēto portu.
Kā uzlabot DNS privātumu?
Norādiet klientā DNS = 1.1.1.1 vai uzceliet savu resolveri uz tā paša VPS.
Vai var nomainīt portu 51820?
Jā, nomainiet ListenPort servera konfigurācijā un Endpoint klientiem, un atveriet jauno portu ugunsmūrī.
Vai VPN vajadzīgs atsevišķs serveris? Atsevišķs VPS izolē VPN no citiem uzdevumiem un vienkāršo piekļuves pārvaldību. Personīgai lietošanai pietiek ar viszemāko tarifu.
Gatavi izvērst personīgo VPN? Paņemiet VPS drošībai un VPN vai pamata VPS nomu. Nav laika konfigurēšanai — palīdzēs Serveru administrēšana.