Jump to content

Recommended Posts

В 14.05.2023 в 17:43, Zeleza сказал:

Потому у Вас есть три возможных варианта решения проблемы:

  1. Либо, вместо ssr использовать vpn
  2. Либо, обратиться напрямую к авторам исходных скриптов
  3. Либо, написать в тему "Выборочный роутинг через VPN туннель", с которой и получил начало данный проект и в которой обсуждаются различные методы обхода и приводятся исходные, "голые" их варианты. 

Или путь 4 — сделать всё самостоятельно. И снова здравствуйте) 

По сути, вся маршрутизация ssr держится на 4 правилах для br0 (интерфейса домашней сети): 

# DNS
iptables -A PREROUTING -w -t nat -i br0 -p tcp --dport 53 -j DNAT --to 192.168.1.1
iptables -A PREROUTING -w -t nat -i br0 -p udp --dport 53 -j DNAT --to 192.168.1.1
# Выборочные IP в Shadowsocks
iptables -A PREROUTING -w -t nat -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 1181
iptables -A PREROUTING -w -t nat -i br0 -p udp -m set --match-set unblock dst -j REDIRECT --to-port 1181

При разворачивании VPN-сервера на роутере появляется соответствующий ему сетевой интерфейс, для которого эти правила нужно просто размножить. Был проведён эксперимент, связка SS и WireGuard-сервера на роутере прекрасно работают. В подтверждение моих слов — на Хабре поступали ровно также

У вас даже удобный механизм для расшаривания на новый интерфейс реализован (тот самый kvas vpn guest), имеет смысл добавить туда поддержку Shadowsocks вместо заглушки-отписки. 

 

Но мне-то требовался в связку VPN-сервер IKEv2/IPsec. IPSec, в отличии от привычных VPN-решений, не создаёт сетевые интерфейсы, только политики обработки. На него КВАС не может расшарить трафик даже в случае отказа от SS, как я понимаю. 

И просто так заменить br0 на нужное имя, как поступали выше, не получится. Но при создании IKEv2 сервера указываешь диапазон IP для DHCP. Можно фильтровать по нему с учётом знания, что сам трафик сервера обитает в интерфейсе WAN — eth3. -i br0 превращается в -s 172.20.8.0/24 -i eth3. IKEv2-сервер на Кинетике обязательно указывает клиенту DNS-сервер, поэтому в его настройках указываем IP роутера (192.168.1.1), дополнительный роутинг DNS (первые 2 правила) тогда не требуется. 

Сухое итого, как заставить работать на роутере обход у клиентов IKEv2 через Shadowsocks

  1. nano /opt/etc/ndm/netfilter.d/100-shadowsocks-vpn-server
  2. #!/bin/sh
    if [ "${type}" = "iptables" ] && [ "${table}" = "nat" ] && [ -z "$(iptables-save 2>/dev/null | grep '192.168.2.0/24 -i eth3')" ] ; then
        iptables -A PREROUTING -w -t nat -s 192.168.2.0/24 -i eth3 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 1181
        iptables -A PREROUTING -w -t nat -s 192.168.2.0/24 -i eth3 -p udp -m set --match-set unblock dst -j REDIRECT --to-port 1181
    fi

     

  3. chmod +x /opt/etc/ndm/netfilter.d/100-shadowsocks-vpn-server
  4. reboot
  5. iptables -vL PREROUTING -t nat (для финальной проверки, что есть 4 правила от КВАСа и 2 ваших)

 

В альтернативу моему подходу, некоторые добавляют в конце что-то типа 

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

Но мне кажется, проверка всего трафика немного кощунственна и не оптимальна. 

P.S. В настройках IKEv2-сервера на Keenetic не убирать чекбокс «Множественный вход». Без него на прошивке 3.9.8 прекращает отдаваться настройка «DNS-сервер». По крайней мере, встроенному в Android по умолчанию VPN-клиенту.

P.P.S. КВАС периодически передобавляет правила iptables. Но т.к. сверка «есть ли это правило уже» не полная, то он принимает наши правила за свои, и обход в домашней сети не возвращает! Нужно в файле /opt/apps/kvas/etc/ndm/ndm в строчке 247 расширить проверку до

prouting_rules=$(ip4save | grep PREROUTING | grep "${interface}" | grep "${table_name}" | grep REDIRECT | grep "${proxy_port}")

