Какие есть альтернативы 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) Может быть, я упускаю еще какие-то решения?
На собственные эксперименты времени пока нет, может быть у кого-то есть опыт решения подобного вопроса.
ftp можно подключать как локальный диск, есть куча программ для этого, вот например бесплатная https://www.raidrive.com/
белый ип для сервера не обязателен, можно использовать что-нибудь типа zerotier (это к вопросу о безопасности), с ним можно и обычную самбу использовать
ИМХО VPN + Samba должно работать нормально. У меня так работает с офисными файлами на довольно слабом канале - 30 Мбит/с около 20 клиентов. Правда сервер тоже Windows.
Samba может нормально работать и без VPN, особенно, если это хоть и "гостевой" сервис, но ограничен разрешёнными IP в файрволле, и в этом случае это вполне безопасно.
ВПН может пригодиться, если:
- диапазон IP заранее неизвестен и постоянно изменяется. Совсем "голым портом" в интернет выставлять не рекомендуют, хотя, если раздать правильные права доступа, а сам сервер не будет иметь доступа к локальной сети предприятия, возможно, это будет приемлемо. Всё таки протоколу много лет и он постоянно совершенствуется;
- многие провайдеры запрещают трафик на сетевые порты, используемые Samba (137, 139, 445 и т.д.);
Подключаться к ресурсу придётся по IP, в "Сетевом окружении" этого ресурса не будет. Но как сетевой диск подключить можно.
Никакой. Нормально открытие файла "напрямую с диска" будет работать только в локальной сети. При работе через интернет будет глюкодром (отвалы, зависоны, тормоза), иначе бы никто не парился с изобретением костылей типа DAV.
Я так понимаю, что в случае с видео сначала произойдет достаточно продолжительная буферизация, а после нее последовательное чтение должно идти свободно для всех перечисленных вариантов... В таком случае, наверное, поднимать стоит Samba через VPN, как самый знакомый способ.
Или DAV для моего случая будет лучше, раз с этим костылем парились?
nidalee, Это от игралки зависит. Какие-то понимают, что файло где-то в #опе мира - и сначала буферизуют его, а уже потом играют (и по ходу параллельно буферизуют), а какие-то - не понимают и тупо считают - раз шара, значит локалка. Проблемы несомненно будут, хотя например у меня между домом и "домашним" севером - VPN, а порнушку я смотрю с нормальной скоростью, без задержек
nidalee, Открывать файлы размером в 10Гб с подобной шары - это конец работе - любое чтение следующей порции данных или запись файла/части файла будет вызывать весьма ощутимые задержки. В итоге пользователи будут сначала скачивать файлы себе на локальный диск, и это правильно.
Тут либо используемый софт должен быть специально заточен под подобный режим работы, либо никак.
По поводу вариантов подключения:
SAMBA и NFS - это протоколы предназначенные для использования внутри локальной сети, так что напрямую через интернет оба если и будут работать, то только с определенными ограничениями и плясками с бубном. Это связано с использованием широковещательных запросов, которые в инете будут, скорее всего, блокироваться провайдером.
Так что на самом деле вариантов только 2:
1.VPN + Samba. Примерно то же самое можно получить через sshfs.
2. WebDav (сюда же можно и S3 добавить)
Из них для работы через интернет реально предназначен только WebDav.
Впрочем, если каналы связи нормальные, то может и первый вариант будет работать сносно, но это надо тестировать в ситуации приближенной к реальности.
В любом случае, открывать файлы напрямую с диска и работать с ними будет не реально из-за больших задержек на каждый чих.
Если варианты перепробуешь и будет тупить - попробуй использовать удалённое открытие файлов.
В простейшем варианте это RDP. Но это не очень удобно, так как меняется вся рабочая среда.
В крутом варианте это remoteapp от микрософта (но он подтупливает) или Citrix в режиме Seamless window
Выглядит это так, что по ярлыку запускается прога - но на удалённом компе, а к тебе транслируется только картинка.
При этом для пользаков это вообще не заметно: ну открылась прога и открылась, где она исполняется им пофиг. Её можно свернуть, изменить размер окна и т.д.
Это будет быстрее, чем открывать 10гиговые файлы через сеть, имхо.
У меня так пользователи работали с 1с, и оно было в разы быстрее, чем работа с лакалтно установленной 1с, которая обращалась к БД по сети.
Как вариант использовать Direct Access - решение от M$ из коробки.
Есть минус - нужен отдельный сервер, клиентская ОС не ниже enterprise, хотя W10 enterprise можно сейчас оформить в виде подписки. Работает стабильно. На Хабре есть описание https://habr.com/ru/post/325458/