Pull to refresh

Comments 52

Я пробовал такую схему. У нее есть неприятная особенность - при постоянном VPN могут оказаться недоступными некоторые российские ресурсы. Чтобы этого избежать нужно разносить маршруты, а это нетривиальная задача, но решаемая.

Вдогонку самому себе. Решал так: VDS с Mikrotik CHR внутри РФ, он рулит маршрутизацией и, собственно, VPN-сервером. Второй VDS уже у иностранного провайдера, чтобы выпускать только нужный траффик, остальной ходит внутри РФ. Списки IP, отдельные зоны, AS обновляются скриптом на CHR. В итоге роутер можно точно так же перемещать с собой куда угодно, но нет проблемы с отечественными ресурсами.

Списки IP, отдельные зоны, AS обновляются скриптом на CHR

откуда берёте списки? я использую ip2location, недавно наткнулся, что для ipv6 адреса ya.ru ошибочно определяется финляндия.

а насколько соответствую там данные действительности?
мне кажется, никто не мешает использовать выданный блок в другой стране

Это один из 5 Regional Internet Registries, соответственно мы видим в какую страну выдавались адреса. Владельцы AS должны поддерживать актуальные данные в личном кабинете у RIR но это делают не все.

Да, к сожалению, интернет становится все более сегментированным, и после эйфории от полученного результата, я заметил, что несколько сайтов не открылись. Но я решил проблему простой сменой VPS провайдера. Идея с маршрутизацией хорошая и тоже мне приходила в голову, но хотелось простое решение.

Чтобы этого избежать нужно разносить маршруты, а это нетривиальная задача, но решаемая.

В OpenWrt нажмите кнопочку vpn policy routing, и впишите в список все сайты, к которым нужен прямой доступ.

Не особо сложно, на самом деле. Делал маршрутизацию по белому листу, т.к. нет смысла весь трафик перегонять через vpn. https://github.com/prony5/antizapret

При желании списки что куда роутить можно брать по BGP
https://habr.com/ru/post/594551/
https://habr.com/ru/post/549282/
у https://antifilter.network/bgp есть не только списки заблокированного и около но и например списки российских адресов.
Другое дело что это не решает проблему с условными двумя сайтами который используют cloudflare, и при этом один закрылся от России а второй от всего кроме России, и при этом их обслуживает ближайшая к пользователю нода cloudflare с одним и тем же IP. Тут уж только прикручивать дополнительно что-то вроде ControlD

Я скачал базу geoip для РФ и поставил на OpenWRT модуль geoip для iptables. После чего policy routing'ом отправляю весь российский трафик в VPN, а зарубежный мимо (я вне РФ). Работает на 5 баллов! На 22ом OpenWRT перешли на nftables, там это ещё проще по идее.

Не поделитесь ссылками на инструкции?

Нету инструкции, всё делалось просто из понимания как это работает. Видимо, надо написать, а то вы уже не первый, кто спрашивает. Надо только nftables изучить.

Да, было бы не плохо.

Нашел вот это: https://wiki.nftables.org/wiki-nftables/index.php/GeoIP_matching#dbip.csv

В принципе, стало понятно, как помечать трафик.

Не совсем понимаю, как использовать кастомный маршрут на основе метки. Может подскажете эту часть?

Это называется policy routing. Раньше делалось только из консоли, но вроде бы в новом OpenWrt есть пакет для luci. Суть в том, что нужно создать отдельную таблицу маршрутизации и политику, которая будет роутить по ней в случае наличия метки. Не забудьте прописать в ней отдельный маршрут через интернет до вашего VPN-сервера, так как он тоже будет помечен скорее всего. Иначе он будет роутить сам в себя - пакеты WireGuard будут пытаться записаться в туннель же WireGuard.

  • Берем любой кинетик

  • Настраиваем в веб подключение к практически любому мыслимому VPN

  • Создаем политику только с этим подключением

  • Кидаем в нее мышкой сегменты и/или устройства

  • ...

  • PROFIT