и её же в /opt/etc/ndm/netfilter.d/100-proxy-redirect:25

	proxy_port=$(get_config_value SSR_DNS_PORT)
	interface=$(get_local_inface)
	if ! ip4save | grep "${SSR_IPTABLES_CHAIN}" | grep -qv '\[0:0\]' && \
   	   ! ip4save | grep PREROUTING | grep "${interface}" | grep "${table_name}" | grep REDIRECT | grep -q "${proxy_port}" ; then

 

Edited by marfo4ka
Фикс отсутствия передобавки правил
  • Thanks 3
Link to comment
Share on other sites

23 минуты назад, marfo4ka сказал:

Или путь 4 — сделать всё самостоятельно. И снова здравствуйте) 

Доброго утра,

Отличная работа, тем более, подтвержденная практикой. 
Постараюсь включить поддержку ssr guest в следующую версию Кваса. Прошу только написать соотвествующий тикет на github, если конечно не составит Вам труда.

  • Thanks 1
Link to comment
Share on other sites

спасибо за КВАС.

может кому поможет - после установки пакета фэйсбук и инстаграм на компе через браузер не открываются совсем. в личном кабинете провайдера отключения IPv6 нет.

попробовал отключить IPv6 в настройках роутера - подключение к провайдеру, также не помогло.

помогло снатие галочки с IPv6 в свойствах сетевого адаптера компа.

  • Thanks 1
Link to comment
Share on other sites

7 минут назад, MishaN сказал:

помогло снатие галочки с IPv6 в свойствах сетевого адаптера компа.

Доброго дня
Пожалуйста, внимательно читайте инструкцию по установки Кваса.

UPD:
Вы правы конкретно о данной галочке в инструкции ничего не было. Подправил. Спасибо.

Edited by Zeleza
Link to comment
Share on other sites

  • 2 weeks later...

Здравствуйте. Есть проблема с тем, что трафик из приложения Steam идет через OpenVPN подключение. Не могу выяснить почему так происходит. КВАС установлен по инструкции. Список адресов прилагаю.
После того, как отключаю OpenVPN подключение и включаю снова, все нормально некоторое время и трафик идет напрямую, через некоторое время(часы/дни) снова начинает идти через туннель.
Помогите, пожалуйста, выяснить что происходит.

Скрытый текст

image.png.f5ae8fe434e095661501fd8100fe32aa.png

UPD: не только трафик steam, сайты, которые не любят работать через VPN, не открываются.

Edited by wolfcharm
  • Upvote 1
  • Confused 1
Link to comment
Share on other sites

16 минут назад, AlexCh сказал:

Выглядит шикарно и информативно. Подскажите, а планируется прикрутить ipv6?

Сам кинетик еще не поддерживает ipv6 
https://forum.keenetic.com/topic/381-полноценная-поддержка-ipv6/

https://forum.keenetic.com/topic/3929-поддержка-сервиса-dynv6com/

https://forum.keenetic.com/topic/9458-ipv6-и-ip-host/

https://forum.keenetic.com/topic/262-ipv6-таблица-маршрутизации-и-access-list-файрволл/

Ну и самое главное:

 

Кого заинтересовало ---проголосуйте. 
Вроде как поддержка ipv6 будет в keenos 4.х . Но никаких сроков нет. Может в 2023 , а может и в 2024...

Edited by krass
  • Y'r wrong 1
Link to comment
Share on other sites

Доброго дня всем

Должен констатировать, что не получил ни одного конструктивного отзыва об опубликованном ранее интерфейсе. Возможно, от части, это связано с тем, что нет возможности "пощупать руками" данный интерфейс. 

Если действительно дело в этом, то настоящим, публикую вариант для mipsel

После установки пакета стандартным методом, переходим в клиентский браузер и набираем http://<IP_роутера>:1266/ 

Надеюсь, на обратную связь.
Хорошего всем дня!

  • Thanks 5
Link to comment
Share on other sites

Добрый день.

2 часа назад, Zeleza сказал:

Надеюсь, на обратную связь.

В пакете куча лишних картинок на 20+ мб

во время установки были ошибки, но самовар взлетел

