Какие есть альтернативы Samba для подключения сетевого диска вне локальной сети?
==================================================================================

 Имеется домашний сервер с белым IP на Ubuntu Server 20, на нем подняты Samba и FTP, прикручен nginx. Подключение гигабит.  

Хочется сделать сетевую шару доступной клиентам на **Windows** через Интернет в виде **сетевого диска**, после некоторых раздумий пришел к следующим вариантам:  

1) Пробросить порт Samba напрямую в Интернет - плохой вариант, небезопасно.  

2) Поднять VPN сервер и запускать клиентов в Samba через VPN - приемлемый вариант, безопасно.  

Оба варианта выше *предварительно* не нравятся, потому что после непродолжительного гугления было найдено несколько сообщений о том, что Samba плохо переносит соединения с задержкой, и есть предположение, что пинг у такого подключения будет не меньше 10, если не >40. Не знаю, насколько такая цифра критична, конкретики не было.  

  

3) Поднять webdav на nginx - плохой (?) вариант, судя по тем же результатам поиска будет медленнее Samba.  

4) NFS - давние эксперименты с NFS закончились провалом - нормально шара работала только в локальной сети, но не нужна при наличии Samba и отсутствии Mac. NFS вообще работает\имеет смысл не в локальной сети?  

  

Требование одно: подключение клиенту Windows в виде сетевой шары, то есть network drive, с возможностью не только скачивать, загружать и удалять файлы (FTP), но и **открывать их напрямую** с диска. Мелких файлов не ожидается вообще, скорее всего они будут не меньше 10 гигабайт. Желательно, конечно, выжать из гигабита максимум. Клиенты будут доверенные, поэтому вопрос безопасности стоит только в плоскости уязвимостей (привет тухлым версиям Samba).  

  

Вопроса два:   

1) Какой из этих вариантов будет работать быстрее всего?  

2) Может быть, я упускаю еще какие-то решения?  

  

На собственные эксперименты времени пока нет, может быть у кого-то есть опыт решения подобного вопроса. 

 Никакой. Нормально открытие файла "напрямую с диска" будет работать только в локальной сети. При работе через интернет будет глюкодром (отвалы, зависоны, тормоза), иначе бы никто не парился с изобретением костылей типа DAV. 

 Попробуй <https://github.com/billziss-gh/sshfs-win>  

 (предварительно надо будет еще поставить <https://github.com/billziss-gh/winfsp/releases/tag/v1.8>)  

  

Мапишь линуксовые шары в винде через ssh, типа так  

  

замапить на диск X домашнюю папку юзера linuxuser с linux.host.com  

net use X: \\sshfs\linuxuser@linux.host.com\.  

  

замапить на диск X папку home с linux.host.com  

net use X: \\sshfs.r\linuxuser@linux.host.com!anotherport\home  

  

можно также заюзать ssh ключи и мапить автоматом, без ввода пароля 

 никакой, windows поддерживает только samba и открытие через браузер.  

подддержка nfs у неё откровенно наплевательская. 

 Если варианты перепробуешь и будет тупить - попробуй использовать удалённое открытие файлов.  

В простейшем варианте это RDP. Но это не очень удобно, так как меняется вся рабочая среда.  

  

В крутом варианте это remoteapp от микрософта (но он подтупливает) или Citrix в режиме Seamless window  

  

Выглядит это так, что по ярлыку запускается прога - но на удалённом компе, а к тебе транслируется только картинка.  

При этом для пользаков это вообще не заметно: ну открылась прога и открылась, где она исполняется им пофиг. Её можно свернуть, изменить размер окна и т.д.  

  

Это будет быстрее, чем открывать 10гиговые файлы через сеть, имхо.  

  

У меня так пользователи работали с 1с, и оно было в разы быстрее, чем работа с лакалтно установленной 1с, которая обращалась к БД по сети. 

 Как вариант использовать Direct Access - решение от M$ из коробки.   

Есть минус - нужен отдельный сервер, клиентская ОС не ниже enterprise, хотя W10 enterprise можно сейчас оформить в виде подписки. Работает стабильно. На Хабре есть описание <https://habr.com/ru/post/325458/>