Pull to refresh

Comments 84

столько мороки ради обхода блокировок?
ну серьезно, это самая длинная статья\инструкция которую я видел на Хабре за последние месяцы

нет предела совершенству )) Очевидно, что в реальной жизни 100% покрытие списка РКН мало кому нужно... так это всё просто из разряда "чтобы было". Лично у меня поднят wireguard туннель до датацентра, настроенный мышкой в интерфейсе кинетика и введен десяток статических маршрутов для подсетей на это соединение для нужных мне социалок. На самом деле ip адреса их меняются не так уж и часто. А в те крайне редкие случаи, когда надо зайти куда-то еще - просто опять же в пару кликов я повышаю приоритет vpn канала на пропуск всего траффика для устроства и всё. В кинетике это делается опять же из веба интуитивно. В общем как обычно: для покрытия 90% потребностей достаточно всего лишь 10% усилий. А нужны ли оставшиеся 10% - выбор каждого.

да у меня самого Keenetic Giga и тоже wireguard)
кстати раз уж зашел разговор, кто-нибудь сталкивался что клиенты внутри сети очень плохо работают с Wireguard VPN (соединение тупит частенько), а если включить на роутере - все летает?
в интернетах советуют поставить одинаковый MTU на роутере и клиенте - чет не помогло

сегодня осенило
использовал на роутере и ноутбуке один и тот же peer конфиг, поэтому каждый раз когда роутер делал handshake - коннект на ноуте обрывался

Wireguard банится по протоколу без проблем, на сколько я знаю, а shadowsocks хрен забанишь. Да и ещё... Все говорят про это, но инструкций не видел. Или хотя бы список ip адресов). Я лично считаю, что нужно подготовиться со всех сторон, так что не имею ничего против Вашего подхода. В этой статье тоже указано вскользь о Wireguard и других стандартных протоколов Keenetic.

Shadowsocks отлично банится, особенно без плагинов. Если стоит цель использовать что-то, что банить будут очень долго, я бы взял NaiveProxy.

Инструкция состоит из 2х частей, причём первая из них (основная) занимает максимум треть всей статьи

Не очень понимаю, зачем так сложно. Чем отличается от сущствующих решений? Например:

  • поднять контейнер antizapret-vpn у себя на виртуальном сервере

  • Скачать сгенерированный конфиг openvpn клиента

  • Добавить конфиг на роутер и включить openvpn клиент на нем

  • Профит.

Вот на первом шаге и происходит проблемы у большинства людей, так как виртуальный сервер не у всех есть

Ну он стоит 200 руб в месяц. Можно даже в РФ покупать, так как некоторые хостинги не фильтруют трафик.

Настраивается тоже просто:

  1. Указать ключ или root пароль

  2. Зайти и поставить докер

  3. См шаги из первого сообщения...

Делов минут на несколько минут. И появится поддержка многих роутеров, а не только kinetic.

Да, но тут халява и плюс хорошая инструкция

А там тор используется в качестве канала обхода? В таком случае скорость будет не очень.
А раз скорость и приватность не важна, то можно использовать публичный бесплаптный antizapret-vpn :) Там еще проще: скачать ovpn файлик с офф сайта и запустить openvpn клиент в роутере...

Гонять трафик через любой vpn это падение скорости. Да тор более медленный, но это как один из вариантом не из коробки keenetic. Про openvpn тоже падение скорости из-за изначального обращение к антизапрет. Здесь же предлагается на уровне роутера по доменным именам обращаться через vpn, остальное будет идти через обычный канал. Кроме того, есть сайты, которые роспозорнадзор не банил, а они сами отказываются работать в России (тот же тимвьювер, описанный в статье, либо сервера майкрософт, не желающие активировать лицензии). И если будут банить vpnы в нашей стране, то начнут с протоколов openvpn, wireguard и сервисов типа антизапрет и что будет делать этот антизапрет пока не ясно

Даа, часто пишут "Ну он стоит 200 руб в месяц". Но в реалиях ничего подобного не наблюдается, при внешнем хостинге.

Вот например приличный хостинг. Несмотря на расположение в РФ все работает. Для пары контейнеров - ресурсов вполне достаточно.

Спасибо за инфу, но "при внешнем хостинге"...

Пустой пароль у root на роутере — это нормально?

Не совсем понятно о чём Вы? Пароль keenetic у рута entware

Я про этот кусочек инструкции:


Вводим логин «root» (без кавычек), нажимаем Enter, пароль «keenetic» (также без кавычек) (при вводе пароля курсор не двигается – это нормально), также Enter. Должно отобразиться

