1. Подключаемся к серверу:
Советую обменяться ключами с сервером, чтобы потом заходить без пароля.
ssh-copy-id root@<SERVER-IP-ADDRESS>
ssh root@<SERVER-IP-ADDRESS>2. Далее автоматически обновляем систему:
apt update -y && apt upgrade -y3. Включаем Google BBR для повышения эффективности обмена трафиком (без этого работать будет медленно):
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p4. Ставим Go последней версии не из репозиториев Debian, так как там версия Go устаревшая:
wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
source ~/.profile5. Качаем исходники модифицированного Caddy с плагином forwardproxy:
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest6. Перед сборкой нужно сделать важный шаг, так как на арендованных VPS часто каталог /tmp бывает слишком мал, а все временные файлы качаются туда — мы подменим его на свой:
mkdir /root/tmp
export TMPDIR=/root/tmp
echo $TMPDIR # Должно вывести /root/tmp7. Далее собираем Caddy:
~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive8. Создаём каталог для файла конфига Caddy:
mkdir /etc/caddy
touch /etc/caddy/Caddyfile9. Этот шаг можно пропустить, но я рекомендую генерировать логин и пароль через openssl. Данные команды выведут 2 строки, сгенерированные в base64, их нужно будет скопировать и использовать на следующем шаге как логин и пароль:
apt install openssl -y # ставим openssl если он не стоит
openssl rand -base64 64 | tr -dc 'A-Za-z0-9' | head -c 16; echo # логин
openssl rand -base64 64 | tr -dc 'A-Za-z0-9' | head -c 16; echo # пароль10. После вставляем конфиг в Caddyfile, но перед этим нужно поменять:
your-domain.comна купленный домен;example@example.comна свою почту (на неё зарегистрируется сертификат);userиpassна свои логин и пароль из предыдущего шага;https://demo.cloudreve.orgменяем на любой сайт, под который хотим маскироваться. Также он будет доступен при прямом переходе по твоему домену.
cat <<EOF > /etc/caddy/Caddyfile
:443, your-domain.com
tls example@example.com
route {
forward_proxy {
basic_auth user pass
hide_ip
hide_via
probe_resistance
}
reverse_proxy https://demo.cloudreve.org {
header_up Host {upstream_hostport}
header_up X-Forwarded-Host {host}
}
}
EOF11. Перемещаем собранный бинарник Caddy в пользовательский каталог:
mv caddy /usr/bin/caddy
chmod +x /usr/bin/caddy12. Создаём systemd юнит для автоматического перезапуска:
touch /etc/systemd/system/caddy.service
cat <<EOF > /etc/systemd/system/caddy.service
[Unit]
Description=Caddy with NaiveProxy
After=network.target network-online.target
Requires=network-online.target
[Service]
Type=notify
User=root
Group=root
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile --force
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now caddy13. После запускаем Caddy в фоне. Он автоматически получит TLS-сертификат на указанную почту:
caddy start --config /etc/caddy/Caddyfile 14. Далее на ПК клиента нужно будет создать файл config.json с таким конфигом и заменить:
userна логин, указанный в Caddyfile;passна пароль, указанный в Caddyfile;demo10.cscot.buzzна домен вашего сервера (НЕ САЙТА МАСКИРОВКИ);
touch config.json
cat <<EOF > config.json
{
"listen": "socks://127.0.0.1:10808",
"proxy": "https://user:pass@demo10.cscot.buzz"
}
EOFНужно, если хотите скрыть IP сервера или разблокировать региональный контент.
1. Установить зависимости:
apt install -y curl gnupg lsb-release2. Установка WARP клиента:
curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/cloudflare-client.list
apt update && apt install cloudflare-warp -y3. Настройка режима прокси:
warp-cli registration new
warp-cli mode proxy
warp-cli connect4. Проброс трафика в Caddy:
Добавьте строку upstream socks5://127.0.0.1:40000 в ваш Caddyfile внутрь блока forward_proxy и выполните systemctl restart caddy.
- Для Android (Nekobox): GitHub Releases
- Для Windows/Linux (NekoRay): GitHub Releases
- Официальный NaiveProxy: GitHub