HFS — программа под Windows, предназначенная для организации доступа к файлам посредством HTTP. Удобный интерфейс, отсутствие необходимости настройки дополнительных клиентов (FAR, Total Commander и прочих), простота — вот основные достоинства, которые оценит пользователь системы. Кроме того, программа бесплатна.
Несмотря на то, что программа очень проста, она не имеет русскоязычного интерфейса. Поэтому здесь я подробно напишу, как ей пользоваться.
Программа работает без установки, в общем случае ее можно просто скопировать в любую папку, например Program Files:
После размещения, можно ее запускать и настраивать. Программа работает как HTTP-сервер, наподобие Apache, то есть при ее закрытии загрузить файлы будет невозможно.
Поэтому необходимо организовать работу программы в качестве сервиса. Можно использовать метод на основе srvany, как это описывается по ссылке http://support.microsoft.com/kb/137890/ru. Однако, этот метод не является оптимальным из-за следующего неприятного эффекта: если пользователь войдет на сервер по RDP, а затем выйдет (осуществит logoff), то HFS будет выгружен из памяти, попросту говоря, он «вылетит». Чтобы HFS работала надежно как сервис, было создано отдельное приложение – HFS-Service, которое можно скачать отсюда. Оно очень просто в использовании, и также не требует установки. Его можно скопировать в ту же папку, что и HFS.
Теперь рассмотрим основные этапы работы с HFS. Войдя в программу, лучше перейти в экспертный режим, так как там, по сравнению с обычным, доступно больше настроек:
После этого следует указать порт, который будет слушать программа и по которому будет доступен веб-интерфейс:
У любого сервера есть IP – адрес, а может быть и не один (различные сетевые карты, различные каналы связи и прочее). Поэтому нужно указать программе, к какому IP – адресу она будет прикреплена:
Так как мы хотим, чтобы пользователи загружали файлы в определенную папку на сервере, ее необходимо создать обычным способом:
Далее, перетащить папку мышью в левое окно программы. Появится всплывающее окно, спрашивающее, как будет интерпретирована папка внутри программы:
Нужно выбрать Real folder.
Каждому пользователю-клиенту, для удобства, можно выделить собственную папку.
Теперь можно зайти в веб-интерфейс и посмотреть, отображается ли созданная папка:
Как видно, она отображается. Но к ней не настроен доступ на чтение и запись.
Доступ на чтение для конкретной папки настраивается с помощью меню Restrict Access. Для вызова нужно нажать на папку правой кнопкой мыши:
Отсюда можно создать аккаунт пользователю для доступа или разрешить доступ анонимному пользователю.
Если мы уже создали нескольких пользователей, то можно будет выбрать, кому давать доступ на чтение, а кому нет:
Чтобы дать кому-то возможность загружать файлы, нужно выбрать пункт меню Upload:
Можно дать возможность загрузки для всех (Anyone), или выдать такие права только избранным:
Теперь мы можем загружать файлы через веб-интерфейс:
В общем случае управление пользователями и их правами осуществляется следующим образом:
Следует отметить, что все настройки по умолчанию сохранятся для текущего пользователя. То есть никакой другой пользователь (в том числе System) наши изменения настроек не увидит, и программа будет запускаться для каждого пользователя со своими настройками. Чтобы настройки сохранялись для всех пользователей, нужно выбрать пункт меню Save options:
Программа сохраняет настройки в реестре, то есть их можно переносить с компьютера на компьютер и от пользователя к пользователю:
Веб-интерфейс программы по умолчанию невзрачный, стандартный. Его можно полностью изменить, применив любые CSS-стили, HTML-разметку и изображения (вставить логотип фирмы и прочее), русифицировать:
Если смущает номер порта в URL, можно настроить Apache для проксирования по такой схеме:
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so Listen 127.0.0.1:80 <VirtualHost 127.0.0.1:80> ServerName server_name ProxyPass / http://hfs:8000/ ProxyPassReverse / http://hfs:8000/ </VirtualHost>
Содержание
- Как правильно установить и настроить файловый сервер на Windows Server
- Шаг 1. Выбор оборудования и подготовка сервера
- Дополнительные требования
- Шаг 2. Установка Windows и настройка системы
- Установка системы
- Настройка системы
- Шаг 3. Базовые настройки файлового сервера
- Установка роли и вспомогательных компонентов
- Настройка шары (общей папки)
- Шаг 4. Тюнинг файлового сервера или профессиональные советы
- Теневые копии
- Аудит
- Анализатор соответствия рекомендациям
- Шаг 5. Настройка средств обслуживания
- Резервное копирование
- Мониторинг
- Шаг 6. Тестирование
- 23 лучших FTP-клиента и сервера
- Десктопные клиенты
- WinSCP
- Core FTP LE
- CuteFTP
- Cyberduck
- FileZilla
- CrossFTP
- Transmit
- Macfusion
- Мобильные клиенты
- AndFTP
- Total Commander
- File Manager
- FTPManager
- FTP On the Go
- FTP серверы
- FileZila Server
- Xlight FTP Server
- Core FTP Server
- Cerberus FTP Server
- Titan FTP Server
- Serv-U
- SilverSHielD
- Gene6 FTP Server
В качестве примера используется Windows Server 2012 R2 (2016, 2019). Инструкция разбита на несколько шагов и представляет из себя полный цикл настройки файлового хранилища для использования в малых и средних компаниях.
Шаг 1. Выбор оборудования и подготовка сервера
В качестве сервера, желательно, выбрать профессиональное оборудование. Системные требования для файлового сервера не высокие:
- Процессор может быть самый простой;
- Оперативная память также не сильно используется;
- Дисковая система — самый основной компонент. Ее объем зависит от специфики бизнеса. Примерная формула — не менее 15 Гб на пользователя и не менее 1 Тб на сервер. До 50 пользователей можно рассматривать диски SATA, после — SAS или SSD.
Например, для компании в 300 пользователей подойдет сервер с процессором Xeon E3, 8 Гб ОЗУ и 5 Тб дискового пространства на дисках SAS 10K.
Дополнительные требования
- Для обеспечения сохранности информации при выходе из строя жесткого диска, необходим RAID-контроллер. Настройка последнего выполняется из специального встроенного программного обеспечения, которое запускается при загрузке сервера;
- Сервер должен быть подключен к источнику бесперебойного питания;
- Необходимо предусмотреть резервное копирование. Для этого нужен дисковый накопитель (внешний жесткий диск) или другой сервер.
Подробнее о выборе оборудования читайте статью Как выбрать сервер.
Шаг 2. Установка Windows и настройка системы
Установка системы
На этом шаге все стандартно, за исключением одного нюанса: разбивая во время установки Windows жесткий диск, стараемся выделить небольшую часть (70 — 120 Гб) для системы и все остальное под данные. Если выделить много дискового пространства для системного раздела, увеличится время его обслуживания и фрагментация, что негативно скажется на производительности и надежности системы в целом.
Настройка системы
- Проверяем правильность настройки времени и часового пояса;
- Задаем понятное имя для сервера и, при необходимости, вводим его в домен;
- Если сервер не подключен напрямую к сети Интернет, стоит отключить брандмауэр;
- Для удаленного администрирования, включаем удаленный рабочий стол;
- Устанавливаем все обновления системы.
Шаг 3. Базовые настройки файлового сервера
Это стандартные действия, которые выполняются при настройке обычного файлового сервера.
Установка роли и вспомогательных компонентов
Как правило, данная роль устанавливается вместе с Windows. Остается только это проверить и доустановить компоненты, которые нужны для полноценной эксплуатации сервиса.
Открываем Диспетчер серверов. Он может быть запущен из панели быстрого запуска.
Нажимаем Управление — Добавить роли и компоненты.
В открывшемся окне оставляем Установка ролей и компонентов и нажимаем Далее.
В следующем окне выбираем нужный сервер (выбран по умолчанию, если работаем на сервере, а не через удаленную консоль) и нажимаем Далее.
Среди ролей находим Файловые службы и службы хранилища, раскрываем ее и проверяем, что установлены галочки напротив следующих компонентов:
- Службы хранения;
- Файловый сервер;
Если данные службы не установлены, выбираем их и нажимаем Далее.
В окне Выбор компонентов просто нажимаем Далее.
Откроется окно Подтверждение установки компонентов. Нажимаем Установить и после окончания процесса перезагружаем сервер.
Настройка шары (общей папки)
Создаем первую папку, которую хотим предоставить в общее использование. Затем кликаем по ней правой кнопкой мыши и нажимаем Свойства:
В открывшемся окне переходим на вкладку Доступ и нажимаем Расширенная настройка:
Ставим галочку Открыть общий доступ к этой папке и нажимаем кнопку Разрешения:
Предоставляем полный доступ всем пользователям:
* конечно же, мы не будем давать доступ всем пользователям, но для этого есть вкладка безопасность (см. ниже).
Нажимаем OK и еще раз OK.
Теперь переходим на вкладку Безопасность и нажимаем Дополнительно:
В открывшемся окне нажимаем Отключение наследования и Преобразовать унаследованные разрешения в явные разрешения этого объекта.
Выставляем необходимые права на папку, например:
Совет: старайтесь управлять правами на ресурсы только при помощи групп. Даже если доступ необходимо предоставить только одному человеку!
Теперь нажимаем OK два раза. Папка настроена для общего использования и в нашем примере доступна по сетевому пути \fs1Общая папка.
Шаг 4. Тюнинг файлового сервера или профессиональные советы
Данные настройки, по сути, представляют секреты того, как сделать файловый сервер лучше, надежнее и безопаснее. Применяя их, администраторы создают более правильную и профессиональную среду ИТ.
С самого начала стоит создавать общие папки в пространстве имен DFS. На это есть две основные причины:
- При наличии или появлении нескольких файловых серверов пользователям будет удобнее находить общие папки в одном месте.
- Администратор легко сможет создать отказоустойчивую систему при необходимости.
Теневые копии
Позволят вернуться к предыдущим версиям файлов. Это очень полезная функция позволит не только восстановить некорректно отредактированный документ, но и вернуть случайно удаленный файл или папку.
Как настроить и пользоваться данной возможностью, читайте подробнее в инструкции Как включить и настроить теневые копии.
Аудит
Аудит позволит вести протокол доступа к данным — понять, кто и когда удалил важные данные или внес в них изменения.
О том, как настроить данную возможность читайте статью Как включить аудит доступа к файлам Windows.
Анализатор соответствия рекомендациям
В диспетчер управления серверами Windows встроен инструмент для проверки конфигурации сервера — анализатор соответствия рекомендациям. Чтобы им воспользоваться переходим в диспетчере в Локальный сервер:
Находим раздел «Анализатор соответствия рекомендациям» и справа кликаем по ЗАДАЧИ — Начать проверку BPA:
Рассмотрим решения некоторых рекомендаций.
1. Для XXX должно быть задано рекомендованное значение.
Это набор однотипных рекомендаций, для выполнения которых нужно обратить внимание на описание и задать значение параметро, которое в нем указано. Например, для CachedOpenLimit в описании проблемы есть описание решения — «Задайте для CachedOpenLimit рекомендуемое значение 5». Чтобы это сделать, открываем Powershell от администратора и вводим команду:
Set-SmbServerConfiguration -CachedOpenLimit 5
* мы задаем параметру CachedOpenLimit значение 5, как это и рекомендовано анализатором.
На запрос, уверены ли мы, что хотим выполнить команду, отвечаем утвердительно.
Остальные параметры задаем аналогичными действиями.
2. Файл Srv.sys должен быть настроен на запуск по требованию.
В командной строке от имени администратора вводим:
sc config srv start= demand
3. Создание коротких имен файлов должно быть отключено.
В командной строке от имени администратора вводим:
fsutil 8dot3name set 1
Шаг 5. Настройка средств обслуживания
Ни одна инфраструктура не может полноценно существовать без мониторинга и резервного копирования. Предупредить о возможной проблеме, узнать о последней раньше пользователей или иметь возможность восстановить данные — показатели высокой ответственности и профессионализма системного администратора.
Резервное копирование
Для файлового сервера все просто — необходимо резервировать все рабочие папки и файлы. Лучшим решением будет ежедневное копирование новых данных, и с определенной периодичностью (например, раз в месяц), создавать полный архив.
Мониторинг
- Сетевую доступность сервера;
- Свободное дисковое пространство;
- Состояние жестких дисков.
Шаг 6. Тестирование
Тестирование состоит из 3-х основных действий:
- Проверить журналы Windows и убедиться в отсутствие ошибок. В случае их обнаружения, необходимо устранить все проблемы.
- Выполнить действия анализатора соответствий рекомендациям.
- Провести живой тест работы сервиса с компьютера пользователя.
23 лучших FTP-клиента и сервера
FTP-клиент — программа, предоставляющая возможность оперативно открыть одноимённый сервер. Так можно свободно воспользоваться находящимися на сервере файлами с их дальнейшим просмотром, корректированием, копированием и скачиванием. Кроме того, комфортный интерфейс позволит человеку не заметить никакой разницы в период работы с информацией в рамках собственной файловой структуры.
Имеются разные типы таких клиентов и серверов, но, даже при внешней схожести, вероятны серьёзные внутренние различия. Изучив наш материал, вы поймёте, какой вариант для вас наиболее оптимальный.
Десктопные клиенты
WinSCP
Графический клиент протоколов SFTP и SCP под ОС Windows. Но приложение работает не только с вышеобозначенными протоколами, оно ещё позволяет корректировать, удалять файлы, ярлыки, схемки URL, оснащено внутренним текстовым редактором. Важно сказать и о том, что данный продукт вполне может быть FTP-клиентом.
Core FTP LE
Защищённый FTP-клиент, разработанный CoreFTP.com в 2003-м году. Программа сочетается с FTP, FTP over SSH, SFTP, FTPS. Именно так пользователь всегда найдёт информацию на внешнем сервере.
CuteFTP
FTP-клиент, появившийся ещё в далёком 1994-м году. Благодаря данной программе пользователь и сервер могут свободно передавать друг другу файлы. Возможно применение следующих протоколов: FTP, FTPS, HTTP, HTTPS. Ещё одно достоинство рассматриваемой утилиты — можно продолжить загружать файл даже после технического сбоя.
Cyberduck
Хорошо подходит для Windows и MacOS, которые сочетаются с FTP, SFTP и Dropbox. Ещё программа оснащена отличным дизайном и интерфейсом.
FileZilla
Наиболее известный из бесплатных FTP-клиентов. Программа позволяет работать и со всеми известными десктопными ОС. Всё дело в том, что у неё комфортный интерфейс и разнообразные функциональные возможности. Основные плюсы данной утилиты выглядят следующим образом: интегрирует с FTP, FTP поверх SSL/TLS (FTPS). Ещё можно спокойно просматривать и редактировать файлы, настраивать подходящую скорость соединения.
CrossFTP
Относится к категории бесплатных FTP-клиентов с версиями под Windows, Linux и MacOS. Программу создали ещё в 2006-м году, она отлично интегрирована под определённые сетевые протоколы. Бесплатная версия также поддерживает FTP. Платная: FTP over SSH, SFTP, FTPS (FTP over SSL), FXP, DAV/HTTP (S).
Transmit
Известный клиент с отлично разработанными UI/UX компонентами. Утилита не просто поддерживает сетевые протоколы, она также позволяет контактировать с 11 cloud-сервисами. Главный плюс — высочайшее быстродействие.
Macfusion
Ещё один десктопный участник рассматриваемого ТОПа. Данная утилита работает исключительно на операционной системе MacOS. Рассматриваемый FTP-клиент позволяет отрабатывать самые разные сетевые протоколы.
Мобильные клиенты
AndFTP
А теперь мы рассмотрим первое приложение для Android. Ключевые плюсы выглядят следующим образом: можно контролировать файловую систему, передавать данные, применяя при этом протоколы FTP, SFTP и FTPS. Ещё можно настроить свой персональный сервер, учитывая все нужды и потребности.
Total Commander
Популярный во всём мире файловый менеджер Total Commander обладает и мобильным форматом. Другая особенность этой утилиты — наличие специального двухпанельного интерфейса, а также десктопной версии. Через эту программу можно корректировать по своему усмотрению файловую систему, распаковывать и архивировать файлы. Главное достоинство программы — её можно расширить, используя различные удобные плагины.
File Manager
Разработкой данного FTP-клиента занималась команда Clean Master, а это значит, что возможен контроль и отслеживание данных в рамках файловой системы. Ключевой нюанс программы — возможность использования смартфона в качестве FTP-сервера.
FTPManager
Одна из первых программ, разработанных под iOS. Позволяет не просто корректировать и изменять файлы, но и взаимодействовать с разными сетевыми протоколами. Главное достоинство — клиент целиком и полностью бесплатный.
FTP On the Go
Эта мобильная программа тоже работает с iOS, вот только за неё придётся заплатить. Она оснащена как обычными опциями, так и расширенными — редактирование, внесение изменений в файлы. В такой ситуации ещё одно преимущество — комфортно подсвечиваемый синтаксис.
FTP серверы
FileZila Server
Полноопциональный FTP-сервер, который поддерживает безопасные SSL/TLS соединения. Отличная реализация анти FXP-функций, IP-безопасности, скоростных ограничений для любого из клиентов, сжатия MODE-Z. Продуктом очень легко и удобно пользоваться, особенно его интерфейсом, который отлично подходит к Windows. Кроме того, у проекта открытый исходный код.
Xlight FTP Server
Относится к категории хороших серверов с оптимизацией — то есть, когда системные ресурсы применяются по минимуму. У него есть все требуемые опции, среди которых:
- Поддержка удалённого администрирования изучаемого нами сервера.
- Поддержка 128 bits SSL.
- Возможность тонкой настройки применения трафика.
- Поддержка ODBC (возможно сохранение логинов и паролей в другой базе).
- Поддержка IPv6.
Core FTP Server
Сервер, поддерживающий стандарт FTP, а также SSL/TLS/FTPS, SSH/SFTP и HTTPS. Отличается следующими преимуществами:
- Виртуальные каталоги.
- Правила IP-доступа.
- Сертификат подлинности.
- Поддержка Active Directory и NT-пользователей.
- Тщательное протоколирование.
- Ограничение соединений.
Есть базовый интерфейс и настройка с имеющимися аналогичными возможностями.
Cerberus FTP Server
FTP-сервер, которому не нужно огромное количество системных ресурсов. Он может следить за подключением сразу на 2-3 интерфейсах, возобновлять сорванные сеансы. Также доступна функция поддержки PASV, ведение лога с временной статистикой и так далее. Интегрирует с RFC959 и RFC1123. Возможно использование в качестве NT-сервиса. А ещё Cerberus FTP Server сочетается с безопасным SSLv3/TLSv1 типом шифрования.
Titan FTP Server
Мощнейший и защищённый многопоточный FTP-сервер. Именно по этой причине он предоставляет возможность зафиксировать 2-3 сервера, контактирующих в одно и то же время на различных сочетаниях IP-адресов и портов. Позволяет свободно передавать файлы, применяя SSL, открывать виртуальные папки, идентифицировать клиентов, квотировать пространство на диске. Доступен и контроль за администрированием как локального, так и удалённого плана, трафиком и многие иные функции. По сути, это идеальный вариант для эффективной и удобной работы.
Serv-U
Многофункциональный и удобный для использования FTP-сервер. Продукт способствует созданию и поддержке пользовательских категорий. Для предоставления доступа может использоваться IP-адрес или доменное имя.
Serv-U оснащён стандартным интерфейсом. Практически все пользователи свободно настраивают и администрируют персональный сервер буквально за 2-3 минуты. А ещё имеется опция управления пропускной канальной способностью. Можно полноценно управлять пользователями, восстанавливать передачи, настраивать журналы и так далее. Также клиент позволяет работать с порталами, оснащёнными 2-3 IP-адресами.
Home Ftp Server
Обычный сервер, за который не нужно платить. Он подстроен под личные нужды каждого пользователя. Позволяет передавать файлы прямо с компьютера. Возможна настройка учётных записей, контроль доступа к некоторым файлам.
Сервер работает с виртуальными каталогами, запрещёнными IP-адресами. Также он предлагает веб-интерфейс для управления, просмотр имеющейся статистики.
SilverSHielD
Это простейший для применения SSH (2) и SFTP сервер, работающий с тремя разными аутентификационными типами: паролем, открытым ключом и клавиатурной интерактивной аутентификацией.
Среди других опций безопасности можно выделить следующие: поддерживает виртуальные папки, можно вручную задерживать и осуществлять дополнительные подключения. Оснащён IP-системами мониторинга доступа, автоматической блокировкой IP-адресов после 2-3 неудачных авторизаций, поддерживает крупные файлы.
Воспользоваться консолью можно как через локальный компьютер, так и на удалённой основе — посредством безопасного соединения.
SlimFTPd
Относится к категории достаточно эффективных, небольших FTP-серверов для Windows. Позволяет пассивно передавать данные, имеет 2-3 учётные записи и другие преимущества. Отлично интегрирует с RFC 959 (таким образом, возможен контакт с любым FTP-клиентом).
Gene6 FTP Server
Многоопциональный FTP-сервер для Microsoft Windows NT/2000/XP/2003. У этой программы достаточно простой и удобный интерфейс. Кроме того, можно свободно контролировать аккаунты, предоставлять права доступа не только к отдельным папкам, но и целым дискам. Ещё можно следить за серверной активностью, мониторить ресурсы. Доступно и создание виртуальных директорий, ограничение трафика, числа запусков.
Есть детальная статистика в режиме онлайн. Система — залог обеспечения удобного доступа к файлам через интернет. Можно использовать учётные записи (пользовательские или групповые), каталоги, разрабатывать определённые виртуальные узлы FTP, вводить лимиты, вход по IP и т.д. G6FTP Server отвечает интернет-стандартам протокола FTP.
HFS: HTTP File Server (version 3)
Introduction
Access via web your files directly from your disk.
- You be the server, share files fresh from your disk, with unlimited space and bandwidth.
- Fast! Try zipping 100GB, download starts immediately!
- Intelligent. HFS tries to detect problems and suggest solutions.
- Share even a single file with our virtual file system, even with a different name, all without touching the real file. Present things the way you want!
- Watch all activities in real-time.
- Control bandwidth, decide how much to give.
- No intermediaries, give a huge file to your friend without waiting for it to be uploaded on a server first.
This is a full rewrite of the Delphi version.
How does it work
- run HFS on your computer, administration page automatically shows up
- select what files and folders you want to be accessible
- access those files from a phone or another computer just using a browser
- possibly create accounts and limit access to files
Features
- https
- easy certificate generation
- virtual file system
- mobile friendly
- search
- accounts
- resumable downloads & uploads
- download folders as zip archive
- delete, move and rename files
- plug-ins (anti-brute-force, thumbnails, ldap, themes, and more)
- simple website serving
- real-time monitoring of connections
- show some files
- speed throttler
- geographic firewall
- admin web interface
- multi-language front-end
- virtual hosting
- reverse-proxy support
- comments in file descript.ion
- integrated media player
- customizable with html, css and javascript
- dynamic-dns updater
Installation
If you need Docker installation or Service installation, click the links.
Minimum Windows version required is 10 or Server 2019. If you have a previous version, you can still follow instructions for Other systems
- go to https://github.com/rejetto/hfs/releases
- click on
Assets
- download the right version for your system, unzip and launch
hfs
file.- Mac: if you get «cannot be opened because it is from an unidentified developer»,
you can holdcontrol
key while clicking, then clickopen
. - If you cannot find your system in the list, see next section Other systems.
- Mac: if you get «cannot be opened because it is from an unidentified developer»,
- the browser should automatically open on
localhost
address, so you can configure the rest in the Admin-panel.
Got problems?
-
if a browser cannot be opened on the computer where you are installing HFS,
you should enter this command in the HFS console:create-admin <PASSWORD>
-
if you cannot access the console (like when you are running as a service),
you can edit the config file to add your admin account -
if you don’t want to use an editor you can create the file with this command:
echo "create-admin: PASSWORD" > config.yaml
If you access Admin-panel via localhost, by default HFS won’t require you to login.
If you don’t like this behavior, disable it in the Admin-panel or enter this console command config localhost_admin false
.
Other systems
If can’t or don’t want to run our binary versions, you can try this:
- install node.js version 18.20 (or greater, but then compatibility is not guaranteed)
- execute at command line
npx hfs@latest
The @latest
part is optional, and ensures that you are always up to date.
If this procedure fails, it may be that you are missing one of these requirements.
Configuration and other files will be stored in %HOME%/.vfs
Console commands
If you have full access to HFS’ console, you can enter commands. Start with help
to have a full list.
Configuration
For configuration please see file config.md.
Where is it stored
Configuration is stored in the file config.yaml
, exception made for custom HTML which is stored in custom.html
.
These files are kept in the Current Working Directory (cwd), which is by default the same folder of hfs.exe
if you are using this kind of distribution on Windows, or USER_FOLDER/.hfs
on other systems.
You can decide a different folder passing --cwd SOME_FOLDER
parameter at command line.
Any relative path provided is relative to the cwd.
Check details about config file format.
Internationalization
It is possible to show the Front-end in other languages.
Translation for some languages is already provided. If you find an error, consider reporting it
or editing the source file.
In the Languages section of the Admin-panel you can install additional language files.
If your language is missing, please consider translating yourself.
Hidden features
- Appending
#LOGIN
to address will bring up the login dialog - Appending ?lang=CODE to address will force a specific language
- Right-click on toggle-all checkbox will invert each checkbox state
- Appending
?login=USER:PASSWORD
will automatically log in the browser - Appending
?overwrite
on uploads, will override the dont_overwrite_uploading configuration, provided you also have delete permission - Appending
?search=PATTERN
will trigger search at start - Appending
?onlyFiles
or?onlyFolders
will limit type of results - Appending
?autoplay=shuffle
will trigger show & play;?autoplay
will not shuffle, but also will not start until the list is complete - Right-click on «check for updates» will let you input a URL of a version to install
- Shift+click on a file will show & play
- Type the name of a file/folder to focus it, and ctrl+backspace to go to parent folder
--consoleFile PATH
will output all stdout and stderr also to a file- env
DISABLE_UPDATE=1
(for containers)
Contribute
There are several ways to contribute
-
Report bugs
It’s very important to report bugs, and if you are not so sure about it, don’t worry, we’ll discuss it.
If you find important security problems, please contact us privately so that we can publish a fix before
the problem is disclosed, for the safety of other users. -
Use beta versions, and give feedback.
While betas have more problems, you’ll get more features and give a huge help to the project.
-
Translate to your language.
-
Suggest ideas
While the project should not become too complex, yours may be an idea for a plugin.
-
Write guides or make videos for other users. We got a wiki!
-
Submit your code
If you’d like to make a change yourself in the code, please first open an «issue» or «discussion» about it,
so we’ll try to cooperate and understand what’s the best path for it. -
Make a plugin
A plugin can change the look (a theme), and/or introduce a new functionality.
More
-
APIs
-
Build yourself
-
License
-
Flag images are public-domain, downloaded from https://flagpedia.net
HFS: HTTP File Server (version 3)
Introduction
HFS is the best way via web to access or share files from your disk.
- You be the server, share files fresh from your disk, with unlimited space and bandwidth.
- It’s all very fast. Try download zipping 100GB, it starts immediately!
- Easy to use. HFS tries to detect problems and suggest solutions.
- Share even a single file with our virtual file system, even with a different name, all without touching the real file. Present things the way you want!
- Watch all activities in real-time.
- Control bandwidth, decide how much to give.
- No intermediaries, give a huge file to your friend without waiting for it to be uploaded on a server first.
This is a full rewrite of the Delphi version.
How does it work
- run HFS on your computer, administration page automatically shows up
- select what files and folders you want to be accessible
- access those files from a phone or another computer just using a browser
- possibly create accounts and limit access to files
Features
- https
- easy certificate generation
- unicode
- virtual file system
- mobile friendly
- search
- accounts
- resumable downloads & uploads
- download folders as zip archive
- remote delete
- simple website serving
- plug-ins
- real-time monitoring of connections
- show some files
- speed throttler
- geographic firewall
- admin web interface
- multi-language front-end
- virtual hosting (plug-in)
- anti-brute-force (plug-in)
- reverse-proxy support
- comments in file descript.ion
Installation
NB: minimum Windows version required is 8.1 , Windows Server 2012 R2 (because of Node.js 18)
- go to https://github.com/rejetto/hfs/releases
- click on
Assets
- download the right version for your system, unzip and launch
hfs
file.- Mac: if you get “cannot be opened because it is from an unidentified developer”,
you can holdcontrol
key while clicking, then clickopen
. - If you cannot find your system in the list, see next section Other systems.
- Mac: if you get “cannot be opened because it is from an unidentified developer”,
- the browser should automatically open on
localhost
address, so you can configure the rest in the Admin-panel.- if a browser cannot be opened on the computer where you are installing HFS,
you should enter this command in the HFS console:create-admin <PASSWORD>
- if you cannot access the console (like when you are running as a service),
you can edit the config file to add your admin account -
if you don’t want to use an editor you can create the file with this command:
echo "create-admin: PASSWORD" > config.yaml
- if a browser cannot be opened on the computer where you are installing HFS,
If you access Admin-panel via localhost, by default HFS won’t require you to login.
If you don’t like this behavior, disable it in the Admin-panel or enter this console command config localhost_admin false
.
Other systems
If your system is not Windows/Linux/Mac or you just don’t want to run the binaries, you can try this alternative version:
- install node.js version 18
- execute at command line
npx hfs@latest
The @latest
part is optional, and ensures that you are always up to date.
If this procedure fails, it may be that you are missing one of these requirements.
Configuration and other files will be stored in %HOME%/.vfs
Service
If you want to run HFS at boot (as a service), we suggest the following methods
On Linux
- install node.js
- create a file
/etc/systemd/system/hfs.service
with this content
«`
[Unit]
Description=HFS
After=network.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/npx -y hfs@latest
[Install]
WantedBy=multi-user.target
«`
- run
sudo systemctl daemon-reload && sudo systemctl enable hfs && sudo systemctl start hfs && sudo systemctl status hfs
NB: update will be attempted at each restart
On Windows
- install node.js
- run
npm -g i hfs
- run
npx qckwinsvc2 install name="HFS" description="HFS" path="%APPDATA%\npm\node_modules\hfs\src\index.js" args="--cwd %HOMEPATH%\.hfs" now
To update
- run
npx qckwinsvc2 uninstall name="HFS"
- run
npm -g update hfs
- run
npx qckwinsvc2 install name="HFS" description="HFS" path="%APPDATA%\npm\node_modules\hfs\src\index.js" args="--cwd %HOMEPATH%\.hfs" now
Console commands
If you have full access to HFS’ console, you can enter commands. Start with help
to have a full list.
Configuration
For configuration please see file config.md.
Where is it stored
Configuration is stored in the file config.yaml
, exception made for custom HTML which is stored in custom.html
.
These files are kept in the Current Working Directory (cwd), which is by default the same folder of hfs.exe
if you are using this kind of distribution on Windows, or USER_FOLDER/.hfs
on other systems.
You can decide a different cwd passing --cwd SOME_FOLDER
parameter at command line.
You can decide also a different file for config by passing --config SOME_FILE
, or inside an env called HFS_CONFIG
.
Any relative path provided is relative to the cwd.
Check details about config file format.
Internationalization
It is possible to show the Front-end in other languages.
Translation for some languages is already provided. If you find an error, consider reporting it
or editing the source file.
In the Languages section of the Admin-panel you can install additional language files.
If your language is missing, please consider translating yourself.
Why you should upgrade from HFS 2.x to 3
As you can see from the list of features, we already have some goods that you cannot find in HFS 2.
Other than that, you can also consider:
- it’s more robust: it was designed to be an always-running server, while HFS 1-2 was designed for occasional usage (transfer and quit)
- passwords are never really stored, just a non-reversible hash is
- faster search (up to 12x)
- more flexible permissions
But you may still want to stay with HFS 2.x (so far) for the following reasons
- smaller
- more tested
- classic window interface (can be easier for some people)
Security
While this project focuses on ease of use, we care about security.
- HTTPS support
- Passwords are not saved, and user password is safe even logging in without https thanks to SRP
- Automated tests ran on every release, including libraries audit
- No default admin password
Some actions you can take for improved security:
- use https, better if using a proper certificate, even free with Letsencrypt.
- have a domain (ddns is ok too), configure it in “Internet” page, and enable “Accept requests only using domain”
- install rejetto/antidos plugin
- ensure “antibrute” plugin is running
- disable “unprotected admin on localhost”
- Appending
#LOGIN
to address will bring up the login dialog - Appending ?lang=CODE to address will force a specific language
- right/ctrl/command click on toggle-all checkbox will invert each checkbox state
- Appending
?login=USER:PASSWORD
will automatically log in the browser - Appending
?overwrite
on uploads, will try override the dont_overwrite_uploading configuration, provided you also have delete permission - Right-click on “check for updates” will let you input a URL of a version to install
- Admin: ctrl+digit will switch page
- Appending ?overwrite to the URL of an upload request will overwrite existing file if you have delete permission
Contribute
There are several ways to contribute
-
Report bugs
It’s very important to report bugs, and if you are not so sure about it, don’t worry, we’ll discuss it.
If you find important security problems, please contact us privately so that we can publish a fix before
the problem is disclosed, for the safety of other users. -
Use beta versions, and give feedback.
While betas have more problems, you’ll get more features and give a huge help to the project.
-
Translate to your language.
-
Suggest ideas
While the project should not become too complex, yours may be an idea for a plugin.
-
Write guides or make videos for other users. We got a wiki!
-
Submit your code
If you’d like to make a change yourself in the code, please first open an “issue” or “discussion” about it,
so we’ll try to cooperate and understand what’s the best path for it. -
Make a plugin
A plugin can change the look (a theme), and/or introduce a new functionality.
More
-
APIs
-
Build yourself
-
License
-
To-do list
-
Flag images are public-domain, downloaded from https://flagpedia.net
HFS — программа под Windows, предназначенная для организации доступа к файлам посредством HTTP. Удобный интерфейс, отсутствие необходимости настройки дополнительных клиентов (FAR, Total Commander и прочих), простота — вот основные достоинства, которые оценит пользователь системы. Кроме того, программа бесплатна.
Несмотря на то, что программа очень проста, она не имеет русскоязычного интерфейса. Поэтому здесь я подробно напишу, как ей пользоваться.
Программа работает без установки, в общем случае ее можно просто скопировать в любую папку, например Program Files:
После размещения, можно ее запускать и настраивать. Программа работает как HTTP-сервер, наподобие Apache, то есть при ее закрытии загрузить файлы будет невозможно.
Поэтому необходимо организовать работу программы в качестве сервиса. Можно использовать метод на основе srvany, как это описывается по ссылке http://support.microsoft.com/kb/137890/ru. Однако, этот метод не является оптимальным из-за следующего неприятного эффекта: если пользователь войдет на сервер по RDP, а затем выйдет (осуществит logoff), то HFS будет выгружен из памяти, попросту говоря, он «вылетит». Чтобы HFS работала надежно как сервис, было создано отдельное приложение – HFS-Service, которое можно скачать отсюда. Оно очень просто в использовании, и также не требует установки. Его можно скопировать в ту же папку, что и HFS.
Теперь рассмотрим основные этапы работы с HFS. Войдя в программу, лучше перейти в экспертный режим, так как там, по сравнению с обычным, доступно больше настроек:
После этого следует указать порт, который будет слушать программа и по которому будет доступен веб-интерфейс:
У любого сервера есть IP – адрес, а может быть и не один (различные сетевые карты, различные каналы связи и прочее). Поэтому нужно указать программе, к какому IP – адресу она будет прикреплена:
Так как мы хотим, чтобы пользователи загружали файлы в определенную папку на сервере, ее необходимо создать обычным способом:
Далее, перетащить папку мышью в левое окно программы. Появится всплывающее окно, спрашивающее, как будет интерпретирована папка внутри программы:
Нужно выбрать Real folder.
Каждому пользователю-клиенту, для удобства, можно выделить собственную папку.
Теперь можно зайти в веб-интерфейс и посмотреть, отображается ли созданная папка:
Как видно, она отображается. Но к ней не настроен доступ на чтение и запись.
Доступ на чтение для конкретной папки настраивается с помощью меню Restrict Access. Для вызова нужно нажать на папку правой кнопкой мыши:
Отсюда можно создать аккаунт пользователю для доступа или разрешить доступ анонимному пользователю.
Если мы уже создали нескольких пользователей, то можно будет выбрать, кому давать доступ на чтение, а кому нет:
Чтобы дать кому-то возможность загружать файлы, нужно выбрать пункт меню Upload:
Можно дать возможность загрузки для всех (Anyone), или выдать такие права только избранным:
Теперь мы можем загружать файлы через веб-интерфейс:
В общем случае управление пользователями и их правами осуществляется следующим образом:
Следует отметить, что все настройки по умолчанию сохранятся для текущего пользователя. То есть никакой другой пользователь (в том числе System) наши изменения настроек не увидит, и программа будет запускаться для каждого пользователя со своими настройками. Чтобы настройки сохранялись для всех пользователей, нужно выбрать пункт меню Save options:
Программа сохраняет настройки в реестре, то есть их можно переносить с компьютера на компьютер и от пользователя к пользователю:
Веб-интерфейс программы по умолчанию невзрачный, стандартный. Его можно полностью изменить, применив любые CSS-стили, HTML-разметку и изображения (вставить логотип фирмы и прочее), русифицировать:
Если смущает номер порта в URL, можно настроить Apache для проксирования по такой схеме:
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so Listen 127.0.0.1:80 <VirtualHost 127.0.0.1:80> ServerName server_name ProxyPass / http://hfs:8000/ ProxyPassReverse / http://hfs:8000/ </VirtualHost>
Для загрузки файлов initrd и vmlinuz по протоколу HTTP достаточно запустить HFS — Http файловый сервер и не заморачиваться с IIS или Apache.
Описание на википедии.
Создаём папку C:\hfs и копируем в неё скачанный файл hfs.exe, запускаем его.
Меняем способ сохранения настроек в файл:
Menu -> Save options -> to file
Назначаем IP:
Menu -> IP address
Включаем автозагрузку:
Menu -> Start/Exit -> Run HFS when Windows starts
Копируем файлы перетаскаванием в поле Virtual File System или в этом поле пкм и Add folder from disk, выбираем папку boot с образом Thinstation. Так же можно добавить и файлы конфигурации.
Проверяем работу сервера, набрав в браузере http://IP/boot
Вот и всё, проще некуда.
Далее настраиваем сборку Thinstation на загрузку с веб-сервера.
Обсудить на форуме (комментариев 1).