Как я понимаю, мы подключаемся через Putty к роутеру и меняем пароль рута на пустой.


  1. Я подозреваю, он нужен чтобы потом какая-то автоматика поставила на роутер что-то там. Что именно — непонятно, почему нельзя задавать пароль — тоже неясно.
  2. Дальше по инструкции я не увидел, чтобы пароль менялся. Получается, есть backdoor к моему роутеру? (Для меня это темный лес, если ошибаюсь — поправьте)
  3. А если я после выполнения всех шагов инструкции таки поставлю пароль на рута — будет все работать или он так и должен оставаться пустым все время?

Повторюсь, для меня настройка роутера через прошивки и удаленно — темный лес. Возможно, я что-то не так понял — было бы здорово если вы объясните (и в идеале доработаете статью).
На моем FT-AIR-DUO-G портов USB вроде нет, а значит мне придется искать альтернативные пути. Для этого хорошо бы разобраться, как работает ваше решение :-)

Entware при развёртывании создаёт пользователя root с паролем keenetic.

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

Лучше бы было просто дать ссылку на официальную инструкцию, а не отводить половину статьи под описание того, как развернуть Entware.

Получается, есть backdoor к моему роутеру?
Файерволл с настройками по умолчанию не разрешит доступ из Интернета (из WAN). Из LAN доступ будет, да.
Всё это (как и упомянутый выше Antizapret) не устраняет ряд неудобств:
— всё так же не работает протокол HTTP/3 на зарубежные направления (да, это можно решить с помощью zapret, но его настройка и подбор параметров это отдельный геморрой, я через это успешно прошёл и не рекомендую).
— всё так же вы будете сталкиваться с краткосрочными перебоями, описанными в статье «В России сохраняются проблемы с доступностью сайтов, но никто их не замечает». Вносить домены в список в этом случае бесполезно — проблемный IP-адрес через какое-то время уйдет другому сервису. Сидеть и вычислять эти проблемные IP — а нафиг так жить? Я в интернет захожу не для того, чтобы выяснять, какую ещё пачку адресов Cloudflare сегодня вредители из Роскомнадзора заблокировали.

Единственный способ полноценно пользоваться интернетом в России, не сталкиваясь с блокировками Роскомнадзора совсем никак — пустить весь трафик через зарубежный VPN. В этом случае, правда, вы можете столкнуться с российскими ресурсами, которые к себе не пускают с диапазонов хостеров (Авито, Википедия на редактирование) или с зарубежных адресов (всякие Госуслуги и прочие объекты «критической инфраструктуры»), но первых очень мало, а что до вторых — то война не вечна, и это пройдет.

В Вашем посте, безусловно, есть доля истины. Тогда нужно будет перенастроить этот скрипт, чтобы на адреса из списка заходить напрямую, а всё остальное через vpn. Кроме того, в теории, если отыскать в интернете список ip адресов для cloudflare, либо других сервисов, которые заблокированы (доп. адреса facebooktwitterinstagram, а если ещё и тытрубу заблокируют?), то их можно будет обновлять на роутере в автоматическом режиме, подставляя адреса в нужный txt файл и запуская скрипт обновления. Уверен, что найдутся энтузиасты, которые это провернут. Да, кстати, весь трафик через vpn? Тогда про торренты можно забыть, даже если поставить свою vds, так как в Европе с этим строго

всё так же не работает протокол HTTP/3

в zapret есть инструмент обхода блокировки QUIC/HTTP/3, он работает.

подбор параметров это отдельный геморрой

там существует инструмент blockcheck.sh который сам определит нужные параметры в 99% случаев.

Есть же КВАС, смысл делать это руками уже отпал (если, конечно, не экзотические настройки).

1) настройка Кваса примерно аналогично моей, но в моём случае каждый может посмотреть скрипты и понять что они делают. Квас не чёрный ящик, конечно, но всё-таки боле-мене закрытый пакет без подробной информации о внутренних особенностях пакета

2) списки обхода в моём случае можно изменять через телеграм-бот. Развитие функционала тут также возможно за счёт получения информации о новых списках разблокировок с гита (или другого внешнего сайта)

3) обновление мостов и ключей происходят в полуавтоматическом режиме (с помощью одной кнопки в телеграм-боте)

4) не требуется полное удаление пакета даже в случае обновления пакета, т.к. вся настройка хранится либо в боте, либо на гите, которые при желании также можно масштабировать

Добрый день. Что-то не получается. Выдает ошибку.

telethon.errors.rpcerrorlist.PeerIdInvalidError: An invalid Peer was used. Make sure to pass the right peer type and that the value is valid (for instance, bots cannot start conversations) (caused by SendMessageRequest)

думаю проблема в настройках бота. Нужно вставить свои настройки https://my.telegram.org/apps вот с этого сайта вот в эти переменные "appapiid, appapihash" внутри файла bot.py. Посмотрите ещё раз часть статьи по настройке бота, а также комментарии в файле bot.py

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

Да, бот запустится, но будет выдавать ошибки при получении ключей shadowsocks и мостов tor. Так ведь? Например при изначальной установке. Проверьте ещё раз указанные переменные. В коде они должны выглядеть примерно так:

