Я хотел бы подключиться по SSH к компьютеру за брандмауэром, который блокирует SSH-соединения (входящие и исходящие). Забавно, но я все еще могу получить доступ к компьютеру с помощью программы TeamViewer для удаленного рабочего стола. Я предположил, что TeamViewer разрешен, потому что он использует порт, отличный от порта SSH по умолчанию 22, поэтому я добавил следующие порты в / etc / ssh / sshd_config:
Port 22
Port 443
Port 80
Port 5938
Port 10000
, а затем попытался подключиться к каждому из них по очереди, используя (например, )
ssh user@remote-computer.com -p 5938
Ни один из портов не работает: я все еще получаю ошибку Connection timed out
.
Почему TeamViewer может подключаться к удаленному компьютеру, а SSH - нет? Как я могу подключиться по SSH к удаленному компьютеру (или выйти из него)?
Если вы хотите подключиться через SSH к компьютеру за брандмауэром, то вам нужно добавить правило переадресации портов (DNAT) на порт 22 брандмауэра (или любой другой порт, который вы решите использовать) к порту SSH на внутреннем сервере.
TeamViewer способен пробиться, используя такие методы, как NAT Traversal и UDP holeching для установления соединения через маршрутизатор к компьютеру. В то время как соединения TeamViewer являются одноранговыми (клиент подключается напрямую к хосту), первоначальное соединение устанавливается с помощью серверов TeamViewer, которые сообщают хосту, что клиент пытается подключиться, а затем помогают облегчить NAT-обход, заставляя сервер и клиента пытаться открыть соединения, которые затем переводят брандмауэр в состояние, в котором он будет позволять соединению TeamViewer проходить к хосту.
Трафик для соединения TeamViewer с компьютером-хостом проходит через маршрутизатор так же, как и трафик от посещения веб-страницы, когда браузер на ПК проходит через брандмауэр, чтобы запросить веб-страницу, а затем получить ответ обратно на нее. Основное отличие заключается в том, что "уловки" используются для открытия соответствующих портов на клиентском брандмауэре/маршрутизаторе и разрешения соединения с удаленным клиентом TeamViewer.
.Другой способ - использование обратной переадресации портов в ssh:
На сервере do:
ssh -R 2222:localhost:22 _internet_server_you_own
Таким образом, вы получите ssh на вашу машину в порт 2222 на Internet_server. Думаю, раньше это уже было рассмотрено на сервере.