Raspberry Pi + xray между роутером и телевизором

Спасибо, что собрали все в одном месте!

У самого успешно работает схема с маршрутизацией нужных подсетей на виртуалку с sing-box (маршрутизирует сам Keenetic).
Но с доавблением новых сервисов схема становится все более громоздкой. Сначала мучался с поиском и добавлением подсетей youtube, потом discord…

Возможно, проще сделать так же как у вас и пустить весь трафик на sing-box с правилами на основе доменных имен.

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

Скажите, если делаю малину (или в моем случае виртуалку) шлюзом по-умолчанию, через нее же пойдет весь LAN-трафик тоже? опасаюсь просто, чтобы не стало узким местом всей домашей сети

LAN траффик идет как правило не доходя до маршрутизатора вообще. В одной локальной сети устройства работают напрямую, а это значит используют arp таблицу свитча/роутера, так что нет. на производительность локальной сети схема не повлияет. Если конечно вы не юзаете VLANы. Тогда это уже другой разговор. Там учувствует маршрутизация и там могут быть затыки, но это будет не большое снижение скорости траффика, при условии, что sing-box настроен верно.

Спасибо, все сделал, как у вас. Отлично работает!

Есть теперь только сложность с использованием VLESS-клиента на ПК.
Сейчас шлюзом по умолчанию стоит 192.168.1.65 - это виртуалка с поднятым sing-box, держит туннель VLESS (3X-UI) до VPS в Европе.

Когда на ПК запускаю клиент Foxray и соединяюсь с тем же VPS, трафик перестает ходить.
Если указываю на ПК (192.168.1.165) обычный шлюз - 192.168.1.1 (домашний роутер), все работает.

Насколько понимаю, проблема в том, что VLESS-трафик от клиента на ПК заворачивается повторно в тот же VLESS-туннель между шлюзом и VPS.

Видимо, нужно какое-то правило в конфиге sing-box, чтобы и входящий, и исходящий трафик в сторону
89.40.xx.xx шел напрямую.

+0300 2024-11-15 12:47:06 INFO [1162613644 0ms] inbound/tun[0]: inbound connection from 192.168.1.165:49977
+0300 2024-11-15 12:47:06 INFO [1162613644 0ms] inbound/tun[0]: inbound connection to 89.40.xx.xx:443
+0300 2024-11-15 12:47:06 DEBUG [1162613644 1ms] router: sniffed protocol: tls, domain: microsoft.com
+0300 2024-11-15 12:47:06 DEBUG [1162613644 2ms] dns: resolved [20.76.201.171 20.112.250.133 20.70.246.20 20.236.44.162 20.231.239.246]
+0300 2024-11-15 12:47:06 INFO [1162613644 2ms] outbound/direct[direct]: outbound connection to microsoft.com:443
+0300 2024-11-15 12:47:06 INFO [2452199677 0ms] inbound/tun[0]: inbound connection from 192.168.1.165:49978
+0300 2024-11-15 12:47:06 INFO [2452199677 0ms] inbound/tun[0]: inbound connection to 89.40.xx.xx:443
+0300 2024-11-15 12:47:06 DEBUG [2452199677 2ms] router: sniffed protocol: tls, domain: microsoft.com

Добавил в конфиг такое, но, похоже, это только для исходящего трафика. А VPN-сервер присылает и в обратную сторону.

         {
        "ip_cidr": "89.40.xx.xx",
        "outbound": "direct"
        },

Не подскажете, что можно сделать?

Честно говоря, у меня с этим тоже затык был. Решил просто добавлением маршрута в винде “route add…” указал в качестве шлюза ip маршрутизатора и все.

Сам задал вопрос, сам отвечу)

Нужно на машине, где sing-box добавить статический маршрут, чтобы она запросы в адрес европейского VPS перекидывала на шлюз роутера:

ip route add 89.40.xx.xx via 192.168.1.1