appapiid='123456' (в моём случае 6, у Вас не знаю)

appapihash='726fd29fcedea79a477887db73aac9d6' (здесь 32 символа скорее всего md5 внутри)

И на какой строке ошибку выдаёт?

Package tor (0.4.6.9-1) installed in root is up to date.
Package tor-geoip (0.4.6.9-1) installed in root is up to date.
Package bind-dig (9.18.1-2) installed in root is up to date.
Package cron (4.1-4) installed in root is up to date.
Package dnsmasq-full (2.86-1) installed in root is up to date.
Package ipset (7.15-2) installed in root is up to date.
Package iptables (1.4.21-3) installed in root is up to date.
Package obfs4 (0.0.13-1) installed in root is up to date.
Package shadowsocks-libev-ss-redir (3.3.5-4) installed in root is up to date.
Package shadowsocks-libev-config (3.3.5-4) installed in root is up to date.
ipset v7.15: Set cannot be created: set with the same name already exists
mkdir: can't create directory '/opt/etc/unblock/': File exists
Traceback (most recent call last):
File "/opt/etc/bot.py", line 480, in
bot.polling(none_stop=True)
File "/opt/lib/python3.10/site-packages/telebot/init.py", line 621, in pol ling
self.__threaded_polling(non_stop=non_stop, interval=interval, timeout=timeou t, long_polling_timeout=long_polling_timeout,
File "/opt/lib/python3.10/site-packages/telebot/init.py", line 695, in __t hreaded_polling
raise e
File "/opt/lib/python3.10/site-packages/telebot/init.py", line 651, in __t hreaded_polling
self.worker_pool.raise_exceptions()
File "/opt/lib/python3.10/site-packages/telebot/util.py", line 147, in raise_e xceptions
raise self.exception_info
File "/opt/lib/python3.10/site-packages/telebot/util.py", line 93, in run
task(*args, **kwargs)
File "/opt/etc/bot.py", line 318, in bot_message
shadowsocks()
File "/opt/etc/bot.py", line 427, in shadowsocks
client.send_message('hlvpnbot', 'Хочу ключ')
File "/opt/lib/python3.10/site-packages/telethon/sync.py", line 39, in syncifi ed
return loop.run_until_complete(coro)
File "/opt/lib/python3.10/asyncio/base_events.py", line 646, in run_until_comp lete
File "/opt/lib/python3.10/site-packages/telethon/client/messages.py", line 872 , in send_message
result = await self(request)
File "/opt/lib/python3.10/site-packages/telethon/client/users.py", line 30, in call
return await self._call(self._sender, request, ordered=ordered)
File "/opt/lib/python3.10/site-packages/telethon/client/users.py", line 84, in _call
result = await future
telethon.errors.rpcerrorlist.PeerIdInvalidError: An invalid Peer was used. Make sure to pass the right peer type and that the value is valid (for instance, bots cannot start conversations) (caused by SendMessageRequest)
~ #

Это последние строки. На этом бот зависает.

427 строка это как раз получение ключа shadowsocks, которая начинается с отправки сообщения в телеграм-бота. Написал в ЛС, чтоб не плодить тут ошибки, как исправим - сообщу

В общем, с грехом пополам решили проблему, установив ключ shadowsocks вручную (во второй части статьи написано как это сделать). Странно что получение мостов тор отрабатывает нормально, хотя сделаны по тому же принципу. Для тех у кого будет та же ошибка - закомментируйте строки (поставить решётку в начале), которые начинаются с "shadowsocks()". Их 2 штуки, для установки можно закомментировать только вторую. Тогда установка пройдёт успешно

Проверьте правила для unblockvpn (на сочетание PREROUTING с -o и OUTPUT с MASQUERADE).

Ещё можно уменьшить регулярные выражения, например вместо

[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}

использовать:

([0-9]{1,3}\.){3}[0-9]{1,3}

или

([0-9]{1,3}\.){3}.{1,3}

С регулярками согласен, никогда из не любил) а вот по 1му пункту недопонял...

Вот результат выполнения ваших правил iptables:

~ # iptables -I PREROUTING -w -t nat -i br0 -p tcp -m set --match-set unblockvpn dst -j MASQUERADE -o ppp1
iptables v1.4.21: Can't use -o with PREROUTING

Try `iptables -h' or 'iptables --help' for more information.

~ # iptables -t nat -A OUTPUT -p tcp -m set --match-set unblockvpn dst -j MASQUERADE -o ppp1
iptables: Invalid argument. Run `dmesg' for more information.

dmesg: x_tables: ip_tables: MASQUERADE target: used from hooks OUTPUT, but only usable from POSTROUTING

будет гораздо проще ровно до того момента, пока работает этот антизапрет и вообще протокол openvpn. Shadowsocks не заблокировать, ибо он создан для обхода блокировок, а не просто для создания vpn

