1. Проведите аудит до изменений
Зафиксируйте ОС, память, маршруты, занятые порты, firewall, Nginx, сертификаты и неработающие services. Сделайте резервные копии всех файлов, которые планируется менять.
cat /etc/os-release free -h ip -brief address ip route ss -lntup systemctl --failed ufw status verbose nginx -T 2>/dev/null certbot certificates 2>/dev/null
2. Разделите роли
Каждый inbound должен иметь отдельный порт и отдельный UUID, пароль или ключ. WireGuard, OpenVPN, IKEv2 и OpenConnect распространяются отдельными client files, а не обычными URI подписки.
3. Установите официальные сборки
Установите sing-box из официального APT repository. Для Xray скачайте текущий stable ZIP и файл .dgst из XTLS/Xray-core Releases и обязательно сравните SHA-256 перед установкой.
install -d -m 0755 /etc/apt/keyrings curl -fsSL https://sing-box.app/gpg.key -o /etc/apt/keyrings/sagernet.asc chmod a+r /etc/apt/keyrings/sagernet.asc sha256sum Xray-linux-64.zip sed -n '1,8p' Xray-linux-64.zip.dgst /usr/local/bin/xray version
Официальные документы: установка sing-box и установка и проверка Xray.
4. TLS, Reality и права доступа
- При наличии domain используйте доверенный сертификат, правильный SNI и автоматическое renewal.
- Без domain используйте Reality для совместимых VLESS tests или законный IP certificate; не создавайте поддельный TLS certificate.
- Запускайте sing-box, Xray и Nginx от отдельных непривилегированных пользователей.
- SOCKS5 и HTTP CONNECT должны требовать authentication; не создавайте open proxy.
- Сначала проверьте конфигурации командами core, затем запускайте systemd services.
sing-box check -c /etc/sing-box/config.json /usr/local/bin/xray run -test -c /etc/xray/config.json systemctl enable --now sing-box xray ufw allow OpenSSH ufw allow <tcp-port>/tcp ufw allow <udp-port>/udp
5. Опубликуйте подписку SpellVPN
Сформируйте по одной проверенной ссылке на строку: ss://, vless://, vmess://, trojan://, hysteria2://, tuic://, socks5:// или authenticated https://. Правильно URL-encode параметры и Base64-encode весь файл.
install -d -m 0755 /var/www/vpn-sub base64 -w 0 share-links.txt > /var/www/vpn-sub/subscription.b64 chmod 0644 /var/www/vpn-sub/subscription.b64
В SpellVPN откройте Dashboard → + → subscription URL, вставьте HTTPS endpoint, импортируйте и тестируйте каждый node отдельно.
6. Проверяйте реальный трафик
Открытый port не доказывает работу proxy. Для каждого протокола используйте matching client, затем повторите тест из внешней сети.
ss -lntup curl --socks5-hostname 127.0.0.1:<local-test-port> https://api.ipify.org systemctl is-active sing-box xray nginx systemctl is-enabled sing-box xray nginx
- Все nodes возвращают public IP сервера.
- TCP и UDP transports проверены вне VPS.
- Подписка импортируется без скрытого пропуска nodes.
- После reboot services, firewall и certificate permissions остаются рабочими.
- После тестов меняются UUID, passwords, Reality keys и subscription token.