Поднимаем webdav-сервер в Linux и Windows
от aNNiMON
В этой статье я расскажу, как быстро развернуть webdav-хранилище под Linux или Windows. Это может понадобиться для подобных сценариев:
– Открыть доступ к папке с фотографиями на домашнем ПК, чтобы просмотреть их с телефона или выгрузить туда новые фотографии.
– Открыть доступ к фонотеке и иметь возможность проигрывать музыку на Android-устройстве или с другого компьютера, к которому подключены колонки.
При желании можно организовать и более сложные варианты, где будет использоваться аутентификация, а у пользователей будут права доступа к определённым директориям.
Содержание– Настраиваем webdav-сервер
– Подключаемся с Android
– Подключаемся с Windows
– Подключаемся с Linux
– Автозапуск сервера при загрузке системы
Настраиваем webdav-сервер1. Заходим на страницу https://github.com/hacdias/webdav/releases и качаем последнюю версию под свою систему (там множество сборок под все возможные платформы).
2. Распаковываем архив в удобную папку и создаём файл конфигурации config.yml:
2.1. В поле address указываем IP адрес компьютера в вашей локальной сети
2.2. В поле port укажите удобный свободный порт (убедитесь, что порт открыт и фаерволл не блокирует к нему доступ).
2.3. В users указываются пользователи, их пароли для входа и путь к директории, которая будет доступна им (используйте прямой слэш / для путей). В данном случае у пользователя admin будет полноценный доступ ко всей папке с музыкой, а пользователь share имеет доступ только к папке для обмена файлами.
2.4. Пароль можно задавать в открытом виде, как это сделано для пользователя share, но для администратора так делать не рекомендуется. Чтобы задать пароль, идём на https://bcrypt-generator.com/, в поле String to encrypt указываем желаемый пароль и нажимаем кнопку Hash
В данном случае для пароля
My5uper5ecretPa$$w0rd
получили хэш
$2y$12$E4n7DvySA7UfzyBTNikkFeSFuQ8sEDxI37hjCTZQyjouLm.Ox6G.2
Записываем в конфиг это значение с префиксом {bcrypt} и в двойных кавычках:
"{bcrypt}$2y$12$E4n7DvySA7UfzyBTNikkFeSFuQ8sEDxI37hjCTZQyjouLm.Ox6G.2"
3. Запускаем программу из консоли/терминала, передав файл конфига:
Если всё пройдёт успешно, покажется сообщение "Listening on 192.168.1.139:8082"
Подключаемся с AndroidЯ буду использовать MiXplorer, но подойдёт любой файловый менеджер с поддержкой webdav.
1. В боковом меню добавляем новое хранилище
2. Выбираем из списка WebDav
3. Вводим адрес, заполняем логин и пароль. Жмём Save.
4. Подключаемся и видим список наших файлов с полноценным доступом по сети.
Подключаемся с WindowsДля подключения можно воспользоваться WinSCP:
В диалоге создания сессии добавьте новый сайт, укажите протокол WebDAV и заполните значения
Также можно добавить хранилище в плеере AIMP:
Переходим на вкладку Мои облака, жмём ПКМ и Добавить хранилище
Заполняем данные
Если всё успешно, можно будет проигрывать музыку, которая находится на удалённом компьютере:
Также возможен вариант подключения через RaiDrive:
Выбираем Add, во вкладке NAS выбираем WebDAV, убираем галочку https (4), заполняем IP, порт, данные пользователя и нажимаем OK
Если сделали всё правильно, откроется проводник с указанной папкой, а в списке дисков появится новый диск Z:/
Подключаемся с LinuxНа примере Ubuntu. Заходим в Files -> Other Locations и внизу в поле Connect to Server вводим строку:
dav://192.168.1.139:8082
Жмём Connect и вводим данные пользователя:
После чего webdav-хранилище будет доступно в файловом менеджере.
Автозапуск сервера при загрузке системыДля быстрого поднятия сервера, чтобы послушать музыку пару часов или посмотреть фотографии несложно запустить сервер из командной строки вручную. Но что, если хочется, чтобы сервер стартовал сам при загрузке системы и был доступен всегда, пока включен компьютер? Да и лишнее окно с консолью иметь не хочется. В таком случае, нужно создать сервис.
В Linux можно добавить задачу в cron:
Либо добавить юнит для сервиса systemd.
В Windows так просто сервис не создать, но на помощь приходит NSSM. Скачиваем архив с программой и помещаем nssm.exe в папку %WINDIR% (обычно C:\Windows). В папке с webdav.exe открываем командную строку и вводим:
В появившемся окне выбираем программу webdav.exe, автоматически заполнится поле Path и Startup directory.
В Arguments вписываем
-c config.yml
А в Service name желаемое имя сервиса. После этого жмём Install service.
При желании можно заполнить описание на вкладке Details и выбрать желаемый способ запуска сервиса на вкладке Log on (по умолчанию сервис будет стартовать при входе в систему Windows).
Теперь в диспетчере задач будет виден новый сервис
Также можно проверить статус из командной строки:
Остановить службу:
Запустить её вновь:
Или вовсе удалить:
– Открыть доступ к папке с фотографиями на домашнем ПК, чтобы просмотреть их с телефона или выгрузить туда новые фотографии.
– Открыть доступ к фонотеке и иметь возможность проигрывать музыку на Android-устройстве или с другого компьютера, к которому подключены колонки.
При желании можно организовать и более сложные варианты, где будет использоваться аутентификация, а у пользователей будут права доступа к определённым директориям.
Содержание– Настраиваем webdav-сервер
– Подключаемся с Android
– Подключаемся с Windows
– Подключаемся с Linux
– Автозапуск сервера при загрузке системы
Настраиваем webdav-сервер1. Заходим на страницу https://github.com/hacdias/webdav/releases и качаем последнюю версию под свою систему (там множество сборок под все возможные платформы).
2. Распаковываем архив в удобную папку и создаём файл конфигурации config.yml:
- address: 192.168.1.139
- port: 8082
- auth: true
- tls: false
- users:
- - username: admin
- password: "{bcrypt}$2y$12$E4n7DvySA7UfzyBTNikkFeSFuQ8sEDxI37hjCTZQyjouLm.Ox6G.2"
- modify: true
- scope: "E:/MUSIC/"
- - username: share
- password: 12345
- modify: true
- scope: "E:/MUSIC/Share/"
2.2. В поле port укажите удобный свободный порт (убедитесь, что порт открыт и фаерволл не блокирует к нему доступ).
2.3. В users указываются пользователи, их пароли для входа и путь к директории, которая будет доступна им (используйте прямой слэш / для путей). В данном случае у пользователя admin будет полноценный доступ ко всей папке с музыкой, а пользователь share имеет доступ только к папке для обмена файлами.
2.4. Пароль можно задавать в открытом виде, как это сделано для пользователя share, но для администратора так делать не рекомендуется. Чтобы задать пароль, идём на https://bcrypt-generator.com/, в поле String to encrypt указываем желаемый пароль и нажимаем кнопку Hash
В данном случае для пароля
My5uper5ecretPa$$w0rd
получили хэш
$2y$12$E4n7DvySA7UfzyBTNikkFeSFuQ8sEDxI37hjCTZQyjouLm.Ox6G.2
Записываем в конфиг это значение с префиксом {bcrypt} и в двойных кавычках:
"{bcrypt}$2y$12$E4n7DvySA7UfzyBTNikkFeSFuQ8sEDxI37hjCTZQyjouLm.Ox6G.2"
3. Запускаем программу из консоли/терминала, передав файл конфига:
- webdav -c config.yml
Подключаемся с AndroidЯ буду использовать MiXplorer, но подойдёт любой файловый менеджер с поддержкой webdav.
1. В боковом меню добавляем новое хранилище
2. Выбираем из списка WebDav
3. Вводим адрес, заполняем логин и пароль. Жмём Save.
4. Подключаемся и видим список наших файлов с полноценным доступом по сети.
Подключаемся с WindowsДля подключения можно воспользоваться WinSCP:
В диалоге создания сессии добавьте новый сайт, укажите протокол WebDAV и заполните значения
Также можно добавить хранилище в плеере AIMP:
Переходим на вкладку Мои облака, жмём ПКМ и Добавить хранилище
Заполняем данные
Если всё успешно, можно будет проигрывать музыку, которая находится на удалённом компьютере:
Также возможен вариант подключения через RaiDrive:
Выбираем Add, во вкладке NAS выбираем WebDAV, убираем галочку https (4), заполняем IP, порт, данные пользователя и нажимаем OK
Если сделали всё правильно, откроется проводник с указанной папкой, а в списке дисков появится новый диск Z:/
Подключаемся с LinuxНа примере Ubuntu. Заходим в Files -> Other Locations и внизу в поле Connect to Server вводим строку:
dav://192.168.1.139:8082
Жмём Connect и вводим данные пользователя:
После чего webdav-хранилище будет доступно в файловом менеджере.
Автозапуск сервера при загрузке системыДля быстрого поднятия сервера, чтобы послушать музыку пару часов или посмотреть фотографии несложно запустить сервер из командной строки вручную. Но что, если хочется, чтобы сервер стартовал сам при загрузке системы и был доступен всегда, пока включен компьютер? Да и лишнее окно с консолью иметь не хочется. В таком случае, нужно создать сервис.
В Linux можно добавить задачу в cron:
- (crontab -l ; echo "@reboot cd /path/to/webdav/binary && webdav -c config.yml") | crontab -
В Windows так просто сервис не создать, но на помощь приходит NSSM. Скачиваем архив с программой и помещаем nssm.exe в папку %WINDIR% (обычно C:\Windows). В папке с webdav.exe открываем командную строку и вводим:
- nssm install
В Arguments вписываем
-c config.yml
А в Service name желаемое имя сервиса. После этого жмём Install service.
При желании можно заполнить описание на вкладке Details и выбрать желаемый способ запуска сервиса на вкладке Log on (по умолчанию сервис будет стартовать при входе в систему Windows).
Теперь в диспетчере задач будет виден новый сервис
Также можно проверить статус из командной строки:
- nssm status webdav
- nssm stop webdav
- nssm start webdav
- nssm remove webdav