Всё снес, отформатировал. Установил заново. Заработало! Надо читать внимательно инструкцию))) Спасибо автору!

Добрый вечер всем. У меня почему то не пускает в рут по паролю "keenetic". Вроде репазиторий раньше никогда не ставил, пароль не менял...где можно посмотреть какой пароль назначен?

Проверьте порт подключения, быть может не под ssh подключаетесь, а по telnet. https://help.keenetic.com/hc/ru/articles/360021214160-Установка-системы-пакетов-репозитория-Entware-на-USB-накопитель вот по идее основная инструкция на этот счёт. Ну и на всякий: keenetic без кавычек)

Все файлы устанавливаются в директорию /root. Видимо из-за это-го не работает автозапуск бота. python /opt/root/bot.py такая команда запускает бота. Подскажите какой файл поправить для автозапуска бота

Странно, должно быть /opt/etc/bot.py автозапуск находится /opt/etc/init.d/S99unblock

Думаю надо указать в статье, чтобы при выполнении команд вышли из папки рута и перешли в etc, т.к. после выполнения входа, изначально, попадаешь в папку root. Вроде бы в командах прописано, куда выполнять загрузку, но тем не менее почему то скачивается в root. У меня аналогично, загрузилось всё в root, поменял путь к автозапуску, запустился бот, но нормально не заработало. При вводе команды dns-override пропадал доступ ко всему. Отменяешь - работает.

В итоге помучился с поиском проблемы, в итоге всё удалил. При начале выполнения команд из статьи перешел в /opt/etc и всё завелось сразу.

Спасибо огромное за статью и желательно добавить команду после смены пароля 'cd /opt/etc' с комментарием, что может быть сбой, если это не сделать, т.е. на всякий случай))

хм, очень странно, в статье указывают полные пути к файлу (кроме get-pip.py, который действительно скачивается в рута). Мне кажется в какой-то момент Вы что-то пропустили, вот и не заработало с первого раза. Рад, что понравилось) не забывайте устанавливать новые версии)

Доброго времени суток. Статья добротная, что первая, что вторая. Но я бы крайне был признателен, если бы сделали ещё третью "народную" статью. С использованием Warp от Cloudflare, который работает через WireGuard. Преимущества Warp - сервис бесплатный, сервис надёжный и не думаю, что будет сливать данные, всё лучше малоизвестных сервисов.

Я пробовал вот по этой инструкции https://4pda.to/forum/index.php?showtopic=883101&st=8840#entry93529265 Но то ли она устарела, то ли что, но ничего не получилось :-(

Хм, я, может, чего не понимаю, но в данной статье есть информация о том как работать с wireguard, плюс есть вышеупомянутый квас, в котором wireguard, скорее всего, лучше будет работать

Мне нужно только получать новый конфиг от бота hlvpnbot в телеграмме, можно это реализовать без python средствами bash? Ведь есть telegram api через wget, но как использовать свой аккаунт для доступа к чату не нашел, только к чату своего бота wget -O - --no-check-certificate "https://api.telegram.org/bott<API_ID>/sendMessage?chat_id=<CHAT_ID>&text=Привет мир"

а нужен аналог

with TelegramClient('hlvpnbot', appapiid, appapihash) as client:
client.send_message('hlvpnbot', 'Хочу ключ')

да, по идее можно через api, но раз уж бот написан на питоне, я и использовал функции питона для этого

Просто питон весит много, у меня почти 30мб сьел

ну 30мб на флешке это же копейки. И я специально создал бота на питоне, чтобы не лазить "ручками" внутрь скриптов\списков и т.д.

Обновил бота до версии 1.1 (список изменений можно найти в статье).

Обновлён список доменов и сайтов для твиттера

Бот заводится и работает, редактируются списки, но не работает ничего после dns-override, никакие сайты не открываются, даже которых нет в списке, уже голову сломал

Рекомендую ещё раз пройтись по статье, посмотрев настройки роутера (не включен какой-то компонент или ещё что-то), если не поможет, то переустановить заново, предварительно выключив dnsoverride

Завелось только после того, когда в дополнительных настройках IP роутера поставил галку "Игнорировать DNS". Но через тор по прежнему не работает, видимо с мостами что-то не то?

Да, поменял мосты и все заработало

похоже не все адреса добавляются в unblock, с каждым запуском unblock_ipset.sh количество записей в таблице становится все больше,

Hidden text

