OpenWrt: различия между версиями
Владимир (обсуждение | вклад) |
Владимир (обсуждение | вклад) |
||
| Строка 113: | Строка 113: | ||
== Обход блокировок РКН == | == Обход блокировок РКН == | ||
На данный момент есть один хороший способ от ITDOG. Он подробно расписан в двух его статьях: | |||
[https://itdog.info/podnimaem-na-openwrt-klient-proksi-vless-shadowsocks-shadowsocks2022-nastrojka-sing-box-i-tun2socks/ Поднимаем на OpenWrt клиент прокси VLESS, Shadowsocks, Shadowsocks2022. Настройка sing-box и tun2socks] | |||
[https://itdog.info/tochechnaya-marshrutizaciya-po-domenam-na-routere-s-openwrt/ Точечная маршрутизация по доменам на роутере с OpenWrt] | |||
В них описывается установка SING-BOX, подключение к забугорному серверу несколькими способами и применение точечного обхода. | |||
Начинаем всё с установки по скрипту этого автора, кстати [https://github.com/itdoginfo/domain-routing-openwrt git] на этот скрипт. | |||
Скрипт организован очень удобно, запустил выбрал нужные параметры и радуешься. | |||
sh <(wget -O - <nowiki>https://raw.githubusercontent.com/itdoginfo/domain-routing-openwrt/master/getdomains-install.sh</nowiki>) | |||
Выбрать пункт sing-box, затем выбрать шифрование DNS stubby, и затем пункт для тех кто находится внутри России. | |||
Технически вот и весь точечный обход по доменам. | |||
Далее нужно всего лишь отредактировать конфиг, который отвечает за настройку подключения к забугорному серверу: | |||
Чтобы его отредактировать: | |||
nano /etc/sing-box/config.json | |||
Этот конфиг можно настроить на различные виды туннелей. Рассмотрим shadowsocks и VLESS: | |||
shadowsocks:<syntaxhighlight lang="json"> | |||
{ | |||
"log": { | |||
"level": "debug" | |||
}, | |||
"inbounds": [ | |||
{ | |||
"type": "tun", | |||
"interface_name": "tun0", | |||
"domain_strategy": "ipv4_only", | |||
"inet4_address": "172.16.250.1/30", | |||
"auto_route": false, | |||
"strict_route": false, | |||
"sniff": true | |||
} | |||
], | |||
"outbounds": [ | |||
{ | |||
"type": "shadowsocks", | |||
"server": "$HOST", | |||
"server_port": $PORT, | |||
"method": "2022-blake3-aes-128-gcm", | |||
"password": "$PASS" | |||
} | |||
], | |||
"route": { | |||
"auto_detect_interface": true | |||
} | |||
} | |||
</syntaxhighlight>VLESS<syntaxhighlight lang="json"> | |||
{ | |||
"log": { | |||
"level": "debug" | |||
}, | |||
"inbounds": [ | |||
{ | |||
"type": "tun", | |||
"interface_name": "tun0", | |||
"domain_strategy": "ipv4_only", | |||
"inet4_address": "172.16.250.1/30", | |||
"auto_route": false, | |||
"strict_route": false, | |||
"sniff": true | |||
} | |||
], | |||
"outbounds": [ | |||
{ | |||
"type": "vless", | |||
"server": "$HOST", | |||
"server_port": $PORT, | |||
"uuid": "$UUID", | |||
"flow": "xtls-rprx-vision", | |||
"tls": { | |||
"enabled": true, | |||
"insecure": false, | |||
"server_name": "$FAKE_SERVER", | |||
"utls": { | |||
"enabled": true, | |||
"fingerprint": "chrome" | |||
}, | |||
"reality": { | |||
"enabled": true, | |||
"public_key": "$PUBLIC_KEY", | |||
"short_id": "$SHORT_ID" | |||
} | |||
} | |||
} | |||
], | |||
"route": { | |||
"auto_detect_interface": true | |||
} | |||
} | |||
</syntaxhighlight>Рекомендую целиком вставить этот код в файл, во избежание несоблюдения синтаксиса. | |||
Откуда брать все эти данные? Они как раз таки генерируются на сервере за бугром. Об этом я напишу отдельную статью. | |||
---- | |||
После того как получили эти параметры, можно перезагрузить роутер. И проверить появился ли тоннель tun0 | |||
Например с помощью команды: | |||
ip a | |||
У меня это выглядит так | |||
---- | ---- | ||
Текущая версия от 16:23, 28 августа 2024
Тут я опишу все то что нужно знать по части настройки роутеров на OpenWrt.
Скажем по простому это линукс на роутере. А значит полная свобода по настройке. Остается только знать как и для чего - можно применить.
Очень большой процент роутеров способны работать с OpenWrt. Качество работы зависит от производительности ЦП устройства. Так же версия прошивки.
В данном описании всё касается версии OpenWrt 21.02 - на 13.09.21. Устройство Xiaomi Mi Router 3 Pro. Устройство достаточно производительное чтобы переваривать множество задач.
Начну с базовых вещей:
Первая настройка
Нужно понимать - это линукс, есть в настройках бекап, но это всего лишь некий список конфигов которые роутер сохранит в файле. Установленное ПО не будет удалено. Сделать полный сброс можно только хардресетом.
Сброс настроек
Долгое удержание кнопки reset до тех пор пока не замигает красным индикатор. После чего произойдет сброс настроек. Но не до заводских, это просто отчистка ОС.
ssh
При первом запуске OpenWrt попросит пароль, но его вводить не нужно, его нет.
Его нужно задать в sytem/Admin Password
там придумываем пароль для root
он же будет паролем для ssh
так же можно приложить ключ ssh для доступа по ключу, это удобнее.
Русификация
Для OpenWrt существует оболочка luci, веб морда если по-другому. Мы и видим её в браузере. Для этой оболочки есть скины и языковые пакеты. Устанавливаются они как пакеты.
Есть два способа установить пакет:
Используя оболочку:
Идем в system/Software, далее нажимаем Update lists..., перед нами список пакетов доступных для установки.
Найдем luci-i18n-base-ru, это и есть русификатор интерфейса для luci.
Так же можно установить luci-i18n-firewall-ru, это русификатор для модуля firewall, он считается отдельным.
Используя командную строку по ssh.
Подключаемся к роутеру по адресу 192.168.1.1:
ssh root@192.168.1.1.
Выполняем обновление списка пакетов:
opkg update && opkg install luci-i18n-base-ru luci-i18n-firewall-ru
Готово
Первоначальная русификация есть. Остальные русификаторы устанавливаются по мере установки других пакетов.
Настройка pppoe
В моём случае это pppoe от Ростелекома;
Настраивать его нужно в интерфейсе WAN;
Идем в Сеть/Интерфейсы;
На против WAN нажимаем изменить;
Протокол выбираем pppoe;
Появляются поля для заполнения;
В разделе Дополнительные настройки, Получение IPv6-адреса отключаю IPv6, почему то нормально не работает у меня с ним.
После этого Сохраняем и применяем.
Интернет должен появится.
Настройка беспроводных сетей
На роутере предусмотрено два диапазона 2.4 и 5 гигагерц.
Перехожу Сеть/Беспроводная.
Выбираю нужную сеть и нажимаю изменить.
Ввожу название сети, в вкладке Безопасность, выбираю WAPA2/WAPA3, задаю пароль, сохраняю. Тоже самое для второго диапазона.
Выполняю сохранение и применение.
После чего на против каждой нажимаю включить.
Готово WiFi есть.
Проброс портов
Для работы сервисов требуется перенаправление запросов по портам.
Это настраивается в Сеть/Межсетевой экран/Перенаправление портов.
Нажимаем добавить, даем имя перенаправление (может быть любым), выбираем протокол TCP, UDP или оба, Выбираем внешний порт (80, 443), выбираем внутренний порт (80, 443), и ip адрес машины на которую будет происходить перенаправление.
Я делаю перенаправление для портов: 80 и 443 на машину с NGINX. Для работы сайтов.
Постоянные аренды
Можно привязать к машинам постоянные ip адреса, это нужно во многих случаях.
Настраивается это в Сеть/DHCP и DNS/Постоянные аренды.
Нажимаем добавить, даем имя, можно выбрать машины по MAC (обычно если в сети есть машина то роутер о ней уже знает, так что можно выбрать из списка), нажимаем сохранить.
Так делаем для всех машин на которых нужно сохранить постоянный IP.
На этом можно закончить базовую настройку роутера на OpenWRT.
Обход блокировок РКН
На данный момент есть один хороший способ от ITDOG. Он подробно расписан в двух его статьях:
Точечная маршрутизация по доменам на роутере с OpenWrt
В них описывается установка SING-BOX, подключение к забугорному серверу несколькими способами и применение точечного обхода.
Начинаем всё с установки по скрипту этого автора, кстати git на этот скрипт.
Скрипт организован очень удобно, запустил выбрал нужные параметры и радуешься.
sh <(wget -O - https://raw.githubusercontent.com/itdoginfo/domain-routing-openwrt/master/getdomains-install.sh)
Выбрать пункт sing-box, затем выбрать шифрование DNS stubby, и затем пункт для тех кто находится внутри России.
Технически вот и весь точечный обход по доменам.
Далее нужно всего лишь отредактировать конфиг, который отвечает за настройку подключения к забугорному серверу:
Чтобы его отредактировать:
nano /etc/sing-box/config.json
Этот конфиг можно настроить на различные виды туннелей. Рассмотрим shadowsocks и VLESS:
shadowsocks:
{
"log": {
"level": "debug"
},
"inbounds": [
{
"type": "tun",
"interface_name": "tun0",
"domain_strategy": "ipv4_only",
"inet4_address": "172.16.250.1/30",
"auto_route": false,
"strict_route": false,
"sniff": true
}
],
"outbounds": [
{
"type": "shadowsocks",
"server": "$HOST",
"server_port": $PORT,
"method": "2022-blake3-aes-128-gcm",
"password": "$PASS"
}
],
"route": {
"auto_detect_interface": true
}
}
VLESS
{
"log": {
"level": "debug"
},
"inbounds": [
{
"type": "tun",
"interface_name": "tun0",
"domain_strategy": "ipv4_only",
"inet4_address": "172.16.250.1/30",
"auto_route": false,
"strict_route": false,
"sniff": true
}
],
"outbounds": [
{
"type": "vless",
"server": "$HOST",
"server_port": $PORT,
"uuid": "$UUID",
"flow": "xtls-rprx-vision",
"tls": {
"enabled": true,
"insecure": false,
"server_name": "$FAKE_SERVER",
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "$PUBLIC_KEY",
"short_id": "$SHORT_ID"
}
}
}
],
"route": {
"auto_detect_interface": true
}
}
Рекомендую целиком вставить этот код в файл, во избежание несоблюдения синтаксиса.
Откуда брать все эти данные? Они как раз таки генерируются на сервере за бугром. Об этом я напишу отдельную статью.
После того как получили эти параметры, можно перезагрузить роутер. И проверить появился ли тоннель tun0
Например с помощью команды:
ip a
У меня это выглядит так