Я уже туннелировал смешанные клиенты linux и windows к «клиенту внутри брандмауэра» (который мог получить доступ к хосту общего ресурса), поэтому я знаю, что это, по крайней мере, возможно.

Но как насчет туннелирования напрямую от клиента к хосту сетевого ресурса?

Могу ли я заставить samba прослушивать порт, скажем, 5559 (просто пример), и принимать соединения только от localhost и туннелировать клиент 5559 на этот хост - так, чтобы клиент, казалось, подключался с localhost хоста? Я не могу понять, как это настроить. Пока что я настроил самбу:

hosts allow = 127.0.0.1 ::1 lo
interfaces = lo 127.0.0.1
bind interfaces only = yes

А я туннель от хозяина

ssh -R 5559:localhost:5559 shrusr@shrhost -Nf

Однако, если samba уже запущена, переадресация TCP не выполняется. Если туннель уже запущен, samba не может запуститься. Возможно ли то, что я пытаюсь достичь? Есть ли другой способ сделать это?

Кажется, что это должно работать - я могу даже netcat самостоятельно файлы через тот туннель ssh. Таким образом, у netcat нет проблем с прослушиванием того же порта, что и с ssh. Отказывается только smbd, а также блокирует ssh с этого порта, если запускается первым.

Любой совет будет принят во внимание.

1 ответ1

0

Кажется, что это невозможно, из-за туннелей SSH, представляющих "не вещательный интерфейс", который Samba по своей конструкции не будет слушать.

Я смог обойти это, используя OpenVPN вместо туннеля SSH. Хотя устройство «tun» также является не вещательным интерфейсом, форма «tap» является широковещательным интерфейсом; Самба действительно будет слушать такой интерфейс.

Если бы только NFS был таким же способным, как Samba. Я хотел бы иметь и выбор интерфейса, и реальные разрешения Unix, но NFS слишком перегружена и плохо спроектирована, чтобы ограничиваться одним интерфейсом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .