Я хочу, чтобы localhost имел доступ к акциям SMB моей компании. Они расположены на узле Win7. Этот одноранговый узел запускает виртуальную машину с Debian, на которой запущен демон ssh.
Я могу легко создать туннель ssh от localhost к виртуальной машине, но не могу заставить работать пересылку / прокси SMB. Я слишком много читал об этом, в конечном итоге совершенно запутавшись в том, какой порт, на каком интерфейсе и хосте пересылать и тому подобное ...
Если я прав, мне нужно перенаправить порт 139 localhost на порт на моем прокси-сервере, а на самом прокси-сервере перенаправить порт 139 на порт туннеля ssh на том же хосте? Это вообще должно работать? Как мне настроить каждый хост для этого?
Сеть примерно так выглядит:
localhost ===(ssh)=== |router| ===(ssh)=== debian vm ===(smb)=== win7
Маршрутизатор просто перенаправляет SSH-соединение на виртуальную машину.
В ответ, который @Zoredache дает на этот вопрос хорошо подходит для того, чем вы хотите заниматься, хотя я собираюсь более подробно остановиться на нем для вашей ситуации.
Непонятно, использует ли маршрутизатор SSH-сервер из вашей диаграммы или вы просто говорите, что собираетесь передавать SSH-трафик через него. Я предполагаю, что вы просто перемещаете SSH-трафик через него через переадресацию портов, и в этом случае я бы:
Запустите сеанс SSH со своего ПК на общедоступный IP-адрес маршрутизатора, который, предположительно, имеет порт, перенаправленный на порт SSH-сервера виртуальной машины Debian.
Перенаправьте порт 139 на вашем ПК, указанный как 127.0.0.2:139, на IP-адрес LAN ПК с Windows 7, порт 139 (предполагается, что виртуальная машина Debian может получить доступ к ПК с Windows 7). Если вы используете OpenSSH, синтаксис будет следующим: ssh router-ip -L 127.0.0.2:139:win-7-pc-ip:139
Создать /etc/hosts
(или любой другой аналог того, что существует в вашей ОС), чтобы разрешить имя ПК с Windows 7 в 127.0.0.2
Это позволит вам получить доступ к ПК с Windows 7 по имени через локальный адрес обратной связи, который пересылается на порт SMB на ПК с Windows 7.