Ник | Пост | Дата |
---|---|---|
ValdikSS | Не совсем manual или how-to, скорее накопившиеся заметки, тем не менее. Маршрутизация, в общем случае, работает на уровне IP-адресов и подсетей, а не на уровне отдельных программ или доменов. Пример (для OpenVPN):
Эта команда включит маршрутизацию только адреса 8.8.8.8.
Узнать IP-адреса отдельных доменов можно консольной командой nslookup. Пример:
IPv4-адрес ya.ru — 87.250.250.242. Такой подход применим только для случаев, когда домены заранее известны (и их немного), они не меняются со временем, не используют балансировку по географическому признаку, и не меняют IP-адреса со временем (такое часто встречается у доменов за CDN). Также некоторые VPN-клиенты предоставляют собственный драйвер для перенаправления отдельных программ в VPN. Можете попробовать, например, клиент Windscribe — он позволяет загружать собственные конфигурационные файлы OpenVPN/WireGuard (не только сервиса Windscribe). Альтернативный вариант #1Поднять «умный» прокси-сервер на компьютере, который сам будет маршрутизировать трафик по доменам через VPN-интерфейс, а сам VPN не будет ничего маршрутизировать (установить маршрут по умолчанию с метрикой выше основного через провайдера). Добавьте в конфигурационный файл следующие строки в любое место файла (также на примере OpenVPN):
v2ray-route-example.json Пример конфигурации прокси-сервера v2fly, в котором через VPN маршрутизируется только Недостаток — это не VPN: нужно настраивать программы на использование прокси, будут работать только TCP и UDP (только при использовании Socks5, и не во всех программах, браузеры не поддерживают, звонки в discord, с большой вероятностью, также не заработает), и т.п. В некоторых клиентах (например, sing-box) есть возможность и маршрутизации только отдельных программ/процессов, а также присутствует режим отдельного сетевого интерфейса (tun), при использовании которого не нужно настраивать прокси в каждой из программ. Не уверен, что фильтр по программам/процессам работает в Linux (в Windows работает), но даже в режиме tun это просто прокси, с описанными выше недостатками. Чтобы прокси мог определить домен, он должен либо понимать протокол, по которому устанавливается соединение (HTTPS/QUIC, с Encrypted Client Hello работать не будет), либо выступать специальным фейковым DNS-сервером. Альтернативный вариант #2Маршрутизация «по доменам», средствами DNS-резолвера. Резолвер dnsmasq можно настроить таким образом, что при запросе определённых доменов, он получит IP-адреса, отдаст клиенту, и добавит их в ipset. Адреса из списка ipset можно маршрутизировать в VPN-интерфейс. Недостатки:
Примера настройки под рукой нет, но подобная конфигурация реализована в пакете Альтернативный вариант #3Вариация метода #2, в которой используется ремаппинг адресов вместо ipset. На VPN-сервере запущен специальный DNS-резолвер, устанавливающий отображение (соответствие, маппинг) настоящего IP-адреса домена в свободный IP-адрес большой внутренней подсети, и отдающий запрашиваемому клиенту адрес из внутренней подсети. Основное преимущество: маршрутизируются только заблокированные домены, а не все сайты на заблокированном IP-адресе. | 2024-10-10T02:31:15.295Z |
ValdikSS |
| 2024-10-10T02:44:52.099Z |
Uninstall1849 |
С переходом openwrt на nftables функционал ломали (может и починили уже), но до этого прекрасно работало “ipset=/ntc.party/ipset-to-vpn” в /etc/config/dhcp. Как варианты:
| 2024-10-10T10:20:57.012Z |