6.9 KiB
🔐 Прокси ru.hunab.app — руководство
Сервер: 149.154.64.19 | Домен: ru.hunab.app | Прод: hunab.app (209.38.32.21)
Оглавление
- Доступ и файлы
- Команды управления
- Безопасность
- Запросы-сканеры (serverless и др.)
- Редирект на прокси
- Скорость и тесты
- Telegram и SOCKS при старте
🔑 Доступ и файлы
| Параметр | Значение |
|---|---|
| SSH | ssh hsites-ahau или ssh -i ~/.ssh/id_ed25519 ahau@149.154.64.19 |
| SSH root | ssh -o StrictHostKeyChecking=accept-new -i ~/.ssh/hsites_new_deploy_key root@149.154.64.19 или ssh hsites-new |
| Пользователь | ahau (sudo), root через ключ hsites_new_deploy_key |
| ОС | Ubuntu 24.10 |
Важные пути на сервере:
- Nginx:
/etc/nginx/sites-available/ru.hunab.app(активный сайт может быть вsites-enabledкакru.hunab.app.proxy) - Логи:
/var/log/nginx/ru.hunab.app.proxy.access.log,ru.hunab.app.proxy.error.log - SSL:
/etc/letsencrypt/live/ru.hunab.app/ - Кеш:
/var/cache/nginx/
Проверка:
- Сайт: https://ru.hunab.app/
- Health: https://ru.hunab.app/proxy-health
- API: https://ru.hunab.app/api/health
🔧 Команды управления
Nginx: sudo nginx -t → sudo systemctl reload nginx
SSL: sudo certbot certificates, sudo certbot renew --dry-run
Безопасность: sudo ufw status, sudo fail2ban-client status
Логи: sudo tail -f /var/log/nginx/ru.hunab.app.proxy.access.log
Кеш: sudo du -sh /var/cache/nginx/; очистка: sudo rm -rf /var/cache/nginx/* + reload
Backup конфига: sudo cp /etc/nginx/sites-available/ru.hunab.app /home/ahau/nginx-backup-$(date +%Y%m%d).conf
Экстренно: sudo systemctl stop nginx; после правок: sudo nginx -t && sudo systemctl start nginx
🛡️ Безопасность
Чеклист и готовые конфиги (rate limiting, fail2ban, отсечение сканеров, доверенный прокси на проде, логи без утечек):
📖 SECURITY.md — чеклист и nginx/fail2ban-сниппеты.
Связь с общими стандартами:
📖 docs/security/SECURITY_STANDARDS.md — раздел Proxy & Edge Security (ru.hunab.app).
🔍 Запросы-сканеры (serverless и др.)
В логах прода с IP 149.154.64.19 видны запросы к /api/serverless/*, serverless.yml, .serverless/ и т.п. — это внешние боты, не скрипты на прокси. Чтобы не гонять их на прод, на прокси добавляют location с return 404 (см. SECURITY.md).
🇷🇺 Автоматический редирект
Редирект пользователей из РФ на ru.hunab.app реализован на фронтенде (HTML + JS). Детали и тесты:
📖 AUTOMATIC_REDIRECT_SOLUTION.md
📤 Загрузка файлов на прод через туннель (scp)
Для передачи больших файлов (например, git bundle для очистки истории) на production (209.38.32.21) из РФ используйте SSH ProxyCommand через прокси:
# Туннель: локальная машина → 149.154.64.19 (прокси) → 209.38.32.21 (прод)
PROXY_CMD="ssh -i $HOME/.ssh/id_ed25519 -o StrictHostKeyChecking=accept-new -W %h:%p hsites-ahau"
scp -i ~/.ssh/hunab_deploy_key -o ProxyCommand="$PROXY_CMD" -o ServerAliveInterval=15 \
/path/to/file.bundle hunab@209.38.32.21:/home/hunab/
Проверка размера файла на сервере (через тот же туннель):
ssh -i ~/.ssh/hunab_deploy_key -o ProxyCommand="$PROXY_CMD" hunab@209.38.32.21 "ls -la /home/hunab/file.bundle"
📊 Проверка скорости
Через прокси соединение до прода быстрее, чем прямо из РФ. Замеры: ~0.29s через ru.hunab.app vs ~3.2s напрямую. Для проверки с прокси-сервера к проду: expect temp/check_connection_speed.sh (с локальной машины).
Cursor IDE (PING timeout из РФ)
Если Cursor выдаёт PING timed out при работе из России, трафик можно пустить через тот же сервер по SOCKS (SSH -D). Подробно:
📖 docs/cursor/README.md — обход PING timeout через SOCKS-туннель (без отключения HTTP/2).
📱 Telegram и SOCKS при старте
Для стабильной связи Telegram (и других приложений) через тот же прокси поднимают SOCKS5 на 127.0.0.1:1081:
ssh -D 1081 ahau@149.154.64.19
Порт 1081 не пересекается с туннелем Cursor (10809).
Запуск при входе в систему (macOS)
Чтобы туннель поднимался при логине и перезапускался при обрыве:
cp connectivity/launchd/com.hunab.telegram-socks.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.hunab.telegram-socks.plist
Подробности и снятие с автозапуска: connectivity/launchd/README.md.
Ручное управление
Скрипт из репо (start/stop/status):
./connectivity/scripts/telegram-socks-tunnel.sh start # поднять
./connectivity/scripts/telegram-socks-tunnel.sh status # проверить
./connectivity/scripts/telegram-socks-tunnel.sh stop # остановить
В Telegram (или другом клиенте) укажите прокси: SOCKS5, 127.0.0.1, порт 1081.
SSL
Сертификат Let's Encrypt, обновление через certbot (timer). При первичной настройке или смене домена: временно nginx без SSL → certbot → включить полный конфиг с SSL. Скрипты в папке: get-ssl-certificate.sh, setup-ssl-auto-renewal.sh (при необходимости).