SMBXTURBO:/opt/home/admin # /opt/bin/unblock_ipset.sh
SMBXTURBO:/opt/home/admin # ipset list | head -n20
Name: unblock
Type: hash:net
Revision: 6
Header: family inet hashsize 4096 maxelem 65536
Size in memory: 25964
References: 2
Number of entries: 482
Members:
65.9.44.64
64.233.162.100
44.224.20.180
217.195.153.134
65.9.44.124
173.194.222.113
192.229.220.133
151.101.64.81
54.155.178.5
104.21.34.57
104.22.21.207
172.67.166.165
SMBXTURBO:/opt/home/admin # /opt/bin/unblock_ipset.sh
SMBXTURBO:/opt/home/admin #
SMBXTURBO:/opt/home/admin # ipset list | head -n20
Name: unblock
Type: hash:net
Revision: 6
Header: family inet hashsize 4096 maxelem 65536
Size in memory: 29492
References: 2
Number of entries: 553
Members:
65.9.44.64
64.233.162.100
44.224.20.180
217.195.153.134
104.18.8.215
65.9.44.124
173.194.222.113
192.229.220.133
151.101.64.81
54.155.178.5
104.21.34.57
104.22.21.207
SMBXTURBO:/opt/home/admin #

причем думал может не ресолвится какойто домен, но если скормить одни адреса из https://antifilter.download/list/allyouneed.lst то тоже самое, приходится несколько раз запускать unblock_ipset.sh чтобы в конце концов количество записей совпало с количеством строк в allyouneed.lst

С чем это может быть связано? У меня правда падаван и ipset v6.29 может в нем косяк?

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

Да я уже отказался от allyouneed.lst в него пападает куча незаблокированных сайтов, например cbr.ru, падает SS и они перестают открыватся, кастати как проверить работу SS?

Траффик с роутера не попадает в br0 соответсвенно не идет через SS для сайтов из unblock

SMBXTURBO:/opt/home/admin # wget -s http://rutracker.org/
Connecting to rutracker.org (172.67.137.176:80)
Connecting to blackhole.beeline.ru (194.67.1.14:80)
SMBXTURBO:/opt/home/admin #

можно посмотреть tracert как идёт трафик.

А так предлагаю почитать https://habr.com/ru/post/428992/ вот эту статью, там в конце диагностика ошибок

C компа rutracker.org открывается, и wget с компа качает с него страницу, а если это делать с роутера идет редирект на страницу оператора с блокировкой

Странно что tracert с компа не показывает что траффик идет через сервер SS или он отличный от tcp и не попадает под

iptables -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 1080

Хотя адреса есть в unblock, добавил для udp тоже, не помогло

Hidden text

Трассировка маршрута к rutracker.org [172.67.137.176] с максимальным числом прыжков 30: 1 <1 мс <1 мс <1 мс SMBXTURBO.lan [192.168.20.1] 2 * * * Превышен интервал ожидания для запроса. 3 * * * Превышен интервал ожидания для запроса. 4 3 ms 2 ms 1 ms len57a-ag-giga1-16.tul.corbina.net [85.21.230.230] 5 2 ms 2 ms 2 ms 79.104.58.125 6 5 ms 5 ms 6 ms pe05.KK12.Moscow.gldn.net [79.104.225.13] 7 6 ms 6 ms 8 ms be10.tf01-02.Moscow.gldn.net [81.211.45.63] 8 43 ms 42 ms 42 ms 195.89.119.222 9 42 ms 42 ms 42 ms 195.89.119.221 10 53 ms 53 ms 66 ms ae4-pcr1.aet.cw.net [195.2.16.98] 11 55 ms 54 ms * cloudflare-gw-pcr1.aet.cw.net [195.2.29.86] 12 55 ms 53 ms 54 ms 172.71.92.4 13 53 ms 53 ms 53 ms 172.67.137.176 Трассировка завершена.

SMBXTURBO:/opt/home/admin # traceroute rutracker.org
traceroute to rutracker.org (104.21.56.234), 30 hops max, 38 byte packets
1 * * *
2 * * *
3 len57a-ag-giga1-16.tul.corbina.net (85.21.230.230) 1.295 ms 1.345 ms 1.194 ms
4 79.104.58.125 (79.104.58.125) 2.538 ms 9.930 ms 194.154.95.6 (194.154.95.6) 12.715 ms
5 pe05.KK12.Moscow.gldn.net (79.104.225.13) 6.549 ms 7.431 ms 6.820 ms
6 be10.tf01-02.Moscow.gldn.net (81.211.45.63) 6.005 ms 6.443 ms 6.908 ms
7 * EDN-SOVINTE.ear2.Stockholm2.Level3.net (213.249.107.10) 24.890 ms *
8 * * *
9 ae2.3205.edge2.Copenhagen2.level3.net (4.69.163.118) 30.961 ms ae4-pcr1.aet.cw.net (195.2.16.98) 73.961 ms 54.014 ms
10 * cloudflare-gw-pcr1.aet.cw.net (195.2.29.86) 55.268 ms *
11 141.101.65.14 (141.101.65.14) 51.818 ms * 104.21.56.234 (104.21.56.234) 43.702 ms
SMBXTURBO:/opt/home/admin #