Configuring nginx-ssl.
Configuring nginx.
Configuring samovar.
id: unknown user nginx
id: unknown user nginx
addgroup: group 'nginx' in use
chown: /opt/var/run/nginx: No such file or directory
grep: /opt/etc/nginx/nginx.conf: No such file or directory
nginx: [warn] conflicting server name "samovar.run" on 0.0.0.0:1266, ignored
nginx: the configuration file /opt/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /opt/etc/nginx/nginx.conf test is successful
nginx: [warn] conflicting server name "samovar.run" on 0.0.0.0:1266, ignored
nginx: [error] invalid PID number "" in "/opt/var/run/nginx/nginx.pid"
nginx: [warn] conflicting server name "samovar.run" on 0.0.0.0:1266, ignored
Nginx started.
При запуске nginx возникли проблемы!
nginx: [warn] conflicting server name "samovar.run" on 0.0.0.0:1266, ignored
nginx: the configuration file /opt/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /opt/etc/nginx/nginx.conf test is successful
2023/06/08 17:45:36 [warn] 4490#0: conflicting server name "samovar.run" on 0.0.0.0:1266, ignored
2023/06/08 17:45:36 [warn] 4497#0: conflicting server name "samovar.run" on 0.0.0.0:1266, ignored
Остужаем Самовар...ОШИБКА
Нагреваем Самовар...ГОТОВО
Чай наливают здесь -> http://192.168.1.1:1266

 

  • Thanks 1
Link to comment
Share on other sites

Добрый день! @Zeleza не совсем понятно, как проголовать? Лайки, дизлайки, спасибо, не понял и что чему соответствует. Моё личное мнение  - это максимально простой интерфейс. Не буду я ежедневно, да даже еженедельно с ним взаимодействовать. Максимально простой и логичный интерфейс, без каких либо рюшечек и адаптации

Link to comment
Share on other sites

2 минуты назад, vleonv сказал:

@Zeleza не совсем понятно, как проголовать? 

Лайки, дизлайки, спасибо, не понял и что чему соответствует.

Доброго дня, 

Поясните пожалуйста Ваше сообщение. Что именно Вам не понятно?

  • Как нажать на кнопку и проголосовать?
  • Не ясно значение слова "Лайк"?
  • Не ясно, как проголосовать "за" или "против" адаптивного дизайна?
  • Не ясно что такое адаптивный дизайн?

Прошу Вас быть предельно конкретным и писать по сути. 

Link to comment
Share on other sites

1 минуту назад, vleonv сказал:

Если я считаю, что адаптивный интерфейс не нужен, то какой тип лайка надо ставить?

Тогда, просто не голосуете )

Link to comment
Share on other sites

15 минут назад, vleonv сказал:

в таком случае нельзя понять количество с таким же мнением)

Я не ставлю перед собой такую цель.

Если проголосует больше половины текущих пользователей Кваса, то займусь адаптивным дизайном в первую очередь, если нет, то займусь этим гораздо позже. 

  • Upvote 1
Link to comment
Share on other sites

Добрый день! @Zeleza после обновления entware (opkg update upgrade) есть проблема с работой некоторых ресурсов (в частности instagram, facebook). Попробовал переустановить kavs вышло предупреждение:

Collected errors:
 * resolve_conffiles: Existing conffile /opt/etc/dnscrypt-proxy.toml is different from the conffile in the new package. The new conffile will be placed at /opt/etc/dnscrypt-proxy.toml-opkg.

и проблема остается. Т.е. что-то из списка хостов работает, а что-то нет. Подскажите, пожалуйста в какую сторону копать?

Link to comment
Share on other sites

  • 2 weeks later...

@Zeleza Всего доброго. 

Такая проблема. Поставил квас + AGH. все хорошо, все работает. но! У меня 2 сети, на одной висит умный дом, и половина устройств отваливается и не подключается ни в какую. То есть, можно ли вторую сеть прокинуть мимо квас и как? Все делал по наитию, тему знаю поскольку постольку. Буду очень признателен, если есть решение, если дадите подробное описание действий.
192.168.1.0/24 dev br0 scope link  src 192.168.1.1
192.168.2.0/24 dev br1 scope link  src 192.168.2.1
 

Link to comment
Share on other sites

Доброго утра,

В 24.06.2023 в 22:48, Goshanch сказал:

Буду очень признателен, если есть решение, если дадите подробное описание действий.

Ранее, данная функциональность уже была реализована, путем ввода ключа bridge, но недавно сам столкнулся c подобной надобностью и оказалось, что из-за добавления различных других полезностей, данный ключ не проверялся при выпуске очередной версии и как оказалось данный ключ работал только на ранних версиях - сейчас код устарел, нужны переделки, потому на текущий момент он не работает должным образом. До выхода новой версии, могу предложить лишь вариант ввода ручных команд для варианта vpn отличного от ssr:

