У меня есть маршрутизатор 4G с подключением OpenVPN к VPS.
Когда я отправляю весь интернет-трафик через VPS, пропускная способность слишком низкая, чтобы ее можно было использовать, но когда я ничего не маршрутизирую через VPN, мой интернет-провайдер ограничивает количество DNS-запросов. Поэтому я хотел бы передавать только порт 53 через VPN, а остальной трафик — напрямую через 4G-соединение.
Думаю, это можно сделать с помощью IPTABLES, но я не могу его найти... Буду признателен за любую помощь, спасибо!
решение1
"Обычная нормальная" маршрутизация осуществляется через адрес назначения. Вы можете решить использовать только DNS Google:
- IPv4: 8.8.8.8, 8.8.4.4
- IPv6: 2001:4860:4860::8888, 2001:4860:4860::8844
И затем, например, введите следующие команды для ipv4:
ip route add 8.8.8.8/32 via 172.16.1.1 dev tun0
ip route add 8.8.4.4/32 via 172.16.1.1 dev tun0
Независимо от порта назначения сетевой трафик на 8.8.8.8 и 8.8.4.4 будет отправляться через ваш VPN, предполагая, что 172.16.1.1 — ваш туннельный шлюз, а tun0 — ваше туннельное устройство.
Обратите внимание, что выдача команд маршрутизации для ipv6 немного сложнее, но вам это может и не понадобиться.
В качестве альтернативы можно использовать маршрутизацию политик (ip rule add) для маршрутизации на основе меток брандмауэра (fwmark в iptables). Но это немного сложнее в настройке, и это может привести к перегрузке вашего маршрутизатора.