什么是文件服务器?文件服务器因为名称是File server,又称为档案伺服器,是网络设备中专门用于存储访问文件的设备,是一种专供其他电脑检索文件和存储的特殊电脑。
其实文件服务器就和我们常说的网盘一样,网盘的空间是有限的,同时也需要收费,同时对网速要求很高,如果我们自己搭建一个文件服务器,可能就没有这些问题了,自己搭建的文件服务器,一般用于公司内部网络,方便办公,提升办公效率。
远程传输分享文件时无外乎通过 QQ、微信、网盘或者邮件进行发送。
但也有时候不方便使用这些方法,比如没有加好友、下载限速……
需要 临时性 或者 匿名 或者 不限速 地分享文件,这时候就需要 "临时文件分享服务" 了!
奶牛快传:https://cowtransfer.com/
文叔叔:https://www.wenshushu.cn/
随时云U盘:http://qingwendang.com/
:https://wetransfer.com/
:https://send.tresorit.com/
:https://send-anywhere.com/
AirPortal 空投:https://airportal.cn/
拷贝兔:https://cp.anyknew.com/
MuseTransfer :https://musetransfer.com/
匿名邮箱:https://dropmefiles.com/
网络剪切板:https://netcut.cn/
分享二十一个直链文件上传下载网站:https://zhuanlan.zhihu.com/p/174869373
如果想建立一个简单静态文件或目录服务器,通常可以用 Python 实现,而且非常简单
python -m SimpleHTTPServer
# Python 2
python3 -m http.server# Python 3
示例:
一般情况下,这就够用了,但如果这样的服务器在浏览器提供的界面有些简陋,而且不提供认证服务。
Nginx搭建前端静态服务器+文件服务器:https://juejin.cn/post/7030676354630680612
更复杂的实现方法是使用 Nginx,但 Nginx 的配置相对繁琐
miniserve 是一个命令行工具,通过 http 上传、下载 文件和目录
使用 Rust 基于 Actix 框架实现静态文件或文件夹服务器 miniserve ( github:https://github.com/svenstaro/miniserve )
除了更加漂亮的界面和基本用户认证外 miniserve 还支持如下功能
用法: miniserve [OPTIONS] [PATH]
参数:
[PATH] 要使用的路径选项:
-v, --verbose 详细信息
--index
--spa 激活SPA(单页应用程序)模式
-p, --port端口。默认8080
-i, --interfaces监听的网卡接口
-a, --auth设置认证
支持的格式:username:password,username:sha256:hash, username:sha512:hash
示例:joe:123, joe:sha256:a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
--route-prefix使用特定的路由前缀
--random-route 生成一个随机的6- 16位路由
-P, --no-symlinks 隐藏列表中的符号链接并防止它们被跟踪
-H, --hidden 显示隐藏文件
-c, --color-scheme默认配色主题
[default: squirrel]
[possible values: squirrel, archlinux, zenburn, monokai]
-d, --color-scheme-dark默认配色主题
[default: archlinux]
[possible values: squirrel, archlinux, zenburn, monokai]
-q, --qrcode 启用二维码显示
-u, --upload-files [] 启用文件上传(也可以上传文件夹)
-U, --mkdir 启用创建目录
-m, --media-type指定可上传的媒体类型
[possible values: image, audio, video]
-M, --raw-media-type指定上传的媒体类型表达式
-o, --overwrite-files 在文件上传过程中启用覆盖现有文件
-r, --enable-tar 启用生成tar的压缩文件
-g, --enable-tar-gz 启用生成tar.gz的压缩文件
-z, --enable-zip 启用生成zip的压缩文件
-D, --dirs-first 先列出目录
-t, --title在页面中显示标题,而不是显示主机
--header... 设置 response 的 header
-l, --show-symlink-info 可视化目录列表中的符号链接
-F, --hide-version-footer 隐藏版本页脚
--hide-theme-selector 隐藏主题选择器
-W, --show-wget-footer 如果启用,则显示一个wget命令以递归地下载当前目录
--print-completions为shell生成完成文件
[possible values: bash, elvish, fish, powershell, zsh]
--print-manpage 生成手册页
--tls-cert要使用的 TLS certificate
--tls-key要使用的 TLS 私钥
--readme 在目录中显示 redame.md
-h, --help 帮助
-V, --version 版本
安装
Linux
chmod +x miniserve-linux
./miniserve-linux
Termux:pkg install miniserveOSX
brew install miniserve
miniserveWindows
miniserve-win.exe
使用
服务某个文件夹:miniserve some_dir
服务单个文件:miniserve file
启用用户认证:--auth user:passwd 可以提供简单用户认证服务
miniserve --auth joe:123 some_dir
在根目录后添加随机6位URL:miniserve -i 192.168.0.1 --random-route some_dir
# 服务器URL为 http://192.168.0.1/c78b6
绑定多张网卡:miniserve -i 192.168.0.1 -i 10.13.37.10 -i ::1 some_dir使用容器
# 后台运行
docker run -d --name miniserve -p 8080:8080 --rm svenstaro/miniserve some_dir
# 前台运行
docker run --it --name miniserve -p 8080:8080 --rm svenstaro/miniserve some_dir
:https://zhuanlan.zhihu.com/p/51259661
:http://www.rejetto.com/hfs/
HFS全称为http file server,这是一个专门实现文件共享的工具(可以跨平台支持 Windows 和 Linux),通过HTTP服务将要共享的目录或文件发布,从而让需要下载者直接通过浏览器访问发布的这个共享站点,下载共享资源。和传统FTP不同的是我们在共享及下载时不需要考虑端口以及传输模式等问题(端口可自定义),所以我们也不用担心通讯数据被防火墙所过滤,另外由于我们是通过HTTP服务来共享资源的,其他设备只需通过 IP 地址即可下载和上传文件,所以不同环境下的访问等难题也迎刃而解。
HFS功能很强大,不过有的朋友就会说了,服务端软件界面还是有点复杂,客户端页面还是有点陈旧,有没有更简单的软件,一键那种。肯定有了,就是 下面的 CuteHttpFileServer / chfs
github:https://github.com/ods-im/CuteHttpFileServer
HTTP 文件共享服务器工具 - chfs:https://zhuanlan.zhihu.com/p/350783441
CuteHttpFileServer/chfs是一个免费的、HTTP协议的文件共享服务器,使用浏览器可以快速访问。它具有以下特点:
与其他常用文件共享方式(如FTP,飞秋,网盘,自己建站)相比,具有使用简单,适用场景更多的优点,在个人使用以及共享给他人的场景中非常方便快捷。
使用:https://blog.csdn.net/m0_52152448/article/details/127292716
下载解压后,双击运行,在窗口中添加想要共享的目录,点击左上角按钮运行,然后在右上角找到提示的网址打开,可根据左侧列表自定义配置。
花生壳 HFS
替代NAS、网盘、FTP?3分钟教你搭建免费文件服务器:https://zhuanlan.zhihu.com/p/429746634
:https://www.bilibili.com/read/cv13596994/
Ftp传输模式
:https://www.cnblogs.com/javaxiaohao/p/16977693.html
vsftpd + Nginx:https://www.jianshu.com/p/af2be63b796e
由于 FTP、HTTP、Telnet 等协议的数据都是使用明文进行传输的,因此从设计上就是不可靠的。人们为了满足以密文方式传输文件的需求,发明了vsftpd 服务程序。vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费。此外,它还具有很高的安全性、传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点。在不影响使用的前提下,管理者可以自行决定客户端是采用匿名开放、本地用户还是虚拟用户的验证方式来登录vsftpd服务器。这样即便黑客拿到了虚拟用户的账号密码,也不见得能成功登录vsftpd服务器。
Vsftp的登录类型
VSFTP提供了系统用户、匿名用户、和虚拟用户三种不同的登陆方式。所有的虚拟用户会映射成一个系 统用户,访问时的文件目录是为此系统用户的家目录;匿名用户也是虚拟用户,映射的系统用户为ftp, 详细信息可以通过man vsftpd.conf查看
:https://juejin.cn/post/7023348049401348126