iptables -w -t nat -A PREROUTING -p udp -d ${guest_net_gw_ip}/32 --dport 53 -j DNAT --to-destination ${vpn_gw_ip}:>
iptables -w -t nat -A PREROUTING -p tcp -d ${guest_net_gw_ip}/32 --dport 53 -j DNAT --to-destination ${vpn_gw_ip}:>
iptables -w -t nat -A POSTROUTING -s ${guest_net_ip}/24 -o ${guest_net_name} -j MASQUERADE

Где, 
vpn_gw_ip - адрес шлюза vpn сети, через которую работает Квас, например 172.10.0.1
guest_net_gw_ip
- адрес шлюза гостевой сети, например 192.168.2.1
guest_net_ip - ip адрес гостевой сети, например 192.168.2.0
guest_net_name - название гостевой сети, в терминах entware

Как это может выглядеть для Вашего случая? Написал небольшую заплатку для случая vpn, отличного от ssr:

#!/bin/sh

# имя гостевой сети в терминах entware
guest_net_name=$1
# имя vpn сети в терминах entware, которую используем в Квасе
vpn_net_name=$2

#-----------------------------------------------------------------
# переменные для скрипта
vpn_kn_name=$(cat /opt/etc/inface_equals | grep ${vpn_net_name} | cut -d'|' -f1)
vpn_reset_api="127.0.0.1:79/rci/interface/${vpn_kn_name}"
vpn_gw_ip=$(ip a | grep 'inet ' | grep "${vpn_net_name}" | sed 's/.*net \(.*\)\/.*scope.*/\1/g')
guest_net_ip=$(ip a | grep 'inet ' | grep "${guest_net_name}" | sed 's/.*net \(.*\)\/.*scope.*/\1/g')
guest_net_gw_ip="$(echo "${guest_net_ip}" | cut -d'.' -f1-3).1"

# устанавливаем правила для гостевой сети
iptables -w -t nat -A PREROUTING -p udp -d ${guest_net_gw_ip}/32 --dport 53 -j DNAT --to-destination ${vpn_gw_ip}:53
iptables -w -t nat -A PREROUTING -p tcp -d ${guest_net_gw_ip}/32 --dport 53 -j DNAT --to-destination ${vpn_gw_ip}:53
iptables -w -t nat -A POSTROUTING -s ${guest_net_ip}/24 -o ${guest_net_name} -j MASQUERADE

# перезапускаем vpn сеть
curl -s -d '{"down":"true"}' "${vpn_reset_api}" && sleep 3 && curl -s -d '{"up":"true"}' "${vpn_reset_api}"

Собственно, сохраняем заплатку в файл например так: 

nano /opt/apps/kvas/kvas.patch

Копируем туда содержимое и закрываем файл. После чего наделяем его правами на исполнение:

chmod +x /opt/apps/kvas/kvas.patch

и запускаем, например так:

cd /opt/apps/kvas/
./kvas.patch br1 ovpn_br0

Где первым аргументом будет имя гостевой сети в терминах entware. Вы выше уже указали его, это -  br1. Вторым аргументом является имя Вашей vpn сети, которую Вы используете в Квасе. Его можно узнать из файла /opt/etc/inface_equals, набрав команду: 

~ # cat /opt/etc/inface_equals
shadowsocks|ezcfg0|shadowsocks
OpenVPN0|ovpn_br0|VPN_ZAKARDON
Wireguard0|nwg0|WireGuardClient

В моем случае, вывод я привел выше. Зная, что я использую VPN сеть, которую в настройках роутера указал, как VPN_ZAKARDON, то при запуске заплатки в аргументах скрипта, я указываю имя VPN сети, как ovpn_br0, в Вашем случае, свой вариант.


UPD:
Простите, был не внимателен и пропустил, что Вас интересует противоположный случай, чем тот который я описал выше, т.е. "мимо Кваса".

Тут, тогда прошу у Вас уточнений, почему Вы решили, что путь второй сети лежит через Квас? Просто потому, что перестало работать? Нужны более веские аргументы. Например, вывод iptables-save | grep PREROUTING
 

Но в любом случае, прошу Вас перейти к обсуждению Вашего случая, либо в "личку", либо описать все подробно в github (раздел issues). 

