Развёртывание с Caddy
Это руководство реализует схему TunGo через HTTPS с помощью Caddy. Подготовьте домен и DNS по обзору, затем замените example.com в примерах своим доменом.
Подготовка
- Linux-сервер, на котором TunGo и Caddy установлены непосредственно на хосте.
- Caddy, запущенный как служба systemd.
- TCP-порты
80и443, доступные Caddy и открытые из интернета для HTTPS и управления сертификатами.
1. Настройка Caddy
Сохраните любой лендинг как /srv/tungo-site/index.html, а его ресурсы поместите в тот же каталог. Можно выбрать другой каталог, но его путь должен совпадать с root в конфиге Caddy ниже.
Пользователю службы caddy нужны права на чтение файлов и проход по содержащим их каталогам.
Сохраните этот полный конфиг в /etc/caddy/Caddyfile:
example.com {
handle /ws {
reverse_proxy 127.0.0.1:1010
}
handle {
root * /srv/tungo-site
file_server
}
}
handle сохраняет путь /ws, который ожидает TunGo. Не используйте здесь handle_path: он удаляет совпавший префикс. Директива Caddy reverse_proxy автоматически обрабатывает переход на WebSocket.
Проверьте конфигурацию, затем перезагрузите настройки запущенной службы:
sudo caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile
sudo systemctl reload caddy
Перезагружайте настройки только после успешной проверки. Caddy автоматически получает и продлевает TLS-сертификат.
2. Настройка сервера TunGo
Настройте сервер TunGo и сгенерируйте клиентскую конфигурацию. Рекомендуем запускать сервер как демон для работы в фоне и автозапуска.
В /etc/tungo/server_configuration.json отключите транспорты TCP и UDP, оставьте только WS и привяжите его к loopback (127.0.0.1). После перезапуска TunGo перестанет слушать внешние сетевые интерфейсы. Из интернета TunGo будет доступен только через Caddy на HTTPS-порту 443.
Измените поля ниже и полностью замените объект WSSettings.Server. Остальные настройки сохраните:
{
"EnableTCP": false,
"EnableUDP": false,
"EnableWS": true,
"WSSettings": {
"Protocol": "WS",
"Server": {
"IPv4": "127.0.0.1"
},
"Port": 1010
}
}
Перезапустите TunGo, чтобы применить изменения.
3. Настройка клиента
Клиент будет подключаться по домену через стандартный HTTPS-порт 443. В конфигурации клиента укажите домен и порт в WSSettings, а верхнеуровневый Protocol установите в WSS.
Полностью замените WSSettings.Server, удалив прежние IP-адреса. Остальные настройки сохраните:
{
"WSSettings": {
"Server": {
"Domain": "example.com"
},
"Port": 443
},
"Protocol": "WSS"
}
В Domain указывается только доменное имя, без https:// и /ws; TunGo добавляет путь WebSocket самостоятельно. Сервер продолжает использовать WS, поскольку TLS завершается на Caddy.
Сохраните конфигурацию и запустите или перезапустите клиент согласно разделу «Настройка клиента».
4. Проверка подключения
- Откройте
https://example.comв браузере. Должен загрузиться ваш лендинг с действительным сертификатом. - Подключитесь клиентом TunGo и проверьте, что трафик проходит через туннель. Загрузка сайта сама по себе не проверяет VPN-подключение.