К сожалению, роутера, который бы cодержал vpn клиента из коробки типа Keenetic не было, хотелось обойтись тем, что есть.

Ваш Asus и так умеет быть vpn-клиентом, просто в нём нет именно wireguard клиента.

Именно vpn клиент? Или подключение по pptp, l2tp протоколам к провайдеру?

Ccылка, которую вы привели, касается роутера ASUS RT-AX88U c прошивкой ASUSWRT, которая является модифицированной прошивкой Tomato , но у меня ASUS RT-N56U v1, и на него, на сколько я знаю, такой прошивки ASUSWRT нет.

Кинетик этот тот же openwrt для домохозяек. Автор написал (пусть и весьма неполный) гайд о том, как сделать все, не покупая новый роутер. Вы в худших традициях школоты решили потроллить автора тем, что знаете рецепт для супер частного случая.

Одно не понятно, за что хабр лайкает такое?

P. S. дочитал каменты до конца, понял, что вы похоже работаете в кинетике. Вопросов больше не имею

Чуть укоротить можно. Покупаем keenetic. Там весь зоопарк из коробки, включая wireguard. Кнопками указываем кому ломиться через впн а кому нет. Либо же вообще конкретные адреса.

Плюсую за Keenetic. Я, к примеру, так Яндекс-станции за границей через домашний VPN в РФ подключаю, чтобы обойти региональные ограничения Кинопоиска.

Kinopoisk при таком подключении не ругается на vpn? VPN на каком хостинге настраивали?

Нет, не ругается, но VPN поднят не на хостинге, это моя домашняя сеть в РФ. VPN/VPS провайдера действительно несложно вычислить по IP.

Не так давно, кстати, делал под заказ один проект для сервиса, где клиенты-провайдеры подключаются к серверу-посреднику, а последний предоставляет клиентам-пользователям ходить в сеть используя адреса клиентов-провайдеров. Причем пакеты от сервера-посредника идут напрямую со спуфингом адреса-источника (меняется на адрес клиента-провайдера) для уменьшения RTT, соответственно целевой сервер отвечает на этот адрес, ответ идет клиенту-провайдеру и от него внутри UDP тоннеля доставляется серверу-посреднику, который уже отвечает клиенту-пользователю. Удивительно, но работало и целевой сайт видел адрес клиента-провайдера. Правда с сайтами на CDN хостингах возникали сложности, похоже такая схема что-то ломала в маршрутизации.

Я тоже до недавнего времени пользовался такой схемой, но примерно месяца два назад КиноПоиск начал ругается на то что у меня включен vpn и скрывает весь контент. Не встречались с таким?

Пока нет. И Яндекс-станция и Кинопоиск на iPad работают из Испании через домашний VPN в полном обьеме.

А у них случайно… virtual appliance(образ под VMware/etc) нет, пусть даже платного?

А че сразу циску не покупаем? Че вы на хабре как лох и нищебро?

Ни у кинетика ни на openWrt(вроде как) нет удобной фишки как у pfSense: добавить роут до хостов через выбранный туннель, а не через ip. Тогда вообще получается очень удобно, а то некоторые запрещенные ресурсы имеют привычку менять/добавлять адреса, и по этой причине приходиться лазить на роутер и добавлять записи. Для масс-ресурсов типа facebook/instagram я выгрузил адреса по AS и этого было достаточно.

Вообще есть, но это работает не на всех подключениях. Скажем на Ethernet нельзя просто выплюнуть в интерфейс пакет, ему нужен mac роутера. Потому там нужен шлюз. Для PPP/OVPN TUN/Wireguard можно просто пихать в интерфейс, а удаленный пир сам дальше разберется - с такими соединениями указание "только интерфейса" по идее работает.

У Микотика тут некоторые сложности если надо по маске работать — например images.wix.com в туннель или хотя бы .wix.com. Нужно L7 фильтрацию настраивать.

*.wix.com требуют фильтрацию или прокси, да. Но отправить в туннель всё относящееся к домену images.wix.com — не проблема и работает на L3 с высокой скоростью.

