Ник Пост Дата
DanilaL

Всем доброго дня суток.

В связи с блокировками, я начал интересоваться всякими способами обхода блокировок/замедлений.
На данный момент имеется vps с настроенным xray+reality. Настроил клиенты в виде NekoBox и streisand (ios).
Пришла мысль о том, что скорее всего, можно каким-то образом настроить этот клиент где-то в начале моей домашней сети. Таким образом, все устройства, которые будут подключены к ней по LAN или wifi не будут нуждаться в vpn клиентах.

Но для реализации мне не хватает знаний. Подскажите, какие есть возможные способы воплощения в жизнь моей идеи?
В точки зрения железа, мне кажется, будет работать следующая схема:
ethernet от провайдера → WAN порт nanopi r4s (тут, например, стоит клиент xray) → r4s LAN идет в switch.

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

2024-08-10T14:54:18.324Z
0ka(0ka)

что у вас сейчас-то есть? не обязательно покупать мини пк с двумя ethernet портами, достаточно LAN. тут тема рядом на форуме уже есть где люди писали как сделали у себя

2024-08-10T15:06:10.931Z
Dhohbr 2024-08-10T15:14:15.009Z
0ka(0ka)

это к чему? типа предлагаете wireguard через reality?

2024-08-10T15:15:32.800Z
Dhohbr

Это ТС почитать. Там обсуждали разные варианты с отдельной железкой, может что-то понравится.

2024-08-10T15:18:31.587Z
DanilaL

В данный момент ничего нет, кроме роутера и vps.

Я в данный момент просто пытаюсь понять, что мне больше всего подойдет и как будет легче всего реализовать.
Я правильно понимаю, что наивно мне было полагать, что установка машины на линунке с двумя ethernet портами, куда я установлю nekobox для связи с vps, будет работать как я хотел?

2024-08-10T18:59:31.795Z
0ka(0ka)

будет, это легко сделать, только не через nekobox, а sing-box

в роутере нет поддержки vpn?

2024-08-10T19:02:09.866Z
DanilaL

Нет, это старенький archer c5 v4, на который даже openwrt встал еле-еле, на который к тому же не встают нужные для zapret или openvpn/wireguard kmod-* зависимости.
Поэтому я как раз пытаюсь понять, что мне лучше приобрести в моей ситуации: хороший роутер (например, tuf ax4200) или какую-то линукс машину.

2024-08-10T19:34:18.187Z
BBS

Присмотритесь к Orange Pi R1 Plus LTS. 2 гигабитных порта, USB, 1GB RAM, поддержка OpenWRT, Ubuntu, Debian. К нему же не сложно найти готовый корпус.

2024-08-10T21:50:57.500Z
DanilaL

В чем его принципиальная разница с nanopi r4s?

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

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

2024-08-11T08:42:24.284Z
Dhohbr

Разверните схему на виртуалке, и протестируйте.

2024-08-11T08:58:42.639Z
0ka(0ka)

именно по вашей схеме я не делал, у меня мини пк с 1 LAN, на нём amneziaWG, прописываю его как шлюз на устройствах. AmneziaWG можно заменить на sing-box, или маршрутизировать на awg либо прямо через dnsmasq ipset (наверное самый легкий для проца способ)

2024-08-11T09:40:54.458Z
sakontwist

У меня схема такая: минипк с 2-мя портами, на нем запущен xray core, который цепляется к нескольким ru-vps по ss, wg и vless через балансировку. Весь трафик с локальной сети на 80,443 заворачивается на xray через dokodemo. Уже на vps также через xray core делается вся маршрутизация куда надо.

2024-08-11T13:19:44.219Z
DanilaL

Не подскажите, для каких целей вы здесь используете ru-vps?

2024-08-11T15:21:50.556Z
spellozz(Spellozz)

Взять роутер, прошить под openwrt, настроить там туннель wg или sing box для xray, сделать маршрутизацию по доменам из списка или добавить свои.
По роутерам брать то, что шьется и с норм производительностью. Типа xiaomi ax3000t, ax 3200, можно взять уже готовый прошитый производителем routerich ax3000. Для подробностей посмотреть https://youtu.be/Otv-kMzGOSU

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

2024-08-11T15:48:53.064Z
sakontwist

Чтобы обращаться на ru-адреса напрямую.

2024-08-11T18:27:23.161Z
DanilaL

