software:ssh:ssh-auto-tunnel

no way to compare when less than two revisions

Различия

Показаны различия между двумя версиями страницы.


software:ssh:ssh-auto-tunnel [2025/06/07 13:21] (текущий) – создано fireball
Строка 1: Строка 1:
 +====== SSH: Устойчивый тоннель ======
 +
 +Иногда бывает необходимо сделать тоннель подручными средствами. OpenVPN, Wireguard и прочее это все, конечно, здорово, но для некоторых случаев избыточно.
 +
 +Есть возможность быстренько настроить устойчивый тоннель средствами SSH и спрятать в нем трафик или сделать доступ к определенному сервису.
 +
 +Пример: заблокирован OpenVPN до определенного сервера, нужно пробросить локальный порт чтобы было подключение через ssh-тоннель.
 +
 +Что и где:
 +  * remote-user - наш пользователь, под которым будет осуществляться подключение. Авторизация по ключам, их необходимо создать заранее
 +  * LOCAL-IP - локальный IP, на который будет приниматься подключение
 +  * REMOTE-IP - удаленный сервер с OpenVPN
 +
 +Ставим autossh:
 +<code>
 +sudo apt install autossh
 +</code>
 +
 +Настраиваем подключение в файле /home/remote-user/.ssh/config:
 +<code>
 +Host REMOTE-IP
 +  HostName REMOTE-IP
 +  User remote-user
 +  IdentityFile ~/.ssh/id_remote-user
 +  IdentitiesOnly yes
 +</code>
 +
 +Создаем файл сервиса /etc/systemd/system/ssh-tunnel.service со следующим содержимым:
 +<code>
 +[Unit]
 +Description=SSH Tunnel
 +After=network.target
 +
 +[Service]
 +User=remote-user
 +ExecStart=/usr/bin/autossh -o ServerAliveInterval=30 -o "ServerAliveCountMax 3" -M 44444 -o ExitOnForwardFailure=yes -gnNT -L LOCAL-IP:1194:localhost:1194 remote-user@REMOTE-IP
 +RestartSec=15
 +Restart=always
 +KillMode=mixed
 +
 +[Install]
 +WantedBy=multi-user.target
 +</code>
 +
 +Запускаем:
 +<code>
 +systemctl daemon-reload
 +systemctl start ssh-tunnel.service
 +</code>
 +
 +{{tag>ssh autossh tunnel тоннель}}
  
  • software/ssh/ssh-auto-tunnel.txt
  • Последнее изменение: 2025/06/07 13:21
  • fireball