Wireguard передать реальный IP на DNS-сервер

У меня есть собственный DNS-сервер, который выполняет аутентификацию пользователей (на основе IP-адреса, поскольку у нас нет другого пути). Проблема в том, что я не могу использовать его на мобильных устройствах (кроме как по Wi-Fi), потому что вы не можете установить собственный DNS-сервер в мобильном интернете.

Мое решение этой проблемы - также создать сервер Wireguard, который использует DNS-сервер. Я подключаюсь к VPN и указываю DNSServer в конфигурации vpn, чтобы он был моим DNS-сервером для этого подключения. Все работает, но мой DNS-сервер получает запросы от локальных клиентов (как и ожидалось), таких как 10.0.20.3, Есть ли способ или чудо config/iptables, которое я могу использовать, чтобы быть прозрачным для DNS-сервера и передавать реальный / публичный IP-адрес?

Wireguard сервер cfg:

[Interface]
PrivateKey = xxXXxx
ListenPort = 51820
Address = 10.0.0.1/24
SaveConfig = false
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

[Peer]
PublicKey = yyYYyy
AllowedIPs = 10.0.0.2/24

0 ответов

Другие вопросы по тегам