Кроме сервисов DynDNS (часто встроен в WiFi роутер) есть вариант простого тоннеля через ssh. Домашний компьютер соединяется по SSH с сервером (нашим) и уже затем заходя удалённо на тот сервер мы подключаемся к нашему домашнему компьютеру.
Несколько ссылок как это видят другие авторы
https://mihanentalpo.me/2016/05/
https://tokmakov.msk.ru/blog/item/472
http://youngblog.hoster-ok.com/raspberry-pi-i-obratnyj-ssh-tunnel-ili-kak-dobratsya-do-svoej-malinki-za-fajrvolom/
Всё замечательно работает но не хватает автозапуска - воспользуемся этой проверенной инструкцией https://www.micronbot.com/Raspberry-Pi/Pi-autossh.html
Копируем скрипт autossh.sh размещаем в каталоге init.d
/etc/init.d$ ls *.sh
autossh.sh console-setup.sh hwclock.sh keyboard-setup.sh
Скрипт "регистрируем" в загрузке
$ sudo chmod a+x /etc/init.d/autossh.sh #make the script executable
$ sudo update-rc.d autossh.sh defaults #create a link under "rc0.d" to the script
$ sudo update-rc.d autossh.sh enable #execute when startup
Запуск остановка скрипта
sudo /etc/init.d/autossh.sh stop
sudo /etc/init.d/autossh.sh start
Найти в каком конкретно файле происходит загрузка скрипта
ls /etc/rc4.d
ls /etc/rc5.d
ls /etc/rc6.d
ls /etc/rc3.d
ls /etc/rc2.d
Когда скрипт ненужен его можно удалить/остановить
#Remove the script's link under /etc/rc0.d
sudo update-rc.d /etc/init.d/autossh.sh remove
#Enable of disable the script
sudo update-rc.d /etc/init.d/autossh.sh enable|disable
Останавливаем - чтото пошло не так ...
sudo update-rc.d /etc/init.d/autossh.sh disableОстановим другим способом
update-rc.d: error: cannot find a LSB script for /etc/init.d/autossh.sh
systemctl stop autossh
See system logs and 'systemctl status autossh.service' for details.
Проверим состояние процесса
systemctl status autossh.service
autossh.service - LSB: starts the autossh
Loaded: loaded (/etc/init.d/autossh.sh; generated)
Active: inactive (dead) since Thu 2022-07-14 19:36:42 MSK; 46s ago
Docs: man:systemd-sysv-generator(8)
Process: 43883 ExecStop=/etc/init.d/autossh.sh stop (code=exited, status=0/SUCCESS)
июл 14 10:11:56 hm autossh[1185]: starting ssh (count 8)
июл 14 10:11:56 hm autossh[1185]: ssh child pid is 1794
июл 14 19:32:42 hm autossh[1185]: received signal to exit (15)
июл 14 19:36:42 hm systemd[1]: Stopping LSB: starts the autossh...
июл 14 19:36:42 hm autossh.sh[43901]: autossh: процесс не найден
июл 14 19:36:42 hm systemd[1]: autossh.service: Succeeded.
июл 14 19:36:42 hm systemd[1]: Stopped LSB: starts the autossh.
Все больше тоннель нЕработает
root@bits:~# ssh eka@127.0.0.1 -p 26681
ssh: connect to host 127.0.0.1 port 26681: Connection refused
Файл autossh.sh можно задать через консоль если нет нормального редактора
sudo nano /etc/init.d/autossh.sh
#!/bin/sh
### BEGIN INIT INFO
# Provides: autossh
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the autossh
# Description: starts the autossh
### END INIT INFO
#export AUTOSSH_DEBUG=1
export AUTOSSH_GATETIME=0
case "$1" in
start)
echo "start autossh"
sudo /usr/bin/autossh -M 10984 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=yes" -i /home/egorka/.ssh/id_dsa -R 26681:localhost:22 root@82.1.1.9
;;
stop)
sudo killall autossh
;;
restart)
sudo killall autossh
sudo /usr/bin/autossh -M 10984 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=yes" -i /home/egorka/.ssh/id_dsa -R 26681:localhost:22 root@82.1.1.9
;;
*)
echo "Usage: $0 (start|stop)"
;;
esac
exit 0
#Then save the file
Комментариев нет:
Отправить комментарий