SMBXTURBO:/opt/home/admin # dig +short @127.0.0.1 rutracker.org
104.21.56.234
172.67.137.176
SMBXTURBO:/opt/home/admin # dig +short rutracker.org @localhost -p 9153
104.21.56.234
172.67.137.176
SMBXTURBO:/opt/home/admin # ipset list unblock | grep 172.67.137.176
172.67.137.176
SMBXTURBO:/opt/home/admin # ipset list unblock | grep 104.21.56.234
104.21.56.234
SMBXTURBO:/opt/home/admin #

SMBXTURBO:/opt/home/admin # iptables-save 2>/dev/null | grep unblock
-A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-ports 1080
-A PREROUTING -i ppp+ -p tcp -m set --match-set unblock dst -j REDIRECT --to-ports 1080
-A PREROUTING -i br0 -p udp -m set --match-set unblock dst -j REDIRECT --to-ports 1080
SMBXTURBO:/opt/home/admin #

iptables -t nat -A OUTPUT -p tcp -m set --match-set unblocksh dst -j REDIRECT --to-port 1082 вот подобная строка работает для внутренних запросов роутера. В статье:

br0 это все "домашние" устройства

если кому нужные устройства из гостевой сети, то нужно ещё добавить такие же строки, но с br1

sstp0 это все устройства, подключенные по sstp

а аутпут это как раз роутер

Добавил OUTPUT для tcp и wget стал выдавать ошибку, tracert не ходит через SS, добавил OUTPUT для udp, tracert возвращает одну строку, остановил SS все также

Мне нужно на роутере проверить работоспособность SS и если он не работает запросить новый конфиг

Кстати вообще пропал инет, вылежилось удалением OUTPUT правил, кажется он падает после добавления OUTPUT для udp

Hidden text

SMBXTURBO:/opt/home/admin # iptables -t nat -A OUTPUT -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 1080
SMBXTURBO:/opt/home/admin # iptables-save 2>/dev/null | grep unblock
-A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-ports 1080
-A PREROUTING -i ppp+ -p tcp -m set --match-set unblock dst -j REDIRECT --to-ports 1080
-A PREROUTING -i br0 -p udp -m set --match-set unblock dst -j REDIRECT --to-ports 1080
-A OUTPUT -p tcp -m set --match-set unblock dst -j REDIRECT --to-ports 1080
SMBXTURBO:/opt/home/admin # wget -s http://rutracker.org/
Connecting to rutracker.org (104.21.56.234:80)
wget: can't connect to remote host (104.21.56.234): Connection refused
SMBXTURBO:/opt/home/admin # traceroute rutracker.org
traceroute to rutracker.org (172.67.137.176), 30 hops max, 38 byte packets
1 * * *
2 * * *
3 len57a-ag-giga1-16.tul.corbina.net (85.21.230.230) 1.286 ms 1.207 ms 1.180 ms
4 79.104.58.125 (79.104.58.125) 3.641 ms 194.154.95.6 (194.154.95.6) 2.159 ms 2.142 ms
5 pe05.KK12.Moscow.gldn.net (79.104.225.13) 5.364 ms pe05.KK12.Moscow.gldn.net (79.104.225.15) 6.067 ms pe05.KK12.Moscow.gldn.net (79.104.225.13) 6.366 ms
6 be10.tf01-02.Moscow.gldn.net (81.211.45.63) 6.401 ms 8.009 ms 5.944 ms
7 * 195.89.119.222 (195.89.119.222) 44.219 ms *
8 195.89.119.221 (195.89.119.221) 47.313 ms 46.670 ms 42.794 ms
9 ae4-pcr1.aet.cw.net (195.2.16.98) 54.687 ms ae2.3205.edge2.Copenhagen2.level3.net (4.69.163.118) 31.527 ms 31.045 ms
10 212.73.252.114 (212.73.252.114) 48.297 ms * 47.197 ms
11 172.67.137.176 (172.67.137.176) 47.409 ms 46.782 ms 46.650 ms
SMBXTURBO:/opt/home/admin # iptables -t nat -A OUTPUT -p udp -m set --match-set unblock dst -j REDIRECT --to-port 1080
SMBXTURBO:/opt/home/admin # wget -s http://rutracker.org/
Connecting to rutracker.org (172.67.137.176:80)
wget: can't connect to remote host (172.67.137.176): Connection refused
SMBXTURBO:/opt/home/admin # iptables-save 2>/dev/null | grep unblock
-A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-ports 1080
-A PREROUTING -i ppp+ -p tcp -m set --match-set unblock dst -j REDIRECT --to-ports 1080
-A PREROUTING -i br0 -p udp -m set --match-set unblock dst -j REDIRECT --to-ports 1080
-A OUTPUT -p tcp -m set --match-set unblock dst -j REDIRECT --to-ports 1080
-A OUTPUT -p udp -m set --match-set unblock dst -j REDIRECT --to-ports 1080
SMBXTURBO:/opt/home/admin # wget -s http://rutracker.org/
Connecting to rutracker.org (104.21.56.234:80)
wget: can't connect to remote host (104.21.56.234): Connection refused
SMBXTURBO:/opt/home/admin # wget -s http://rutracker.org/
Connecting to rutracker.org (172.67.137.176:80)
wget: can't connect to remote host (172.67.137.176): Connection refused
SMBXTURBO:/opt/home/admin # traceroute rutracker.org
traceroute to rutracker.org (104.21.56.234), 30 hops max, 38 byte packets
1 104.21.56.234 (104.21.56.234) 0.070 ms 0.032 ms 0.016 ms
SMBXTURBO:/opt/home/admin #