Edited by Zeleza
  • Thanks 1
Link to comment
Share on other sites

39 минут назад, Zeleza сказал:

Тут, тогда прошу у Вас уточнений, почему Вы решили, что путь второй сети лежит через Квас?

при полном отключении флешки с entware все начинает работать штатно. На флешке только Adguard Home и КВАС. Подскажите, эти команды для MAC? Из под Windows делаю) Спасибо большое за помощь

Link to comment
Share on other sites

24 минуты назад, Goshanch сказал:

Подскажите, эти команды для MAC? Из под Windows делаю)

Для начала, поясните основную цель Вашу.

Я выше расписал Вам вариант, для добавления любой гостевой сети роутера в Квас (так как изначально они не имеют доступа к Квасу), так, чтобы ее клиенты могли "ходить" через  vpn сеть используемые в Квасе. Но, если я понял Вас правильно, то Вы хотите наоборот исключить гостевую сеть из Кваса (что собственно должно работать по умолчанию). 

Но повторюсь, чтобы не разводить тут дискуссию на 2-3 дополнительных листа форума, судя по задаваемым Вами вопросам, прошу написать, либо в "личку", либо описать все на github.

Link to comment
Share on other sites

  • 3 weeks later...
В 28.05.2023 в 21:59, wolfcharm сказал:

Здравствуйте. Есть проблема с тем, что трафик из приложения Steam идет через OpenVPN подключение. Не могу выяснить почему так происходит. КВАС установлен по инструкции. Список адресов прилагаю.
После того, как отключаю OpenVPN подключение и включаю снова, все нормально некоторое время и трафик идет напрямую, через некоторое время(часы/дни) снова начинает идти через туннель.
Помогите, пожалуйста, выяснить что происходит.

  Показать содержимое

image.png.f5ae8fe434e095661501fd8100fe32aa.png

UPD: не только трафик steam, сайты, которые не любят работать через VPN, не открываются.

Добрый день. Проблема такая же. Загрузка в STEAM очень сильно просела, предполагаю, что трафик идет через VPN. Если отключить kvas, скорость загрузки восстанавливается. В списках разблокировки стима также нет. Пробовал отключать adblock, adguard - не помогло. Подскажите, пожалуйста, что можно сделать?

  • Upvote 1
Link to comment
Share on other sites

4 часа назад, macweaver сказал:

Добрый день. Проблема такая же. Загрузка в STEAM очень сильно просела, предполагаю, что трафик идет через VPN. Если отключить kvas, скорость загрузки восстанавливается. В списках разблокировки стима также нет. Пробовал отключать adblock, adguard - не помогло. Подскажите, пожалуйста, что можно сделать?

Доброго дня,

Информации дополнительной и отладочной - "ноль". Потому, полагаю, Вам помочь никто не в силах, кроме Вас самого и кроме того, на основании чего Вы сделали вывод, что проблема может быть в Квасе?

Также, прошу заметить, что если у Вас реальные проблемы с Квасом, то их описание пожалуйста выкладывать здесь.

Edited by Zeleza
Link to comment
Share on other sites

Всем привет!

Столкнулся со следующей проблемой:

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

Соединение перезагружается именно каждый час - в час ночи, в 2, в 3 и так далее, не привязано к перезагрузке самого устройства. как по расписанию.

kvas period был 7 дней и как раз вчера 7 дней и прошло. я пока грешу на это, но бездоказательно.

kvas debug запустил - сам в выводе не увидел ничего подозрительного. к сожалению он не сохранился, показать нечего.

никаких концов найти не смог, да особо нигде, кроме cron и не смог посмотреть записи. self-test отправил в ТП.

после удаления kvas все нормализовалось.  настроил все заново (вместе с adguard опять), поставил period на 6 дней, посмотрим..

но сам kvas, конечно же, удобен. спасибо за проект!

------------

UPD

ответ ТП

"Добрый день!
Отключения ppp-сессии каждый час в диагностике не видно

Методика такая -
*) на ISP-интерфейсе включается режим "Без IP-адреса", работе интернета через PPPoE это не должно помешать
*) отключается Ping-Check на PPPoE, пока "ZTE Mobile Broadband" неактивно это можно сделать.
*) останавливается OPKG, чтобы ничего не могло вмешаться в работу
*) не изменяются настройки интернет-подключения, роутер не перезагружается во время наблюдения"

 

Edited by dok
UPD
  • Need more info 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...