SSH туннели для VPS reverse proxy

📁 ~/Projects/docs-a2v/content/yasha/guides/ssh-tunnels-vps.md

Настройка SSH туннелей

VPS reg.ru (95.163.232.9)

# На Mac Studio: создать туннель для каждого сервиса
ssh -N -R 8080:localhost:8080 root@95.163.232.9    # leadera-api
ssh -N -R 8081:localhost:4096 root@95.163.232.9    # opencode
ssh -N -R 8082:localhost:4200 root@95.163.232.9    # leadera-fe
ssh -N -R 8083:localhost:8080 root@95.163.232.9    # docs-a2v

Настройка launchd plist

Файл: ~/Library/LaunchAgents/com.openclaw.sshtunnel.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.openclaw.sshtunnel</string>
    <key>ProgramArguments</key>
    <array>
        <string>ssh</string>
        <string>-N</string>
        <string>-R</string>
        <string>8080:localhost:8080</string>
        <string>root@95.163.232.9</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Автозапуск

# Загрузить plist
launchctl load ~/Library/LaunchAgents/com.openclaw.sshtunnel.plist

# Проверить статус
launchctl list | grep sshtunnel

# Удалить (при необходимости)
launchctl unload ~/Library/LaunchAgents/com.openclaw.sshtunnel.plist

Доступ к сервисам

Через reverse proxy на VPS:

  • code.a2v.space: порт 8080 → Mac Studio:4096
  • claw.a2v.space: порт 8081 → Mac Studio:8080 (leadera-api)
  • sand.a2v.space: порт 8082 → Mac Studio:4200 (leadera-fe)
  • docs.a2v.space: порт 8083 → Mac Studio:8080 (docs-a2v)

SSL

Все сервисы используют Let’s Encrypt сертификаты:

  • Путь: /etc/letsencrypt/live/{claw,code,sand}.a2v.space/
  • Автопродление через certbot