文件服务器 上传 下载

什么是文件服务器?文件服务器因为名称是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 实现,而且非常简单

python -m SimpleHTTPServer <port>         # Python 2
python3 -m http.server <port>                     # Python 3

示例:

一般情况下,这就够用了,但如果这样的服务器在浏览器提供的界面有些简陋,而且不提供认证服务。

Nginx 搭建文件服务器

Nginx搭建前端静态服务器+文件服务器:https://juejin.cn/post/7030676354630680612

更复杂的实现方法是使用 Nginx,但 Nginx 的配置相对繁琐

miniserve ( Rust 版 )

miniserve 是一个命令行工具,通过 http 上传、下载 文件和目录

使用 Rust 基于 Actix 框架实现静态文件或文件夹服务器 miniserve ( github:https://github.com/svenstaro/miniserve ) 

除了更加漂亮的界面和基本用户认证外 miniserve 还支持如下功能

  • 将当前文件夹压缩后下载
  • 界面上传文件(可配置)
  • 支持监听多网卡
  • 自动更改 MIME
  • 超级快(powered by Rust and Actix)

用法: miniserve [OPTIONS] [PATH]

参数:
  [PATH] 要使用的路径

选项:
  -v, --verbose                  详细信息          
      --index <INDEX>          
      --spa                      激活SPA(单页应用程序)模式         
  -p, --port <PORT>              端口。默认8080          
  -i, --interfaces <INTERFACES>  监听的网卡接口
  -a, --auth <AUTH>              设置认证
            支持的格式:username:password,username:sha256:hash, username:sha512:hash
            示例:joe:123, joe:sha256:a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3        
      --route-prefix <ROUTE_PREFIX>    使用特定的路由前缀          
      --random-route                   生成一个随机的6- 16位路由          
  -P, --no-symlinks          隐藏列表中的符号链接并防止它们被跟踪          
  -H, --hidden                         显示隐藏文件          
  -c, --color-scheme <COLOR_SCHEME>    默认配色主题          
          [default: squirrel]
          [possible values: squirrel, archlinux, zenburn, monokai]
  -d, --color-scheme-dark <COLOR_SCHEME_DARK>   默认配色主题            
          [default: archlinux]
          [possible values: squirrel, archlinux, zenburn, monokai]
  -q, --qrcode    启用二维码显示          
  -u, --upload-files [<ALLOWED_UPLOAD_DIR>]    启用文件上传(也可以上传文件夹)         
  -U, --mkdir     启用创建目录         
  -m, --media-type <MEDIA_TYPE>     指定可上传的媒体类型          
          [possible values: image, audio, video]
  -M, --raw-media-type <MEDIA_TYPE_RAW>    指定上传的媒体类型表达式          
  -o, --overwrite-files    在文件上传过程中启用覆盖现有文件          
  -r, --enable-tar         启用生成tar的压缩文件          
  -g, --enable-tar-gz      启用生成tar.gz的压缩文件          
  -z, --enable-zip         启用生成zip的压缩文件        
  -D, --dirs-first         先列出目录          
  -t, --title <TITLE>      在页面中显示标题,而不是显示主机          
      --header <HEADER>...     设置 response 的 header          
  -l, --show-symlink-info      可视化目录列表中的符号链接          
  -F, --hide-version-footer    隐藏版本页脚          
      --hide-theme-selector    隐藏主题选择器
          

  -W, --show-wget-footer   如果启用,则显示一个wget命令以递归地下载当前目录          
      --print-completions <shell>    为shell生成完成文件          
          [possible values: bash, elvish, fish, powershell, zsh]
      --print-manpage        生成手册页          
      --tls-cert <TLS_CERT>  要使用的 TLS certificate
      --tls-key <TLS_KEY>    要使用的 TLS 私钥          
      --readme     在目录中显示 redame.md          
  -h, --help       帮助          
  -V, --version    版本          

安装

Linux
    chmod +x miniserve-linux
    ./miniserve-linux
    Termux:pkg install miniserve

OSX
    brew install miniserve
    miniserve

Windows
    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

HFS --- 文件分享服务器

https://zhuanlan.zhihu.com/p/51259661

http://www.rejetto.com/hfs/

HFS全称为http file server,这是一个专门实现文件共享的工具(可以跨平台支持 Windows 和 Linux),通过HTTP服务将要共享的目录或文件发布,从而让需要下载者直接通过浏览器访问发布的这个共享站点,下载共享资源。和传统FTP不同的是我们在共享及下载时不需要考虑端口以及传输模式等问题(端口可自定义),所以我们也不用担心通讯数据被防火墙所过滤,另外由于我们是通过HTTP服务来共享资源的,其他设备只需通过 IP 地址即可下载和上传文件,所以不同环境下的访问等难题也迎刃而解。

HFS功能很强大,不过有的朋友就会说了,服务端软件界面还是有点复杂,客户端页面还是有点陈旧,有没有更简单的软件,一键那种。肯定有了,就是 下面的 CuteHttpFileServer / chfs

CuteHttpFileServer / chfs

github:https://github.com/ods-im/CuteHttpFileServer

HTTP 文件共享服务器工具 - chfs:https://zhuanlan.zhihu.com/p/350783441

CuteHttpFileServer/chfs是一个免费的、HTTP协议的文件共享服务器,使用浏览器可以快速访问。它具有以下特点:

  • 单个文件,核心功能无需其他文件
  • 跨平台运行,支持主流平台:Windows,Linux和Mac
  • 界面简洁,简单易用
  • 支持扫码下载和手机端访问,手机与电脑之间共享文件非常方便
  • 支持账户权限控制和地址过滤
  • 支持快速分享文字片段
  • 支持webdav协议

与其他常用文件共享方式(如FTP,飞秋,网盘,自己建站)相比,具有使用简单,适用场景更多的优点,在个人使用以及共享给他人的场景中非常方便快捷。

使用:https://blog.csdn.net/m0_52152448/article/details/127292716

下载解压后,双击运行,在窗口中添加想要共享的目录,点击左上角按钮运行,然后在右上角找到提示的网址打开,可根据左侧列表自定义配置。

花生壳 HFS

替代NAS、网盘、FTP?3分钟教你搭建免费文件服务器:https://zhuanlan.zhihu.com/p/429746634

Linux文件服务器的搭建

https://www.bilibili.com/read/cv13596994/

Ftp介绍

  • 文件传输协议(File Transfer Protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文 件、上传文件、下载文件。FTP 基于TCP协议生成一个虚拟的连接,主要用于控制FTP连接信息, 同时再生成一个单独的TCP连接用于FTP数据传输。用户可以通过客户端向FTP服务器端上传、下 载、删除文件,FTP服务器端可以同时提供给多人共享使用。
  • FTP服务是Client/Server(简称C/S)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之 为FTP服务器源端,客户端程序基于FTP协议,则称之为FTP客户端,FTP客户端可以向FTP服务器 上传、下载文件。
  • 目前主流的FTP服务器端软件包括:Vsftpd、ProFTPD、PureFTPd、Wuftpd、Server-U FTP、 FileZilla Server等软件,其中Unix/Linux使用较为广泛的FTP服务器端软件为Vsftpd 。 作者:千锋云计算 https://www.bilibili.com/read/cv13596994/ 出处:bilibili

Ftp传输模式

  • FTP基于C/S模式,FTP客户端与服务器端有两种传输模式,分别是FTP主动模式、FTP被动模式, 主被动模式均是以FTP服务器端为参照。
  • FTP主动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客 户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器,FTP服务器以数据端口(20)连 接到客户端指定的数据端口(N+1)。
  • FTP被动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客 户端开始监听端口N+1,客户端提交 PASV命令,服务器会开启一个任意的端口(P >1024),并 发送PORT P命令给客户端。客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
  • 企业实际环境中,如果FTP客户端与FTP服务端均开放防火墙,FTP需以主动模式工作,这样只需 要在FTP服务器端防火墙规则中,开放20、21端口即可。 作者:千锋云计算 https://www.bilibili.com/read/cv13596994/ 出处:bilibili

vsftpd + Nginx

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服务器。

  • 非常安全的FTP服务进程(Very Secure FTP daemon,Vsftpd),Vsftpd在Unix/Linux发行版中 最主流的FTP服务器程序,优点小巧轻快,安全易用、稳定高效、满足企业跨部门、多用户的使用 (1000用户)等。
  • Vsftpd基于GPL开源协议发布,在中小企业中得到广泛的应用,Vsftpd可以快速上手,基于Vsftpd 虚拟用户方式,访问验证更加安全。Vsftpd还可以基于MYSQL数据库做安全验证,多重安全防 护。 作者:千锋云计算 https://www.bilibili.com/read/cv13596994/ 出处:bilibili

Vsftp的登录类型

VSFTP提供了系统用户、匿名用户、和虚拟用户三种不同的登陆方式。所有的虚拟用户会映射成一个系 统用户,访问时的文件目录是为此系统用户的家目录;匿名用户也是虚拟用户,映射的系统用户为ftp, 详细信息可以通过man vsftpd.conf查看

使用 minio 搭建自己的文件存储服务(新版和旧版)

https://juejin.cn/post/7023348049401348126

猜你喜欢

转载自blog.csdn.net/freeking101/article/details/130363335
今日推荐