SSH два компьютера за брандмауэрами через внешний сервер - PullRequest
15 голосов
/ 18 февраля 2011

У меня два компьютера в университете. Оба они находятся за своего рода брандмауэром и т. Д., Что не позволяет мне напрямую подключать их через сеть. Они могут работать как на публичных компьютерах SSH, но я не могу понять, как выполнить ssh с одного на другой. Я также управляю небольшим веб-сайтом. У меня вопрос: могу ли я использовать публичный адрес моего сайта, чтобы каким-то образом соединить мои два компьютера, чтобы вся информация не проходила через мой сайт и не использовала всю мою пропускную способность? В идеале я хотел бы создать ssh-туннель между моими двумя компьютерами.

Я уже пробовал Hamachi, он больше не работает с macs, и я хотел бы получить больше контроля над соединением.

1 Ответ

15 голосов
/ 18 февраля 2011

Предположим, что вы хотите пройти ssh от MachineA к MachineB (оба в университете), пройдя через ваш ServerC (ваш публичный сервер).

Вам нужно будет запустить sshd на сервере C и на машине B.

Выполните следующие команды, предполагая, что ваш sshd прослушивает порт 22 на MachineB и ServerC:

# Forward incoming connections from ServerC:22000 to MachineB:22
(on MachineB) ssh -R22000:127.0.0.1:22 -N user@ServerC
# Forward incoming connections from 127.0.0.1:22000 to ServerC:22000
(on MachineA) ssh -L22000:127.0.0.1:22000 -N user@ServerC
# Establish the link between MachineA and MachineB
(on MachineA) ssh -p 22000 user@127.0.0.1

Для этого метода требуется доступ только к порту 22, и вы можете легко изменить его на 80 или 443, если ваш университетский прокси является злым.

...