В Tue, 24 Nov 2020 20:28:20 +0700 Евгений Золотов <sentinel...@gmail.com> пишет:
> Коллеги, дайте совет.. > > Есть домашняя машинка под Дебианом, все стандартно. Но выведена в > интернет через сотового оператора - со всеми его прелестями (IP не > уникальный, порты заглушены и пр.). Задача: достучаться до этого > компа извне через SSH. > > Я не прошу готового решения, просто набросайте идей. Собственно, > однажды уже решал эту задачу, но через ужасные костыли (промежуточный > сайт) и SSH не удалось. Сейчас понадобилось сделать нормально. > > Спасибо! Ну, во-первых, промежуточный сайт это не "ужасные костыли" а единственный способ организовать связь в таких условиях. То есть машинка должна автоматически устанавливать соединение с этим самым промежуточным сайтом, автоматически поднимать его заново после перерывов в связи и это соединение должно быть таким, чтобы через него можно было попасть по ssh на эту машинку. Первое, что приходит в голову - это организовать полноценный VPN. Например я в таких случаях испольую openvpn. Благо я его использую не только для этого, поэтому все мои машинки, которые могут оказаться за подобным провайдером все равно его при старте автоматически поднимают. А далее уже openvpn на сервере прописывает в DNS какой именно IP он выдал машинке у которой в CN сертификата такое-то имя. И с любой другой машинки подключенной к тому же VPN я хожу на все остальные как по локальной сети. Вариант второй - обойтись ssh. С помощью SSH тоже можно организовать полноценный VPN но нам это для данной задачи не требуется. Достаточно remote prot forwarding. Т.е. надо сделать так, чтобы у машинки при старте запускаласть ssh-сесиия с ключиком -R 8022:localhost:22 (8022 порт условный. соответственно набрав на любой другой машине ssh -p 8022 server мы теперь будем попадать не на сервер, а через этот тунелл на машинку за Nat. Я бы только посоветовал еще почитать внимательно про опции ServerAliveInterval и ServerAlvieCountMax в конфиге ssh. А то без них может оказаться что соединение либо будет обрываться провайдером по неактивности, либо ssh не будет замечать что связь оборвалась и пытаться перезапуститься. Ну а как сделать чтобы он пытался перезапуститься - про autossh тут уже написали. -- -- Victor Wagner <vi...@wagner.pp.ru>