Hidden text

SMBXTURBO:/opt/home/admin # /opt/etc/init.d/S22shadowsocks stop
Checking ss-redir... alive.
Shutting down ss-redir... done.
SMBXTURBO:/opt/home/admin # traceroute rutracker.org
traceroute to rutracker.org (172.67.137.176), 30 hops max, 38 byte packets
1 172.67.137.176 (172.67.137.176) 0.070 ms 0.023 ms 0.015 ms
SMBXTURBO:/opt/home/admin # wget -s http://rutracker.org/
Connecting to rutracker.org (172.67.137.176:80)
wget: can't connect to remote host (172.67.137.176): Connection refused
SMBXTURBO:/opt/home/admin #

Для udp вроде действительно не надо. А на обычном компе есть интернет? Проверьте ещё работает ли http, сейчас же всё на https почти. Для этого wget-ssl нужно устанавливать (как в статье)

Как раз на компе и пропал интернет после добавления

iptables -t nat -A OUTPUT -p udp -m set --match-set unblock dst -j REDIRECT --to-port 1080

На компе под виртуалкой ubuntu wget работает, если в браузере открывать сайт то https

Способ определения работоспособности SS соединения очень нужен для автоматического запроса нового ключа

Hidden text

SMBXTURBO:/opt/home/admin # wget -s http://rutracker.org/
Connecting to rutracker.org (172.67.137.176:80)
Connecting to blackhole.beeline.ru (194.67.1.14:80)SMBXTURBO:/opt/home/admin # wget -s https://rutracker.org/forum/index.php
Connecting to rutracker.org (104.21.56.234:443)
wget: error getting response: Connection reset by peer
SMBXTURBO:/opt/home/admin # iptables -t nat -A OUTPUT -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 1080
SMBXTURBO:/opt/home/admin # wget -s https://rutracker.org/forum/index.php
Connecting to rutracker.org (104.21.56.234:443)
wget: error getting response: Connection reset by peer
SMBXTURBO:/opt/home/admin # wget -s http://rutracker.org/forum/index.php
Connecting to rutracker.org (104.21.56.234:80)
wget: can't connect to remote host (104.21.56.234): Connection refused
SMBXTURBO:/opt/home/admin # iptables -t nat -D OUTPUT -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 1080
SMBXTURBO:/opt/home/admin #

Заметил, что через какое-то время перестаёт работать обход через ТОР, иногда помогает просто рестарт тора, но периодически приходится менять бриджи. Или это так и задумано?

Ну уж точно не задумано) может действительно мосты "падают"

добавил в крон перезагрузку ТОР через каждые 15 минут, работает стабильно

*/15 * * * * root /opt/etc/init.d/S35tor restart

  • Все данные записываем в файл в нужные места:

Извиняюсь за глупый вопрос, но как сюда скопировать-вставить или только ручками писать?

Там те же shift + insert работают для вставки. Можно, кстати, в проводнике Windows написать \\192.168.1.1 там найти файл и работать с ним в любом удобном блокноте

Не работал ТОР, решил переустановить заново, в итоге ошибки после получения ключа HiLoad. Пробовал ставить начисто несколько раз, перезапуская ботов, результат один и тот же. Можете помочь? Ошибку скинул в личные.

Доброго времени суток. Отличная статья! Но у меня весь трафик идет через не напрямую, а не только адреса из списка, подскажите пожалуйста, что я не так сделал? И есть ли возможность завести белый список?

Работает отлично, из всех способов этот зашел больше всего из-за удобства добавления доменов через бота. Единственное, не стал использовать Hi!Load, развернул свой Outline сервер в Европе и вписал ключ от него (в стате опять же написано как это сделать).

