Я хочу подключиться по 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 установить соединение через роутер с ПК. В то время как соединения TeamViewer являются одноранговыми (клиент подключается непосредственно к хосту), первоначальное соединение устанавливается с помощью серверов TeamViewer, которые сообщают хосту, что клиент пытается подключиться, а затем помогают облегчить прохождение NAT, имея сервер и клиент пытается открыть соединение, которое затем переведет брандмауэр в состояние, при котором соединение TeamViewer будет проходить через хост.
Трафик для подключения TeamViewer к главному компьютеру проходит через маршрутизатор во многом так же, как трафик от посещения веб-страницы, когда браузер на ПК проходит через брандмауэр, чтобы запросить веб-страницу, а затем получить ответ обратно. Основное отличие состоит в том, что используются «уловки» для открытия соответствующих портов на клиентском брандмауэре / маршрутизаторе и разрешения соединения с удаленного клиента TeamViewer.
Другой способ сделать это - использовать обратную переадресацию портов в ssh:
На сервере делаем:
ssh -R 2222: локальный хост: 22 _internet_server_you_own
Таким образом, вы получите ssh на свой компьютер через порт 2222 на internet_server. Я думаю, что это было раньше на serverfault.