Cirry's Blog

Debian10使用ehfs搭建文件共享服务器

2023-09-13
linux
最后更新:2024-03-22
4分钟
697字

文件共享网站

来感受一下吧!!! share.cirry.cn

界面预览

游客页面

有权限用户登录后的页面

搭建好后的目录结构

查看cpu架构

Terminal window
1
dpkg --print-architecture

显示如下:

下载golang安装包

golang官方下载地址,不同的cpu架构下载不同的安装包。

这里使用wget下载amd64的安装包。

Terminal window
1
wget https://golang.google.cn/dl/go1.21.1.linux-amd64.tar.gz

安装Golang

第一步

删除之前安装的Go程序,然后将刚刚下载的存档解压缩到/usr/local 中,在 /usr/local/go 中创建一个新的 Go 树:

Terminal window
1
sudo rm -rf /usr/local/go
2
sudo tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz
3
# 可能需要以 root 用户身份或通过 sudo 运行命令

第二步

/usr/local/go/bin 添加到 PATH 环境变量中:

Terminal window
1
export PATH=$PATH:/usr/local/go/bin

第三步

通过打开命令提示符并键入以下命令来验证是否已安装 Go:

Terminal window
1
go version

至此,我们的go就安装好了。

安装extra-http-file-server

在github中下载extra-http-file-server对应的版本。

Terminal window
1
wget https://github.com/mjpclab/extra-http-file-server/releases/download/v1.15.14/ehfs-1.15.14-linux-amd64.zip

解压到当前目录

Terminal window
1
unzip ehfs-1.15.14-linux-amd64.zip

解压完成后,会在当前目录 生成一个可执行文件 ehfs

添加配置文件

Terminal window
1
vim ehfs.ini

写入以下内容:

Terminal window
1
--listen-plain :80 # 监听端口为80端口
2
--root /home/cirry/share # 目录根路径
3
# 自行找个sha256加密网站加密密码后替换此密码
4
--user-sha256 cirry:d2ae9eaa37003087a74481a4a9873c686148xxxxxxxxxxxxxxx # 设置用户名和密码
5
--global-archive # 设置可以下载文件夹
6
--access-log /home/cirry/software/access.log
7
--error-log /home/cirry/software/error.log
8
--perms :/:upload,delete,mkdir:cirry # 设置此用户有上传删除等等功能
9
--status-page '#404#/home/cirry/software/ehfs/404.html'
10
--status-page '#403#/home/cirry/software/ehfs/403.html'

运行ehfs

Terminal window
1
# 因为这里绑定的是80端口,在nginx中可能需要使用sudo才能正常运行
2
sudo ./ehfs --config ehfs.ini

设置开机自启动

我们可以使用systemctl来自动启动此应用。

编辑Systemd服务文件

Terminal window
1
sudo vim /etc/systemd/system/ehfs.service

写入如下内容(根据实际情况修改目录路径):

Terminal window
1
[Unit]
2
Description=EHFS Service
3
After=network.target
4
5
[Service]
6
ExecStart=/full/path/to/ehfs --config /full/path/to/ehfs.ini #需修改
7
Privileged=true
8
User=cirry #需修改
9
WorkingDirectory=/home/cirry/share #需修改
10
11
[Install]
12
WantedBy=multi-user.target

重新加载Systemd配置

Terminal window
1
sudo systemctl daemon-reload

注意[仔细看看]

如果您希望以非特权用户身份绑定到低于1024的端口,需要为二进制文件授予CAP_NET_BIND_SERVICE权限,这将允许它绑定到这些端口。

否则,应用会启动失败且报错如下:

因为我们这里使用了80端口,所以我们需要给ehfs设置此权限。

Terminal window
1
sudo setcap 'cap_net_bind_service=+ep' /path/to/your/executable
2
# sudo setcap 'cap_net_bind_service=+ep' /home/cirry/software/ehfs/ehfs

如果你不想使用此命令可以使用非特权端口,在ehfs.ini中将端口号修改为1024以上的端口。

设置开机自动启动服务

Terminal window
1
sudo systemctl enable ehfs.service

启动服务

Terminal window
1
sudo systemctl start ehfs.service

查看服务状态

Terminal window
1
sudo systemctl status ehfs

debug

如果服务启动失败,可以使用此命令查看报错日志

Terminal window
1
sudo journalctl -u ehfs

至此我们的ehfs文件共享服务器就安装完成了。

本文标题:Debian10使用ehfs搭建文件共享服务器
文章作者:Cirry
发布时间:2023-09-13
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
感谢大佬送来的咖啡☕
alipayQRCode
wechatQRCode