У меня есть домен, который я купил у DynDNS. Я указал домен на свой IP-адрес, чтобы я мог запускать серверы. У меня проблема в том, что я не живу рядом с сервером ... Могу ли я использовать туннель SSH? Насколько я понимаю, это позволит мне иметь доступ к моим серверам. Я хочу, чтобы удаленный компьютер направлял трафик от порта 8080 через туннель ssh к клиенту ssh, являющемуся портом 80 моего ноутбука. Это возможно?
2 ответа
Это на самом деле довольно легко сделать, хотя это несколько скрыто в документации по ssh. Предполагая OpenSSH, основной синтаксис выглядит следующим образом:
ssh -R 8080:localhost:80 -N username@your-server.dyndns.org
Это откроет прослушивающий сокет на порту 8080 your-server.dyndns.org, и любые подключения, сделанные на your-server.dyndns.org:8080
будут перенаправлены через туннель SSH на компьютер, который открыл это соединение SSH и оттуда будет направлено на localhost:80
.
Опция -N
указывает SSH не открывать оболочку или что-то еще, просто установить переадресацию портов, чтобы вы могли отправить его в фоновый режим и оставить его работающим.
Putty использует почти такой же синтаксис, но встроен в некоторый GUI. Принцип тот же, хотя.
Но будьте осторожны в том, что вы делаете. Поскольку вы, по сути, направляете внешний трафик в свою сеть, вы пробиваете дыру в брандмауэре вашей сети. Если это не ваша сеть, ваш администратор может возразить на это и взять на себя ответственность - обычно есть причина, по которой вам не разрешен определенный вид трафика.
Чтобы переадресовать ваш локальный порт 80 не только на интерфейс обратной связи (127.0.0.1), вы должны сначала настроить GatewayPorts clientspecified
в /etc/ssh/sshd_config
на удаленной машине.
Затем перешлите ваш порт с:
ssh -R 0.0.0.0:8080:localhost:80 -N foo@bar.dyndns.org