Предполагается, что у вас уже развёрнут NaiveProxy-сервер (Caddy + forwardproxy или аналог).
Подключитесь к роутеру по SSH (ssh root@192.168.1.1) и выполните:
cd /tmp
opkg list-installed | grep -q '^xz ' || { opkg update && opkg install xz; }
VERSION=$(wget -qO- https://api.github.com/repos/klzgrad/naiveproxy/releases/latest | sed -n 's/.*"tag_name": "\([^"]*\)".*/\1/p')
echo "Версия: $VERSION"
wget "https://github.com/klzgrad/naiveproxy/releases/download/${VERSION}/naiveproxy-${VERSION}-openwrt-aarch64_cortex-a53.tar.xz"
xz -d naiveproxy-*.tar.xz
tar -xf naiveproxy-*.tar
cp naiveproxy-*/naive /usr/bin/
chmod +x /usr/bin/naive
rm -rf /tmp/naiveproxy-*mkdir -p /etc/naive
cat > /etc/naive/config.json << 'EOF'
{
"listen": "socks://127.0.0.1:1080",
"proxy": "https://USERNAME:PASSWORD@YOUR-SERVER.COM",
"log": ""
}
EOFЗамените USERNAME, PASSWORD и YOUR-SERVER.COM на данные вашего NaiveProxy-сервера.
naive /etc/naive/config.json &
curl -x socks5://127.0.0.1:1080 https://ifconfig.me
killall naiveДолжен вернуть IP прокси-сервера.
cat > /etc/init.d/naive << 'EOF'
#!/bin/sh /etc/rc.common
START=90
STOP=10
USE_PROCD=1
start_service() {
procd_open_instance
procd_set_param command /usr/bin/naive /etc/naive/config.json
procd_set_param respawn
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}
EOF
chmod +x /etc/init.d/naive
/etc/init.d/naive enable
/etc/init.d/naive startЛоги доступны через logread -e naive.
Управление автозапуском — LuCI → System → Startup.
LuCI → Services → Podkop → секция:
- Тип подключения: Proxy
- Тип конфигурации: URL подключения
- URL:
socks5://127.0.0.1:1080
NaiveProxy не проксирует UDP. Если нужен UDP через туннель — включите опцию UDP over TCP в дополнительных настройках секции.
Для обновления naive до новой версии:
/etc/init.d/naive stop
cd /tmp
VERSION=$(wget -qO- https://api.github.com/repos/klzgrad/naiveproxy/releases/latest | sed -n 's/.*"tag_name": "\([^"]*\)".*/\1/p')
echo "Версия: $VERSION"
wget "https://github.com/klzgrad/naiveproxy/releases/download/${VERSION}/naiveproxy-${VERSION}-openwrt-aarch64_cortex-a53.tar.xz"
xz -d naiveproxy-*.tar.xz
tar -xf naiveproxy-*.tar
cp naiveproxy-*/naive /usr/bin/
chmod +x /usr/bin/naive
rm -rf /tmp/naiveproxy-*
/etc/init.d/naive start/etc/init.d/naive stop
/etc/init.d/naive disable
rm -f /usr/bin/naive /etc/init.d/naive
rm -rf /etc/naive
Еще замечу, что у меня возникли проблемы, когда sing-box не мог запуститься, т.к. не мог скачать списки. Потому что трафик через прокси не ходил, т.к. весь трафик идет на dpi-анализ sing-box, т.е. включая трафик прокси. Т.е. получается петля. Домен не резолвится, т.к. не работает sing-box, а sing-box не работает, т.к. домен не резолвится. Это как я понял... Может я несу дичь XD Но решается все либо добавлением домена в Exclusion секцию, либо добавлением ip в /etc/hosts
Спасибо за заметку! Единственно, можно было бы сделать чуть универсальнее, написав, как определять архитектуру своего роутера.
P.S.: