У меня такая ситуация:
A ----- | ------ B ----- | ------ Работа
Работать можно по SSH в B, а A может по SSH в B, но кроме этого все защищено брандмауэром. Фактически я хотел бы создать туннель SSH между Work и A, чтобы я мог использовать VNC в Work из A.
С работы создал удаленный SSH-туннель:
ssh -R 5900:localhost:5900 B
Это означает, что я могу использовать VNC из B в работе. Но что мне нужно сделать, чтобы расширить это до A. Я попытался создать локальный SSH-туннель от A до B следующим образом:
ssh -L 5901:localhost:5900 B
Но это дает, bind: Cannot assign requested address
, так как 5900 уже назначено.
Есть ли у кого-нибудь идеи, как это сделать?
Просто чтобы ответить на мой собственный вопрос, по какой-то причине вам нужно принудительно использовать ipv4, то есть из A
ssh -4 -L 5901:localhost:5900 B
Это работает.
Я не уверен, будет ли мой ответ идеальным, но я попробую.
Очевидно, что настройка, которую вы пытаетесь сделать, не будет работать, поскольку вы перенаправляете с порта 5900 на B для работы, а также перенаправляете порт 5900 с A на B.
Но вы не можете использовать один и тот же порт для двух разных подключений, поэтому вы получаете сообщение об ошибке «привязка: невозможно назначить запрошенный адрес, поскольку 5900 уже назначен».
Что вы можете сделать, так это настроить пересылку на B.
Затем попробуйте использовать эту команду из A: # ssh -L 5901: localhost: 5901 B
А затем перенаправить трафик с порта 5901 на порт 5900 и наоборот на B.
У меня нет настройки и времени, чтобы проверить это, но мне очень любопытно узнать, будет ли это работать или нет.
Итак, просим вас вернуться сюда с результатами, как только вы это протестируете.