Из-за чего не работает VPN?

Ссылка скопирована
1 ответ

Сейчас ситуация такая: я весь день мучаюсь с настройкой VPN и, похоже, сам уже не справляюсь. У меня на сервере (Ubuntu) поднят OpenVPN и WireGuard. Клиенты OpenVPN подключаются — сертификаты рабочие, интерфейс на клиенте поднимается, адрес из подсети приходит (например, 10.8.0.6), но дальше тупик: пинг до шлюза 10.8.0.1 не проходит, до 8.8.8.8 тоже. DNS-запросы висят. Включал net.ipv4.ip_forward=1, правил iptables, добавлял MASQUERADE, проверял разные варианты MTU/mssfix, push redirect-gateway и block-outside-dns — без толку.

По вводным: потом поставил WireGuard, интерфейс wg0 поднялся, сервер получил 10.0.0.1, клиент — 10.0.0.2. Но и здесь то же самое: соединение есть, а трафика в интернет нет. Проверял вариант «OpenVPN поверх WireGuard» (отдельный конфиг server-wg.conf на 1195 порту), клиент noex5 цепляется, но зависает на стадии «Connecting».

Сейчас ситуация такая: важно: на этом сервере уже работают другие OpenVPN-конфиги, поэтому сломать их нельзя. Хочу просто сделать новый конфиг (например, noex5), который будет работать из России и давать выход через Германию, не трогая остальное.

По вводным: может ли кто-то подсказать, как правильно настроить маршрутизацию/NAT в такой связке, чтобы:
По вводным: клиент пинговал серверный шлюз (10.8.0.1 или 10.0.0.1).
По вводным: был нормальный выход в интернет через сервер.
Сейчас ситуация такая: остальные OpenVPN-конфиги не пострадали.

По вводным: буду благодарен за конкретные шаги или рабочий пример конфигов.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Mobile-редакция Ответ

Если OpenVPN и WireGuard оба подключаются, получают адреса, но трафик не ходит даже до VPN-шлюза, почти наверняка проблема не в сертификатах и не в DNS, а в маршрутизации, firewall или конфликте сетей/интерфейсов на сервере. Нужно диагностировать по слоям: интерфейс поднялся, пакеты приходят на сервер, сервер отвечает, NAT работает.

На сервере сначала проверьте адреса и маршруты:

ip a
ip route
sysctl net.ipv4.ip_forward
iptables -S
iptables -t nat -S
ufw status verbose

ip a ip route sysctl net.ipv4.ip_forward iptables -S iptables -t nat -S ufw status verbose

Для OpenVPN с подсетью 10.8.0.0/24 и внешним интерфейсом eth0 базово должно быть:

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT

sysctl -w net.ipv4.ip_forward=1 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Для WireGuard аналогично, только интерфейс wg0 и подсеть, например 10.0.0.0/24:

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -i wg0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o wg0 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE iptables -A FORWARD -i wg0 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o wg0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Замените eth0 на реальный внешний интерфейс из ip route. Частая ошибка — NAT повесили на неправильный интерфейс, например ens3/venet0 вместо eth0.

Если клиент не пингует даже 10.8.0.1 или 10.0.0.1, запустите tcpdump:

tcpdump -ni tun0 icmp
tcpdump -ni wg0 icmp

tcpdump -ni tun0 icmp tcpdump -ni wg0 icmp

Если пакеты от клиента не приходят — проблема в клиентском маршруте, AllowedIPs, конфиге OpenVPN/WireGuard или firewall до интерфейса. Если приходят, но ответа нет — локальный firewall сервера. Если ответ уходит, но клиент не видит — обратный маршрут или firewall клиента.

Также проверьте конфликт подсетей. Если у клиента локальная сеть тоже 10.0.0.0/24 или 10.8.0.0/24, маршруты будут ломаться. Для VPN лучше брать менее типичную подсеть, например 10.77.8.0/24. И не запускайте OpenVPN поверх WireGuard, пока базовая схема не заработала отдельно: это усложняет диагностику и маскирует простую ошибку NAT/FORWARD.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно