文件共享网站
来感受一下吧!!! share.cirry.cn
界面预览
游客页面
有权限用户登录后的页面
搭建好后的目录结构
查看cpu架构
1dpkg --print-architecture
显示如下:
下载golang安装包
golang官方下载地址,不同的cpu架构下载不同的安装包。
这里使用wget下载amd64的安装包。
1wget https://golang.google.cn/dl/go1.21.1.linux-amd64.tar.gz
安装Golang
第一步
删除之前安装的Go程序,然后将刚刚下载的存档解压缩到/usr/local
中,在 /usr/local/go
中创建一个新的 Go 树:
1sudo rm -rf /usr/local/go2sudo tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz3# 可能需要以 root 用户身份或通过 sudo 运行命令
第二步
将 /usr/local/go/bin
添加到 PATH
环境变量中:
1export PATH=$PATH:/usr/local/go/bin
第三步
通过打开命令提示符并键入以下命令来验证是否已安装 Go:
1go version
至此,我们的go就安装好了。
安装extra-http-file-server
在github中下载extra-http-file-server对应的版本。
1wget https://github.com/mjpclab/extra-http-file-server/releases/download/v1.15.14/ehfs-1.15.14-linux-amd64.zip
解压到当前目录
1unzip ehfs-1.15.14-linux-amd64.zip
解压完成后,会在当前目录 生成一个可执行文件 ehfs
。
添加配置文件
1vim ehfs.ini
写入以下内容:
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.log7--error-log /home/cirry/software/error.log8--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
1# 因为这里绑定的是80端口,在nginx中可能需要使用sudo才能正常运行2sudo ./ehfs --config ehfs.ini
设置开机自启动
我们可以使用systemctl
来自动启动此应用。
编辑Systemd服务文件
1sudo vim /etc/systemd/system/ehfs.service
写入如下内容(根据实际情况修改目录路径):
1[Unit]2Description=EHFS Service3After=network.target4
5[Service]6ExecStart=/full/path/to/ehfs --config /full/path/to/ehfs.ini #需修改7Privileged=true8User=cirry #需修改9WorkingDirectory=/home/cirry/share #需修改10
11[Install]12WantedBy=multi-user.target
重新加载Systemd配置
1sudo systemctl daemon-reload
注意[仔细看看]
如果您希望以非特权用户身份绑定到低于1024的端口,需要为二进制文件授予CAP_NET_BIND_SERVICE
权限,这将允许它绑定到这些端口。
否则,应用会启动失败且报错如下:
因为我们这里使用了80端口,所以我们需要给ehfs设置此权限。
1sudo setcap 'cap_net_bind_service=+ep' /path/to/your/executable2# sudo setcap 'cap_net_bind_service=+ep' /home/cirry/software/ehfs/ehfs
如果你不想使用此命令可以使用非特权端口,在ehfs.ini
中将端口号修改为1024以上的端口。
设置开机自动启动服务
1sudo systemctl enable ehfs.service
启动服务
1sudo systemctl start ehfs.service
查看服务状态
1sudo systemctl status ehfs
debug
如果服务启动失败,可以使用此命令查看报错日志
1sudo journalctl -u ehfs
至此我们的ehfs文件共享服务器就安装完成了。