В процессе поиска информации наткнулся на такие ОС, как opnsense и pfsense. А после этого открыл для себя систему виртуализации Proxmox.
Изначально планировал, если я буду покупать минипк, использовать его ресурсы не только для реализации роутера. Proxmox в этом сильно поможет.
Сколько бы я не искал, не смог найти рабочий клиент VLESS под opn/pf-sense.
Но существуют клиенты для OpenWRT и закрадывается мысль о том, чтобы заменить *-sense ОС на OpenWRT.
Кто-то делал похожим образом?

2024-08-13T07:59:38.737Z
0ka(0ka)

На этом форуме ни у кого еще не видел *sense os

2024-08-13T09:23:54.183Z
bolvan

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

2024-08-13T10:14:45.643Z
Texsis

Если запускаете на proxmox, то лучше наверное для этих целей поднять виртуалку с openwrt и на ней все сделать. Либо просто виртуальную машину на Ubuntu допустим.

2024-08-13T10:41:23.746Z
DanilaL

А можете подсказать, как сделать подробную маршрутизацию? А именно Домашний роутер → ru-vps → eu-vps только для заблокированных ресурсов.
Я предполагаю, что на ru-vps стоит что-то наподобие sing box, который все это делает маршрутизирует. Не могу понять, как мне трафик вернуть обратно. Возможно, вопрос глупый, но пока что я не слишком силен в сетях.

Пообщавшись со знакомыми выяснил, что не у всех есть роутеры с нормальной поддержкой openwrt или ресурсов роутера недостаточно. Но что у первых, что у вторых хватает ресурсов на WG/OPN.
Предполагаю, что можно соорудить wg туннель от роутера до ru-vps, который уже возьмет на себя всю ношу маршрутизации (в целом точно также, как вы и описали).

2024-08-13T19:00:32.703Z
codeninja

У меня работает так:

Домашний роутер с openwrt. На нем поднят stunnel до vps. На vps обычный прокси без пароля доступный только на localhost (tinyproxy). Таким образом через туннель порт прокси оказывается открыт у меня в домашней сети. На всех устройствах я вношу в настройках, чтобы они подключались через прокси. Таким образом получается vpn без напряга даже на старых устройствах и утюгах.

Бонус: делаю PAC файл, который указывает какие сайты я хочу, чтобы шли через прокси.

Касательно вопроса ОП-а, xray можно поднять где-то в локальной сети или на роутере и также использовать его как прокси с других устройств.

2024-08-13T19:28:07.691Z
sakontwist

У меня есть специфика - домашний роутер это мини-пк. Поэтому схема реализуется просто. На всех узлах стоит x-ray core. Дома он забирает указанный трафик и гонит на ru-vps как клиент. На ru-vps он же разделяет запросы на условно ru - not-ru, но можно например делить по регионам, если есть vps в разных странах. Он же режет трекеры и прочий мусор. Дальше отдает либо сразу в директ, либо как клиент на удаленные vps.

Соответственно мобильные клиенты сразу по схеме road warrior цепляются на ru-vps.

Насчёт WG - да, можно поднять его до ru-vps и отправлять трафик туда по этому туннелю. Без проблем и это даже быстрее, только и запасной протокол лучше иметь на случай отвала WG.

Никакой трафик “обратно” возвращать не надо. Туда уходят запросы, обратно - ответы. Это не VPN в полном смысле этого слова, хотя сквозь x-ray я пускал и OpenVPN и WG успешно, но накладные расходы всё-таки ощутимы. Тут лучше тогда Cloak

2024-08-13T19:34:13.054Z
Xunlei

Через NAT.

