Інструкція

WireGuard удома: приватний доступ до сервісів

Налаштуйте VPN до домашньої мережі, DDNS, маршрути й перевірку доступу з телефона.

Перевірка джерела:

VPN підходить для власних пристроїв і приватних панелей: Proxmox, NAS, SSH або Pi-hole. Кожному пристрою потрібна окрема конфігурація. WireGuard не публікує вебзастосунки для людей, у яких немає VPN-клієнта.

Де розмістити сервер

На роутері з підтримкою WireGuard, постійно ввімкненому Linux-пристрої або окремому контейнері. Потрібна доступна зовнішня адреса; за CGNAT знадобиться інша топологія з доступним вузлом або відповідний сервіс. Не вважайте DDNS способом обходу CGNAT.

1. Підготуйте сервер

Створіть ключ сервера й окремі ключі клієнтів. Виберіть VPN-підмережу, яка не перетинається з домашньою та типовими мережами клієнтів. Увімкніть маршрутизацію і налаштуйте firewall лише для потрібних напрямків. Для кожного клієнта задайте окрему тунельну адресу. Приватні ключі не передавайте іншим користувачам.

2. Порт і DDNS

Якщо сервер стоїть за роутером, перенаправте його UDP-порт, наприклад 51820, на зарезервовану LAN-адресу. На роутері із власним WireGuard потрібне правило вхідного firewall, а не перенаправлення на інший пристрій. DDNS підтримує адресу home.yourname.uk.app.

3. Клієнт

Укажіть публічний ключ сервера, Endpoint = home.yourname.uk.app:51820, тунельну адресу та потрібні AllowedIPs. Для доступу лише додому достатньо домашньої й VPN-підмереж; маршрут 0.0.0.0/0 спрямовує весь IPv4-трафік через VPN. DNS має бути доступний у вибраній топології.

4. Перевірка й зміна адреси

Вимкніть Wi-Fi телефона, увімкніть тунель, перевірте handshake та відкриття локального сервісу. Після зміни зовнішньої IP DDNS оновлює DNS, але активний клієнт може потребувати повторного визначення Endpoint або перезапуску тунелю. Звичайний TCP port checker не перевіряє WireGuard UDP.

HTTPS усередині VPN

Ім’я .app потребує чинного сертифіката й у приватній мережі. A-запис може вказувати на LAN-адресу; сертифікат отримуйте через DNS-01. Якщо локальний DNS блокує приватну відповідь, додайте вузький виняток DNS rebinding для вашої зони.

Приклади конфігурації

Замініть умовні значення, інтерфейси й порти на власні. Приклади можуть стосуватися різних версій — не виконуйте несумісні варіанти разом. Не публікуйте справжні токени або приватні ключі.

sudo -i                       # the rest of this guide runs as root
apt update
apt install wireguard iptables qrencode

# keys for the server and for your first device (a phone)
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
wg genkey | tee phone.key | wg pubkey > phone.pub
cat server.pub phone.pub
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <contents of server.key>
# let VPN clients reach the LAN, and hide them behind this machine's LAN address
PostUp = sysctl -w net.ipv4.ip_forward=1; 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

[Peer]
# phone
PublicKey = <contents of phone.pub>
AllowedIPs = 10.8.0.2/32
chmod 600 /etc/wireguard/wg0.conf
systemctl enable --now wg-quick@wg0
wg show
[Interface]
Address = 10.8.0.2/32
PrivateKey = <contents of phone.key>
# optional: use your Pi-hole or router for DNS while connected
DNS = 192.168.1.2

[Peer]
PublicKey = <contents of server.pub>
Endpoint = home.yourname.uk.app:51820
# only home traffic goes through the tunnel ("split tunnel")
AllowedIPs = 10.8.0.0/24, 192.168.1.0/24
PersistentKeepalive = 25
qrencode -t ansiutf8 < /etc/wireguard/phone.conf
shred -u /etc/wireguard/phone.key /etc/wireguard/phone.conf   # once scanned

Підсумкова перевірка

Тестуйте через мобільну мережу поза домашнім Wi-Fi. Окремо перевірте DNS, потрібний порт, чинний HTTPS-сертифікат та вхід у застосунок. Залишайте адмінпанелі приватними, встановлюйте оновлення й перевіряйте відновлення резервних копій. Контролюйте firewall IPv6 разом з IPv4. Успішний тест порту не є аудитом безпеки.

Ця локалізована редакція стисло викладає вихідну інструкцію. Команди зберігають оригінальний синтаксис. Для своєї версії звіряйтеся з документацією виробника за посиланнями.

Джерела та документація

Партнери