Моя ошибка с неучетом работы хабра-парсера. Читать images-*.wix.com (после images- и перед .wix.com — звездочка чтобы накрывало images-1.wix.com, images-abcd.wix.com и так далее).
Просто по домену то да — работает.

А какими VPS пользуетесь вы? Что бы не дорого, не было проблем с оплатой, не обязательно рубли хотя бы USDT 😏, нормальная скорость и нет проблем с доступом к сайтам?

Я использовал VPS, где оплата в евро или долларах.

Oracle free tier vps, бесплатно :). Но не знаю как из РФ и с рублями.

Нет Оракла в Росиии уже как с полгода. Было удобно, но с марта для нас он является тыквой.

Там нужно привязать карту зарубежную. На этом большинство местных любителей купить кинетик для решения этой задачи сломается)))

К комментам о том, что на кинетиках это вообще не проблема, да, не проблема, но! Wireguard в кинетиках (с родными прошивками) не поддерживает ipv6.

Работа по внедрению IPv6 сейчас ведется во всю мощь во всех направлениях, stay tuned.

Рассчитываю на это, но пока в отношении wireguard не вижу даже зачатков этой работы даже в 3.9b1 по сравнению с актуальной на данный момент стабильной 3.8, как впрочем и в сравнении с несколькими предыдущими стабильными релизами keenetic os. Насколько я знаю с openvpn в кинетиках та же ситуация.

Например, я пробовал использовать OpenVPN, но хочу сразу сказать, меня не устроила скорость получаемого интернета, она была в 2-3 раза ниже, чем при использовании WireGuard.

Можете, пожалуйста, уточнить какая именно скорость у вас через WG? Я настраивал аналогичным образом на Asus RT-N16 и скорость меня огорчила весьма и весьма - около 10 Мбит/с. Я, честно говоря, надеялся упереться в классический канал 100Мбит/с.

Asus RT-N16

Broadcom BCM4716 chip rev 1 (MIPS 74K V4.0 480 MHz)


странно от него ожидать многого. даже у mt7621 (двухядерный мипс с частотой под гигагерц) есть проблемы с шифрацией/дешифрацией потока 100 мегабит.


если вам и правда нужен vpn с такими скоростями, смотрите на роутеры на arm, например у tp-link ax20 стоит четырёхядерный процессор с приличной тактовой частотой (однако, нет поддержки openwrt, увы)

На скорость интернета оказывают следующие факторы: загруженность канала wifi другими точками доступа, качество wifi сигнала, скорость передачи данных от вас к vps серверу( провайдер может ограничивать скорость траффика за границу), производительностьность сервера vps, какую скорость предоставляет провайдер vps к интернету, с какой скоростью отдает или принимает данные конкретный хост сети, к которому вы обращаетесь. По wifi, в комнате с роутером, для роутера Asus RT N56U скорость с использованием Wireguard интерфейса у меня составила 15-17 мегабит/c. При использовании open vpn на том же самом роутере она была 5-6 мегабит/c. Еще я устанавливал OpenWrt на Raspberry Pi 4, там я добился скорости 85-90 мегабит/c. Из-за чего сделал вывод, что у Asus RT-N56U слабовато железо. У меня есть статья на хабре как это сделать.

Спасибо, все получилось по этой схеме.. Скорость через Asus rt-ac51u около 20 мбит/с. Весь трафик пускает через ВПН. Вопрос: Asus у меня так же идет подопытным в другой подсети (192.168.1.1). Главный маршрутизатор четырехядерный TP-Link ER605 в подсети (192.168.0.1). Чтобы такого прописать в TP-Link, чтобы например в инстаграм выходил через Asus, а остальной трафик шел как обычно, без VPN? Добавил Static Route (IP Instagram) в TP-Link, но все равно идет через шлюз TP-Link'a а не Asusa ;(

Если я правильно Вас понял, то прописывать роутинг Вам нужно в Asuse, а не ТP-Linke.

Sign up to leave a comment.

Articles