uneasy Posted March 23 Share Posted March 23 (edited) 7 hours ago, Пихал Метрович said: Не работатет скрипт, правила iptables просто тупо не создаются после перезагрузки, в том числе, если и DNS-запросы на прокси заворачивать (дополнительно добавлял строку [ "$table" != "mangle" ] && exit 0). Правила без вышеуказанных строк не дублируются, проверял много раз. Хмм, странно, у меня создаются, правда у меня правила для таблицы mangle. Сейчас попробую потестировать nat. Вообще я нашел этот совет (про дубликаты) в официальном доке NDM Systems: https://github.com/ndmsystems/packages/wiki/Opkg-Component#ndmnetfilterd PS Да, загадка. Добавил в скрипт строчки echo $table echo $type и в логах вижу только такое: Opkg::Manager: /opt/etc/ndm/netfilter.d/shadow: mangle. Opkg::Manager: /opt/etc/ndm/netfilter.d/shadow: iptables. Так что эти переменные почему-то только такие значения и принимают. Значений ip6tables, filter, nat, о которых написано в документации нет. При этом правила добавляются именно в нужную таблицу. Вот тебе и RTFM 🤣 Edited March 23 by uneasy Quote Link to comment Share on other sites More sharing options...
uneasy Posted March 23 Share Posted March 23 5 hours ago, vasek00 said: А почему должны создаваться, используйте скрипт в /opt/etc/init.d для их cозданияю Далее после создания они будут проверяться по вашему скрипту в ndm. Нет, это точно необязательно. Можно сразу в netfilter.d кидать. Вот например, известный гайд: https://keenetic-gi.ga/2022/12/17/adguardhome-and-selective-routing.html Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 23 Share Posted March 23 1 час назад, uneasy сказал: Нет, это точно необязательно. Можно сразу в netfilter.d кидать. Вот например, известный гайд: https://keenetic-gi.ga/2022/12/17/adguardhome-and-selective-routing.html С ним знаком. Я делаю как написал выше. Quote Link to comment Share on other sites More sharing options...
Пихал Метрович Posted March 31 Share Posted March 31 В 15.03.2023 в 12:31, uneasy сказал: Кстати, я свой скрипт переделал, надоело мучаться с DNS - сейчас новые сайты блокируют каждый день, да и часто одного domain.com для обхода недостаточно. Решил перейти на списки блокированных IP Можете выложить весь скрипт? Кстати, если вашем текущем скрипте удалить строку: В 17.06.2022 в 00:08, uneasy сказал: until ping -c1 dns.google >/dev/null 2>&1; do :; done то я теряю доступ к веб-морде роутера (роутер работает, но перестает отвечать на запросы), я так понимаю, что это просто проверка доступности интернета. Вопрос - как эту строку выпилить правильно? Quote Link to comment Share on other sites More sharing options...
uneasy Posted March 31 Share Posted March 31 (edited) Обновленный вариант настройки shadowsocks, с использованием списка заблокированных IP. Устанавливаем необходимые пакеты: opkg update; opkg upgrade; opkg install nano cron ipset iptables wget-ssl ca-bundle shadowsocks-libev-ss-redir Редактируем нужные файлы: nano /opt/etc/init.d/S52unblock #!/bin/sh ipset create unblock hash:net for i in `cat /opt/root/allyouneed.lst`; do ipset -exist add unblock $i; done for i in `grep -v ^# /opt/root/exceptions`; do ipset del unblock $i; done for i in `grep -v ^# /opt/root/sites`; do for j in `nslookup $i | grep -v 127.0.0.1 | awk '/Addr/ {print $3}' | grep -v :`; do ipset -exist add unblock $j; done done nano /opt/etc/cron.daily/unblock_daily #!/bin/sh wget -O /opt/root/allyouneed.lst https://antifilter.download/list/allyouneed.lst /opt/etc/init.d/S52unblock nano /opt/etc/ndm/netfilter.d/unblock_netfilter #!/bin/sh if [ -z "$(iptables-save | grep unblock)" ]; then iptables -I PREROUTING -w -t nat -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 1080 fi if [ -z "$(ps | grep -v grep | grep ss-redir)" ]; then ss-redir -c /opt/etc/shadowsocks.json -f /opt/var/run/ss-redir.pid fi nano /opt/etc/shadowsocks.json { "server":"SERVER", "server_port":PORT, "password":"PASSWORD", "method":"METHOD", "mode":"tcp_and_udp", "local_address":"0.0.0.0", "local_port":1080, "timeout":600 } Также можно добавить сайты, которых нет в списке antifilter: nano /opt/root/sites # comments spotify.com Также, в случае проблем, можно добавить какую-либо подсеть в исключения, чтобы соединение шло напрямую, минуя shadowsocks. Ниже я добавляю таким образом подсеть сайта iptvin.ru, которая попала в список antifilter, но у меня отказывается работать через мой сервер shadowsocks: nano /opt/root/exceptions # iptvin.ru 92.125.33.0/24 Даем файлам права на запуск: chmod +x /opt/etc/init.d/S52unblock chmod +x /opt/etc/cron.daily/unblock_daily chmod +x /opt/etc/ndm/netfilter.d/unblock_netfilter Один раз вручную скачиваем список IP, чтобы он был при запуске роутера: wget -O /opt/root/allyouneed.lst https://antifilter.download/list/allyouneed.lst Перезагружаем роутер. Все должно заработать через пару минут после перезагрузки (ipset строится какое-то время, в списке много IP). Дополнительно, на случай подмены провайдером IP адресов заблокированных сайтов, очень желательно настроить на роутере шифрование DNS запросов: https://help.keenetic.com/hc/ru/articles/360007687159 Edited 13 hours ago by uneasy 1 Quote Link to comment Share on other sites More sharing options...
uneasy Posted March 31 Share Posted March 31 5 hours ago, Пихал Метрович said: Вопрос - как эту строку выпилить правильно? В обновленном скрипте выше строку выпилил Вообще, сейчас подумал, цикл until - это я тогда слишком опасно сделал, лучше без него Quote Link to comment Share on other sites More sharing options...
Пихал Метрович Posted April 1 Share Posted April 1 (edited) В 01.04.2023 в 01:01, uneasy сказал: В обновленном скрипте выше строку выпилил Вообще, сейчас подумал, цикл until - это я тогда слишком опасно сделал, лучше без него Спасибо за скрипт, все работает отлично, заблокированные сайты открываются. В 01.04.2023 в 00:54, uneasy сказал: iptables -I PREROUTING -w -t nat -i br0 -p udp -m set --match-set unblock dst -j REDIRECT --to-port 1080 Это правило работать не будет, трафик udp можно затолкать на порт локального прокси только через механизм TPROXY iptables (пример куска скрипта ниже - для DNS-запросов как клиентов локальной сети роутера, так и его самого; для роутера и для его клиентов локальной сети нужно в настройках DHCP установить любой внешний обычный DNS-сервер без шифрования, типа 1.1.1.1, 8.8.8.8 и т.п.): if [ -z "$(ip route list table 100)" ]; then ip route add local default dev lo table 100 ip rule add fwmark 1 lookup 100 fi if [ -z "$(iptables-save 2>/dev/null | grep SS-REDIR_UDP)" ]; then insmod /lib/modules/$(uname -r)/xt_TPROXY.ko iptables -w -t mangle -N SS-REDIR_UDP iptables -w -t mangle -A SS-REDIR_UDP -p udp --dport 53 -j TPROXY --on-port 1080 --tproxy-mark 0x01/0x01 fi if [ -z "$(ps | grep -v grep | grep ss-redir)" ]; then ss-redir -u -c /opt/etc/shadowsocks.json -f /opt/var/run/ss-redir.pid fi Кстати, shadowsocks-rust, собранный под архитектуру mips, нормально работает на сабже (запускал вместе с плагином обфускации трафика simle-tls, собранного также под mips-архитектуру; архивы бинарников можно скачать на гитхабе). Команда на запуск transparent proxy (редирект tcp и udp-трафика (DNS-запросы)): sslocal --local-addr 0.0.0.0:1080 --protocol redir --tcp-redir redirect --udp-redir tproxy -d -U -c /opt/etc/shadowsocks/shadowsocks.json Загрузка процессора конечно выше, чем в случае shadowsocks-libev, но жить можно, каких-то сильных тормозов не заметил (даже в случае скачки торрентов на внешний жесткий диск встроенным торрент-клиентом роутера). Edited April 2 by Пихал Метрович Quote Link to comment Share on other sites More sharing options...
uneasy Posted April 1 Share Posted April 1 (edited) 2 hours ago, Пихал Метрович said: Это правило работать не будет Да, вот это печально весьма. Я как раз пытался пустить wg-туннель WARP через shadowsocks, не работает ни фига. А так можно было бы весьма эффективно скрыть свой трафик от владельца публичного SS-сервера. Кстати, про тот же shadowsocks-rust пишут, что там появилась возможность создавать tun интерфейс (то есть встроен функционал Tun2Socks / badvpn). Не проверяли, работает на кинетике эта фишка? Тогда можно будет просто создать статический маршрут, по идее udp тоже должен работать. Edited April 1 by uneasy Quote Link to comment Share on other sites More sharing options...
Пихал Метрович Posted April 2 Share Posted April 2 9 часов назад, uneasy сказал: Да, вот это печально весьма. Я как раз пытался пустить wg-туннель WARP через shadowsocks, не работает ни фига. Можно так, например - https://lore.kernel.org/wireguard/CAMwURuCj4O2rik1kWeA22x7ovHxfGNTEyk_aNsTwc9yYbihvbw@mail.gmail.com/T/, как-то давно настраивал и это даже работало. 9 часов назад, uneasy сказал: Кстати, про тот же shadowsocks-rust пишут, что там появилась возможность создавать tun интерфейс (то есть встроен функционал Tun2Socks / badvpn). Не проверяли, работает на кинетике эта фишка? Тогда можно будет просто создать статический маршрут, по идее udp тоже должен работать. Да, можно, настройки по созданию тоннельного интерфейса есть, но это не полноценная замена тоннелю VPN (хотя маршрутизация в отношении оного должна работать), некоторыми функциями все равно невозможно будет воспользоваться - https://ntc.party/t/topic/1425/3 "Все технологии туннелирования так или иначе строятся на двух принципах: VPN: пакетная передача данных, ПО создаёт отдельный сетевой интерфейс (L2/L3), возможность использования стандартных способов маршрутизации, передачи любых протоколов и приёма входящих соединений; Прокси: потоковая передача данных, ПО создаёт отдельный TCP/UDP-порт, возможность передачи только TCP/UDP-трафика, невозможность (в общем случае) приёма входящих соединений. Через прокси у вас не будет работать ping (протокол ICMP), а голосовая связь VoIP (и другие p2p-программы) может работать плохо или не работать вовсе, из-за невозможности входящих подключений. Тем не менее, для большинства обычных программ функциональности прокси вполне достаточно. Нередко прокси-программы эмулируют VPN-интерфейс для удобства настройки или из-за технических ограничений – не каждая программа поддерживает работу через прокси, а VPN-интерфейс настраивается на уровне операционной системы и не требует ничего от программ. Эмуляция VPN-интерфейса не добавляет недостающих функций прокси – вы всё ещё не сможете пользоваться ping, принимать входящие соединения." 2 Quote Link to comment Share on other sites More sharing options...
uneasy Posted April 2 Share Posted April 2 (edited) 5 hours ago, Пихал Метрович said: Можно так, например - https://lore.kernel.org/wireguard/CAMwURuCj4O2rik1kWeA22x7ovHxfGNTEyk_aNsTwc9yYbihvbw@mail.gmail.com/T/, как-то давно настраивал и это даже работало. Круто! Работает! И все одной командой, люблю такое Я кстати уже видел подобный гайд, но подумал, что такое будет работать, только если wireguard и shadowsocks крутятся на одной машине (личном VDS). Но нет, можно просто WARP'овский endpoint прописать, и все. Edited April 2 by uneasy Quote Link to comment Share on other sites More sharing options...
Пихал Метрович Posted April 2 Share Posted April 2 1 час назад, uneasy сказал: Круто! Работает! И все одной командой, люблю такое На роутере запускали (через ss-redir) или на linux-клиенте (ss-tunnel)? Quote Link to comment Share on other sites More sharing options...
uneasy Posted April 2 Share Posted April 2 37 minutes ago, Пихал Метрович said: На роутере запускали (через ss-redir) или на linux-клиенте (ss-tunnel)? На роутере, там тоже ss-tunnel есть: opkg install shadowsocks-libev-ss-tunnel Quote Link to comment Share on other sites More sharing options...
panicoil Posted April 15 Share Posted April 15 (edited) В 01.04.2023 в 04:54, uneasy сказал: Обновленный вариант настройки shadowsocks, с использованием списка заблокированных IP. Устанавливаем необходимые пакеты: пытаюсь повторить по вашей инструкции, в журнале роутера появляется ошибка и конечно ничего не работает. upd. entware есть, putty есть, ss-строка есть. эта часть работает, проверено. Edited April 15 by panicoil Quote Link to comment Share on other sites More sharing options...
Пихал Метрович Posted April 16 Share Posted April 16 (edited) 22 часа назад, panicoil сказал: пытаюсь повторить по вашей инструкции, в журнале роутера появляется ошибка А файл клиента ss /opt/etc/shadowsocks.json заполнен верно (IP сервера, порт, метод шифрования, пароль)? К какому серверу ss вы пытаетесь приконнектиться - к своему, поднятому на VDS, или найденному в глобальной сети? Вы проверили, что сервер доступен и отвечает на запросы (это можно сделать из клиента ss под Android)? Edited April 16 by Пихал Метрович Quote Link to comment Share on other sites More sharing options...
panicoil Posted April 16 Share Posted April 16 (edited) 2 часа назад, Пихал Метрович сказал: А файл клиента ss /opt/etc/shadowsocks.json заполнен верно (IP сервера, порт, метод шифрования, пароль)? К какому серверу ss вы пытаетесь приконнектиться - к своему, поднятому на VDS, или найденному в глобальной сети? Вы проверили, что сервер доступен и отвечает на запросы (это можно сделать из клиента ss под Android)? .json { "server":"185.106.94.133", "mode":"tcp_and_udp", "server_port":6513, "local_port":1080, "password":"xxxxxxxxxxxx", "timeout":600, "method":"chacha20-ietf-poly1305" "local_address":"0.0.0.0", } строка из бота hlvpnbot вида ss://Y2hhYххххххххххххххххххekhK@hl-public4.undef.network:6513#HILOAD_HL_FREE по ней клиент outline под win&android подключаются и работают сервер прописывал как в виде ip, так и доменом - одинаково upd. проблема оказалась в запятой лишней запятой Edited April 16 by panicoil Quote Link to comment Share on other sites More sharing options...
Пихал Метрович Posted April 16 Share Posted April 16 22 минуты назад, panicoil сказал: по ней клиент outline под win&android подключаются и работают Пришлите пароль ss в личку - попробую протестировать. Quote Link to comment Share on other sites More sharing options...
uneasy Posted April 17 Share Posted April 17 On 4/16/2023 at 9:57 AM, panicoil said: проблема оказалась в запятой лишней запятой Подскажите, а лишняя запятая у меня в инструкции, или просто при копировании случайно добавили? Quote Link to comment Share on other sites More sharing options...
panicoil Posted April 17 Share Posted April 17 7 минут назад, uneasy сказал: Подскажите, а лишняя запятая у меня в инструкции, или просто при копировании случайно добавили? при копировании случайно добавил в .json "local_address":"0.0.0.0", пытался и с хабра и вашу. видимо смешалось в кучу с ошибкой( Quote Link to comment Share on other sites More sharing options...
Пихал Метрович Posted May 15 Share Posted May 15 (edited) В 01.04.2023 в 00:54, uneasy сказал: Также можно добавить сайты, которых нет в списке antifilter: nano /opt/root/sites Доброго времени суток, а можно ли как-то добавить не домен, а несколько подсетей (в дополнение к списку antifilter, которые с ними не пересекаются), трафик на IP которых должен идти через прокси? Видео с телеги долго грузится, заворачиваешь весь трафик клиентов роутера на прокси - загрузка происходит раз в 10 быстрее, видимо, мобильный провайдер подрезает скорость, а весь трафик не хочется заворачивать. Edited May 15 by Пихал Метрович Quote Link to comment Share on other sites More sharing options...
uneasy Posted May 16 Share Posted May 16 11 hours ago, Пихал Метрович said: Доброго времени суток, а можно ли как-то добавить не домен, а несколько подсетей (в дополнение к списку antifilter, которые с ними не пересекаются), трафик на IP которых должен идти через прокси? Видео с телеги долго грузится, заворачиваешь весь трафик клиентов роутера на прокси - загрузка происходит раз в 10 быстрее, видимо, мобильный провайдер подрезает скорость, а весь трафик не хочется заворачивать. Да, конечно, можете просто добавить в конец S52unblock что-то типа for i in `cat /opt/root/subnets`; do ipset add unblock $i; done И в subnets прописать свои подсети в формате CIDR 1 Quote Link to comment Share on other sites More sharing options...
Dell Posted May 20 Share Posted May 20 В 02.04.2023 в 16:23, uneasy сказал: Круто! Работает! И все одной командой, люблю такое Я кстати уже видел подобный гайд, но подумал, что такое будет работать, только если wireguard и shadowsocks крутятся на одной машине (личном VDS). Но нет, можно просто WARP'овский endpoint прописать, и все. Добрый день! Может поподробнее рассказать, как это настроить? У меня есть VPS, на которой стоит wireguard и shadowsocks. И keenetic kn-1811, для которого требуется wireguard пустить через shadowsocks. Конфиг ss на сервере: { "server": "0.0.0.0", "server_port": 8443, "password": "<some_pass>", "method": "chacha20-ietf-poly1305", "nameserver": "1.1.1.1", "mode": "tcp_and_udp" } На роутере запускаю: ss-tunnel -s <vps_ip> -p 8443 -l 51820 -L 127.0.0.1:51820 -k <some_pass> -m chacha20-ietf-poly1305 -u В настройках wg на роутере адрес и порт пира заменил с <vps_ip>:51820 на 127.0.0.1:51820 В интерфейсе вижу только сколько байт отправлено, в получено пусто: Скрытый текст В логах строчки вида: wireguard: Wireguard1: handshake for peer "<some_peer>" (23) (127.0.0.1:51820) did not complete after 5 seconds, retrying (try 2) В логах прокси на клиенте ничего не появляется. Если вместо ss-tunnel указать ss-local и убрать аргумент -L 127.0.0.1:51820, то в логах прокси начинают появляться строчки: 2023-05-20 21:37:59 ERROR: [udp] invalid header with addr type 0 Но какой-нибудь запрос, например, curl --socks5 127.0.0.1:51820 -4 ifconfig.me отрабатывает успешно, отображается внешний IP vps - <vps_ip>. То есть сам прокси рабочий, вероятно ошибаюсь где-то в конфигах... Quote Link to comment Share on other sites More sharing options...
Dell Posted May 20 Share Posted May 20 1 час назад, Dell сказал: Добрый день! Может поподробнее рассказать, как это настроить? Отвечу сам себе, наконец разобрался. Во-первых вместо передачи параметров в ss-tunnel сделал конфиг, по которому стало понятнее, что куда переадресовывается: { "server": "<vps_ip>", "server_port": 8443, "local_address": "0.0.0.0", "local_port": 5634, "password": "<some_pass>", "timeout": 120, "method": "chacha20-ietf-poly1305", "mode": "tcp_and_udp", "tunnel_address": "127.0.0.1:51820" } И в настройках клиента wg адрес и порт пира поменял на 127.0.0.1:5634 Во-вторых проблема оказалась до банальности проста: на VPS порт 8443 был открыт только для TCP. Открыл для UDP, и все заработало. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.