Добрый день. Бот в телеге работает, списки редактируются. В процессе установки никаких ошибок ни на одном этапе нет. но как только ввожу команду dns-override, роутер перезагружается и все, ни один сайт не открывается, ни заблокированный из списков, ни "обычный". При этом телеграмм на компе работает. А, вот, браузеры никуда не пускают. Флешку форматировал, переустанавливал все раз 10, уже до автоматизма дошло) Там ошибиться-то, по сути, негде, просто по порядку все делай. Ну ни в какую( dns-override - перезагрузка - и все.

Добрый день! Предлагаю воспользоваться основной статьёй https://habr.com/ru/post/428992/ там указывается что не так (в конце статьи), скорее всего проблема в настройках того самого dnsoverride

Спасибо за ответ. По ссылке прошел. Небольшое уточнение: мне нужен как раз последний пункт в статье "Дополнительный обход фильтрации DNS-запросов провайдером" верно? Все команды эти вводить до команды dnsoverride, или после?

Нет, эту часть не надо. Нужно предыдущую часть по диагностике ошибок

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

Добрый вечер. Заработал обход блокировок по предыдущей статье "Установка Shadowsocks с обходом блокировок на Keenetic". С локальными клиентами все ок, подскажите, что нужно прописать , чтобы клиенты, подключенные к кинетику по Wireguard (интерфейс nwg0) , так же открывали заблокированные сайты. На остальные сайты ходят без проблем, заблоченные не открываются. я так понимаю, в файл 100-redirect.sh нужно правку вносить?

можно подробнее как это сделать?

Установить пакет snowflake-go, ну а фрагмент конфига Tor я привёл по ссылке.

Привет!

  • По аналогии внизу (вместо #script0 и т.д.) нам необходимо вставить дополнительный код (актуальный всегда тут). ВНИМАНИЕ! Эта часть кода сейчас не работает, если есть спецы в iptables, то милости просим! Тут аккуратненько) вместо ppp1 вставляем нужное нам название интерфейса (чуть повыше я писал):

По этому вопросу ребята с форуме кинетика решили через маркировку пакетов с последующим заведением роута: https://forum.keenetic.com/topic/8106-выборочный-роутинг-через-vpn-туннель/page/10/#comment-143274

  1. Добавление задачи в cron для периодического обновления содержимого множества unblock.

  • Откроем файл:

    mcedit /opt/etc/crontab

  • В конец добавляем строку:

    00 06 * root /opt/bin/unblock_ipset.sh

А вот тут, насколько я понимаю, потеряли ещё одну задачу - запуск /opt/bin/unblock_dnsmasq.sh. Иначе, как он будет подхватывать новые домены для внутреннего резолвинга? Плюс, в самом скрипте возможно нужно добавить какой-то перезапуск сервера, чтобы он конфиг перечитал?

И небольшая поправка к их скрипту:

#!/bin/sh

[ "$1" == "hook" ] || exit 0
#[ "$change" == "link" ] || exit 0
[ "$id" == "Wireguard2" ] || exit 0

IF_NAME=nwg2
IF_GW4=$(ip -4 addr show "$IF_NAME" | grep -Po "(?<=inet ).*(?=/)")

case ${id}-${change}-${connected}-${link}-${up} in
    ${id}-config-no-down-down)
        ip -4 rule del fwmark 0xd1000 lookup 1001 priority 1778 2>/dev/null
        ip -4 route flush table 1001
    ;;
    ${id}-connected-yes-up-up)
        ip -4 route add table 1001 default via "$IF_GW4" dev "$IF_NAME" 2>/dev/null
        ip -4 route show table main |grep -Ev ^default |while read ROUTE; do ip -4 route add table 1001 $ROUTE 2>/dev/null; done
        ip -4 rule add fwmark 0xd1000 lookup 1001 priority 1778 2>/dev/null
        ip -4 route flush cache
    ;;
esac

exit 0

Сам я не сильно большой знаток роутерной внутрянки, поэтому чтобы понять, что я не запускаю каких-то глупостей, для начала подебажил переменные, которые используются в скрипте и выяснил, что лично у меня подключение к wg происходит по $change=connected, а не link, а отключение по config, вместо link:

#!/bin/sh

LOG=/opt/tmp/ndm-debug.log

echo "=====================" >> $LOG
echo "$1\n\n$change\n\n$id" >> $LOG
echo "${id}-${change}-${connected}-${link}-${up}" >> $LOG

Выключение:

=====================
hook\n\nlink\n\nWireguard0
Wireguard0-link-no-up-up
=====================
hook\n\nlink\n\nWireguard0
Wireguard0-link-no-up-up
=====================
hook\n\nconfig\n\nWireguard0
Wireguard0-config-no-down-up
=====================
hook\n\nconfig\n\nWireguard0
Wireguard0-config-no-down-down

Включение:

=====================
hook\n\nconfig\n\nWireguard0
Wireguard0-config-no-down-up
=====================
hook\n\nlink\n\nWireguard0
Wireguard0-link-no-up-up
=====================
hook\n\nlink\n\nWireguard0
Wireguard0-link-no-up-up
=====================
hook\n\nconnected\n\nWireguard0
Wireguard0-connected-yes-up-up

Sign up to leave a comment.

Articles