Если на ru-vps настроены два тунеля входящий tun_ingress и исходящий tun_egress то можно настроить NAT примерно так:

  1. Добавить в /etc/iproute2/rt_tables именованную таблицу, например 128 transit.
  2. Добавить входящий интерфейс в неё ip rule add iif tun_ingress table transit
  3. Добавить шлюз ip route add default via адрес_шлюза_из_tun_egress table transit
  4. В брандмауэре создать зону для входящего трафика firewall-cmd --permanent --new-zone="ingress_zone"
  5. Добавить к ней входящий интерфейс firewall-cmd --permanent --zone="ingress_zone" --add-interface=tun_ingress
  6. Создать зону для исходящего трафика firewall-cmd --permanent --new-zone="egress_zone"
  7. Добавить к ней исходящий интерфейс firewall-cmd --permanent --zone="egress_zone" --add-interface=tun_egress
  8. Включить SNAT в исходящей зоне firewall-cmd --permanent --zone="egress_zone" --add-masquerade
  9. Создать политику транзита firewall-cmd --permanent --new-policy="in_to_e"
  10. Разрешить по умолчанию firewall-cmd --permanent --policy="in_to_e" --set-target=ACCEPT
  11. Добавить входящую зону firewall-cmd --permanent --policy="in_to_e" --add-ingress-zone="ingress_zone"
  12. Добавить исходящую зону firewall-cmd --permanent --policy="in_to_e" --add-egress-zone="egress_zone"
  13. Применить настройки брандмауэра firewall-cmd --reload
  14. ???
  15. PROFIT
2024-08-13T19:52:43.254Z
sakontwist

Я все-таки предпочитаю для маршрутизации использовать xray, т.к. это позволяет роутить по доменам и geosite (например geosite:google и т.п.). Обычный роутинг по адресам не дает такой гибкости.
Если уже есть зарубежный vps с xray, то наверное самое простое - весь трафки отдавать в wireguard до этого vps, кроме русских ip, в которые выходить напрямую через провайдера. Получить список ru-ip можно, например, с помощью GitHub - furriest/radb-tools: RADB tools, главное чтобы роутер это переварил. Ну а на vps просто натить весь трафик с wg в сторону интернет.

Если же вы хотите сделать более секурную схему, то тогда такой вариант - берется русский vps, до которого кидается WG. Весь трафик заворачивается в WG (default gateway). Как завернуть default и не сломать себе интернет - примеры есть на сайте wireguard.
Далее на ru-vps подхватываете трафик из туннеля wireguard в xray. Например вот так:

table ip xray {
	chain prerouting {
		type filter hook prerouting priority filter; policy accept;
		ip daddr 127.0.0.0/8 counter return
		ip daddr 224.0.0.0/4 counter return
		ip daddr 240.0.0.0/4 counter return
		ip daddr 255.255.255.255 counter return
		iifname "wg0" ip daddr { <здесь DST-сети и адреса, которые не надо заворачивать в xray> } counter return comment "ip no tproxy"
		ip saddr { <здесь SRC-сети и адреса, которые не надо заворачивать в xray > } counter return
		iifname "wg0" meta l4proto { tcp, udp } th dport { 80, 443 } counter meta mark set 0x00000001 tproxy to 127.0.0.1:12345 accept comment "capture to tproxy"
	}
}

Соответственно весь трафик на 80 и 443 попадает на порт 12345, где слушает xray:

  "inbounds": [
    {
      "tag": "in-tproxy",
      "listen":"127.0.0.1","port": 12345,
      "protocol": "dokodemo-door",
      "settings": {
        "followRedirect": true,
        "network":"tcp,udp"
      },
      "streamSettings": {
        "sockopt": {
          "tproxy": "tproxy"
        }
      },
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls", "quic", "fakedns"],
        "routeOnly": true
      }
    },
...

Затем уже внутри роутинга xray крутите куда угодно по странам, доменам, адресам, протоколам - часть напрямую, часть в бан, часть на зарубежные vps (причем любым способом связи - vless/wg/shadowsocks)

