NAS 上的文件想在外面拿?一个容器搞定 copyparty,上传下载在线看全都有
作者
小编
发布时间

项目介绍
NAS 上的文件想在外面拿,通常要么开一堆端口,要么装个客户端。copyparty 是另一条路:一个容器跑起来,浏览器打开就是你 NAS 上的文件夹,上传、下载、在线看、按文件名搜,全都在这一个网页里。
它本体是一个 Python 文件,依赖全是可选的,所以镜像很小(三十多兆)。除了网页,它同时还提供 WebDAV、FTP、SFTP、TFTP、SMB 这些协议,手机、电脑、电视盒子想怎么连都行。
项目地址:点我跳转
部署安装
下面在飞牛 NAS 上用 Docker Compose 装 copyparty,装完再用 帕斯内网穿透 把它开放到公网,这样人在外面也能翻自己 NAS 上的文件、也能往回传。
一、新建 Compose 项目
打开飞牛的「Docker」应用,切到「Compose」标签,点右上角的新增项目。项目名称填 copyparty,路径这里选一个空文件夹——如果选中的目录里已经有 docker-compose.yml,页面会弹提示挡住下面的选项。
「来源」选「创建 docker-compose.yml」,然后把下面这段编排整个贴进去。
二、编排文件
1services:2 copyparty:3 image: copyparty/ac:1.20.234 container_name: copyparty5 ports:6 - 3923:39237 volumes:8 - ./files:/w9 command: -a nas:换成你自己的密码 -v /w::A,nas --lang chi --grid -e2dsa10 restart: unless-stopped
三处需要认一下
端口 3923:冒号左边是 NAS 上对外的端口,被占了就改成别的,后面建隧道要填的也是这个。
./files:数据目录,用的是相对路径,就落在刚才选的那个项目目录下面,不用去查飞牛把「我的文件」映射到了哪里。传上去的东西都在这儿。
command 那一行:账号、权限和几个开关都在这里,是这份编排里最要紧的一行,下面单独说。
为什么 command 那一行必须改
copyparty 出厂是零鉴权的。官方 README 里写得很直白:不带参数跑起来,当前目录对所有人都是可读可写。放在家里的局域网里问题不大,一旦开放到公网,等于把一个谁都能上传、谁都能删的目录挂到了外面。
所以账号要在编排里就配好——容器一跑起来就是有门的,不存在「先裸奔一会儿再补上」的窗口。这一行拆开看:
-a nas:换成你自己的密码 建一个账号,冒号左边是用户名,右边是口令。口令自己起一个长一点的,别用弱口令——这串东西就是这个服务的全部门禁。
-v /w::A,nas 把容器里的 /w(也就是宿主机上的 ./files)挂成网站的根目录,三段用冒号分开:来源路径、网址路径(留空就是根)、权限。A 是全权限(读写移删),只给 nas 这个账号——匿名访问者一点权限都没有,打开只会看到一个登录框。
--lang chi copyparty 自带中文界面,默认是英文的,加这一个词整个界面就是中文的。
--grid 默认用缩略图网格视图,照片多的时候比文件名列表好看得多。
-e2dsa 开文件索引,按文件名搜索靠的就是它。
顺带一提,copyparty 对暴力破解是有防护的:默认一小时内失败 9 次就封 24 小时,所以配一个像样的口令之后,把它开放到公网是可以放心的。
三、启动
勾上「创建项目后立即启动」,点创建。镜像才三十多兆,拉完很快就跑起来了。
四、用 PassNAT 开放到公网
容器跑起来之后就可以直接做穿透了,不用先在局域网里折腾。在飞牛的「应用中心」里搜 PassNAT 就能装上客户端,装好账号登录一次。然后直接在插件里建隧道,不用去网页控制台绕一圈:
隧道名称随便起一个,传输协议选 TCP,本地地址那一栏留空就行(默认就是 127.0.0.1,插件跟 copyparty 跑在同一台机器上),本地端口填 3923。接入节点保持自动分配。
创建完在隧道详情里按一下电源按钮启动,详情里就会给出一个公网地址。之后上传、搜索、在线看,全都可以在这个地址上做,家里那台不用再碰。
五、网页之外还能怎么用
视频里演的是网页,但 copyparty 顺手还给了几条路,装完就能用:
up2k 网页里那个火箭图标是它自带的加速上传器,分块 + 断点续传,传大文件断了也能接着传。视频里我用的是旁边那个「基础上传」,两个都能用,传几张图随便挑一个就行。
WebDAV 跟网页共用 3923 端口。Windows 可以直接映射成网络驱动器,手机上用支持 WebDAV 的文件管理器也能挂上。
在线播放 编排里用的 ac 版镜像自带 ffmpeg,音视频有缩略图,网页里还有个内置播放器,音乐可以直接放。
分享链接 可以给某个文件或文件夹生成一个临时链接,发给别人不用给账号。
小结
copyparty 很轻,一个容器、一个端口、一个数据目录就跑起来了,适合放在 NAS 上当文件入口用。唯一要留心的是它出厂没有鉴权,账号一定要在编排里配好再开放出去。配合内网穿透之后,人在外面也能像在家里一样翻自己的文件。