Ну либо есть еще один хитрый способ выделять нужный трафик и отправлять его в xray - fakeDNS. Когда xray работает как DNS-сервер, он может отдавать вместо реальных ip указанный вами диапазон:

	"dns": {
    	"servers": [
    		{
        		"address": "127.0.0.1","skipFallback": false   # -- это выход на локальный dns-ресолвер (unbound/dnscrypt)
    		},
			{
				"address": "fakedns",
				"domains": [
                	"geosite:instagram",
                	"geosite:microsoft",
                	"geosite:facebook",
                	"geosite:dell",
                	"geosite:twitter",
                	"full:play.google.com",
                	"full:yt3.ggpht.com",
                	"domain:proton.me",
                	"domain:sagernet.org"
		]
	},
	"fakedns": {
    	"ipPool": "192.168.192.0/22",
    	"poolSize": 1022
    }

Дальше нужно только подхватить все пакеты на этот пул и отправить куда вам надо для обхода - wireguard / tproxy / socks… Но подхватить этот трафик должен тот xray, который выдал fake-адреса, потому что он выполняет обратную подмену на реальные ip.

2024-08-14T08:11:00.634Z
Obema(Obema)

У меня как раз настроена схема с мини-пк. На минипк установлен proxmox, а также вставлена сетевуха на 4 порта по 2,5 Гбит. На proxmox настроена виртуалка с openwrt и туда проброшена сетевуха. Что касается роутинга, то настроить схему - заблокированные ресурсы через европейский vds, а остальные через ru vds очень просто - ставите sing box на openwrt и далее создаете два outbound (один для русского vds, а второй для европейского)и далее в роутинге прописываете какие домены идут в ru outbound, а какие в eu outbound

2024-08-16T06:19:02.196Z
s.v.d(00svd00)

У меня уже достаточно давно живёт такая схема. Есть апельсинка (Orange PI zero 3, сменила Raspberry pi 2B на этом посту), на которой крутятся всевозможные роутеры в скрытосети и прочие радости(i2p, tor, yggdrasil, opera proxy, dpitunnel) и собственно инсталляция xray, которая на входе имеет Wireguard интерфейс, а выходом смотрит либо в дикий интернет(туда заворачивается траффик на ру домены и торренты), либо через VLESS на импортный VPS. В качестве роутера некротик, где заворот траффика в local-wireguard(идущий в xray) осуществялется либо по ручками добавленным адрес листам, либо правилом по tls-host, которым в эти же листы адреса добавляются временно на 48 часов(актуально для сервисов с диким количеством хостов, типа как раз ютьюба). При этом всей домашней сети сам некротик прописан как DNS сервер, так что такой заворот работат в т.ч. и для хостов за CDN (т.к. получается что компы в ЛВС резолвят адрес хоста в тот же IP, что и в адрес листах самого некротика ибо подхватывают их из кеша). Ну и соотв. весь траффик, идущий на эти адреса mangle-ом отправляются в отдельную таблицу маршрутизации, которая заворачивается в этот самый локальный wireguard. Задержки оно почти не добавляет, буквально +1мс пинга. На импортном VPS соотв тоже есть выходы в дикий интернет и в Cloudflare WARP(куда заворачиваются опять же все РУ адреса по гео. Очень важно не ходить с иностранного впс до ру доменов, высоки шансы блокировки)
Ну и для i2p\tor заворот осуществляется через виртуальные DNS записи для всех i2p и onion хостов, а для yggdrasil я когда-то мануал постил на их вику на соотв. странице в комментах, там длинно.

2024-08-16T08:33:15.180Z
xofamim548

Я не совсем понял, а зачем вы в двух местах это делаете?

2024-08-16T09:09:19.008Z
s.v.d(00svd00)

Потому что я туда же иногда подключаюсь напрямую с телефона когда не дома.

2024-08-16T09:18:04.721Z
DanilaL

Спасибо, конфиги очень помогут в понимании!

У меня только есть пару вопросов: что именно нужно указывать в следующие строки конфигурации nftables

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

В процессе настройки я столкнулся со следующим, довольно странным поведением:

  1. Купил RU-VPS в МСК
  2. Поставил wg-easy и создал туннель
  3. Присоединился с телефона, в итоге доступен, например, инстаграмм. Никаких конфигов nft, никаких sing-box я не ставил. Но позже я проверил, что недоступен ntc.party, linkedin.com.

Проверил на двух разных RU-VPS у двух разных провайдеров. Поведение идентичное. С чем оно может быть связано?

Но благодаря вашим примерам конфигов я смог настроить схему WG client → VPS (wg tun to port 12345, sing-box inbound 127.0.0.1:12345 → eu vps).

Я могу как-то 100% убедиться в том, что sing-box работает? Логи и прочее.
Когда была схема подключения iOS client → eu-vps, там я отчетливо видел, что при посещении каких-либо ру сайтов, которые определяют местоположение по IP, они определяли что я в России. В то время speedtest.net показывал мне локацию EU-VPS.
При реализации схемы с двумя VPS (Ru + Eu) перестали работать различные сервисы, например chatGTP (openai.com). При прямом подключении к eu vps - работает отлично (openai)

2024-08-18T17:30:55.020Z
sakontwist

Здесь Я указываю адреса, которые не должны попадать в xray (в вашем случае в singbox). Например: телефон в домашней сети и я хочу с него подключиться к ru-черверу в МСК (просто проверить работу v2ray после правок) если не указать здесь dst-адрес сервера, то подключение пойдет через tproxy - home_inbound - wg-out - wg-in - msk_inbound, а это не нужно.

Насчёт логов в singbox не подскажу, но в xray (который по сути форк), есть раздел logs, который позволяет настроить логгирование dns, а также access.log, error.log и уровень событий.

Что и как блокирует провайдер и блокирует ли - непредсказуемо. Зависит от его масштаба и юрисдикции. И наличия Ревизора и ТСПУ, а также провайдеров на аплинке. Бывает что практически блокировок нет, только DNS местный, который и убивает ответы на запрещенку. А бывает что все прикрыто “как положено”, но рутрекер работает)

2024-08-18T17:36:01.170Z
DanilaL

Тогда не совсем понимаю, почему не работает openai? Почему-то пытаемся его получить из ru vps?

2024-08-18T17:53:04.639Z
sakontwist

Нужно проверять, что происходит после попадания трафика в ядро singbox. Во-первых, как обрабатывается dns в этой схеме. Во-вторых, работает ли sniffing. Запросы с transparent proxy не содержат никакой информации о домене и приложение должно их получить из сессии, чтобы роутинг мог понять, в какой outbound направлять трафик.

2024-08-18T20:51:16.942Z
AJleKcAHgP68

У меня очень давно работает такая схема
Vps сервер с протоколом VPN ↔ роутер с системой OpenWRT
На роутере настроено следующее:
Sing-box с протоколом vless reality в качестве интерфейса vpn
Ruantiblock для умного перенаправления трафика
Хороший трафик идет напрямую, заблокированный через vpn

Последний раз переделывал все по этому гайду с 4pda но вместо shadowsocks за строкой outbounds прописывал свой протокол vless reality
Конфигурацию вытащил из nekobox путем импорта в файл
Копируется все начиная от открытой квадратной скобки
Outbounds [
До закрытия этой скобки
]
Все остальное расписано в гайде, гайд доступен только при использовании vpn

Спойлер

P.s данные сервера изменены, не пытайтесь подключиться - бесполезно

В списках пользователя добавляю такие домены

Спойлер

#YOUTUBE
youtube.com
google.com
www.youtube.com
m.youtube.com
s.youtube.com
ytimg.com
s.ytimg.com
i.ytimg.com
ytimg.l.google.com
youtube.l.google.com
i.google.com
googlevideo.com
youtu.be
yt.be
accounts.youtube.com
consent.youtube.com
realtimesupport.youtube.com
studio.youtube.com
i9.ytimg.com
i.ytimg.com
yt3.ggpht.com
ggpht.com
youtubekids.com
googleusercontent.com
googleapis.com
youtubei.googleapis.com
notifications-pa.googleapis.com
gstatic.com
suggestqueries.google.com
# Прочее
habr.com
hdrezka.ag
rezka.ag
ntc.party
#Темная сторона 4pda
4pda.ru
4pda.ws
4pda.to

2024-08-18T21:17:50.718Z
BrOleg5

Тут ещё стоит отметить, что OpenAI не любит IP адреса всяких хостеров VPS (non-residental ip). Я с этим столкнулся и решил с помощью направления трафика с прокси в европе для домена openai на Cloudflare Warp. Делал как в этом коментарии. Таким образом у меня работают ChatGPT и MS Copilot.

2024-08-20T09:57:35.630Z
pinapun

У меня стоит похожая задача. Хочу настроить раздачу wifi с ВПН (vless+xtls-reality), чтобы все подключившиеся клиентские устройства прозрачно через него ходили. Вопрос что для этого проще всего взять? Есть базовое понимание работы с Linux, могу что-то настроить по гайдам. Думаю взять raspberry pi, подключить его к основному роутеру кабелем и раздавать с него wifi. Но вот конкретного гайда что ставить на расбери и как это настраивать я не нашел. Я даже не знаю какой расбери для этого лучше взять, что именно на него ставить и как это настраивать. Есть какой-то гайд на эту тему?

2024-08-22T15:11:21.972Z
0ka(0ka)

раздавать вайфай с raspberry не обязательно, написал в лс

2024-08-22T15:21:23.726Z