替代奶牛快传,一行代码搭建一个自己的文件传输网盘——psitransfer,附上frp的部署
追加修改(2022-10-07 17:42:13):
需要声明的一点,大家不要想着拿着个服务去搞一些奇怪的内容。本身技术是为了给大家的生活提供便利的,而不是拿来滋养不良行为的温床。特此声明
1 引言
有很多场景,我们需要给别人传一个文件,对于较小的文件,直接qq文件传输或者微信的文件传输助手就解决了。但是,如果碰到大文件或者一堆文件夹的时候该怎么办呢?这时候就得借助网盘了。可是,现在的网盘,除了某知名网盘被人诟病很久的限速问题之外,一般的网盘,你想下载一堆文件的时候,大多还是需要下载客户端才给下载的。
针对这种现象,国内也是出现了一批优秀的文件传输网盘,如奶牛快传,文叔叔这一类优秀的软件,不需要下载就可以实现文件的传输。接收文件者也可以获得满速的下载体验。但是,很多私密性的文件,如机密文件之类的,或者私密一点的文件通过这类网盘传输就有了不确定性。这类中小企业的产品,数据安全方面肯定是比不上百度云这类产品的。
因此,本文在捡垃圾系列之后,单独开了捡垃圾后该怎么玩的话题。让大家刷完机就吃灰的东西,能够多多少少发挥一点自己应有的价值。
2 准备工作
2.1 硬件
默认大家手头都有了一个linux设备了(armbian也是linux的一个分支)。当然,为了保障该功能最大化的使用,最好该设备还是有个千兆网口和usb3.0接口。如果是自己买的工控主板装的linux小主机,那么直接用内置的硬盘即可。如果没有内置硬盘,最好还是有一个移动硬盘,容量随意,可以参照你想传输的大文件的体积来进行选择,最好是500g以上,这样才有更多的可玩性。
2.2 安装有docker
如果没有安装docker,可以参照下列代码进行docker的安装。
sudo apt install docker.io
2.3 公网IP或者frp实现公网穿透
如果有公网ip,可以通过ddns绑定一个域名来完成接下来的操作。后面上传的网速取决你的宽带上传速度的上限。
如果没有公网ip,那么可以购买一个阿里云或者腾讯云新加坡节点的服务器,大概在24元左右一个月,可以有30M的带宽以及1T的流量,能够给你提供一个公网ip,笔者实测速度还可以。
对于这个服务器,这个已经是目前大厂能买到的最便宜的云服务器了,国内节点除了活动的时候比较优惠,正常价格都是正常都在60元一个月,而且带宽只有少的可怜的3M。这个服务器在商量好带宽的使用后也完全可以和朋友们合买一个。如果需求不高的话,也可以把这个服务部署在云服务器上进行使用。有了这么一个云服务器,能干的事情还有很多很多,具体的后面开文再慢慢说。
需要注意的一点是,这一个月1t的流量,跟手机卡一样是每个月自动更新的,计算的也只是流出的流量,相对来说还是足够满足日常一般使用的。毕竟也不会有大佬一个月能传1T的文件,碰到这种情况往往移动硬盘可能比这种云服务更加合适。
2.4 frp的部署
此部分是针对没有公网ip的朋友食用,已有公网ip的通过ddns,在路由器上设置一下端口转发即可使用。
1.frps(服务端)的部署
建立好frps的配置文件,推荐按照笔者默认的位置进行设置
mkdir /docker/frps
cd /docker/frps
apt install nano -y
nano frps.ini
在文件中输入如下参数,一般的ssh都是鼠标右键粘贴
[common]
bind_addr=0.0.0.0
bind_port=8000
token=token
vhost_http_port=80
vhost_https_port=443
dashboard_port=7500
dashboard_user=admin
dashboard_pwd=passwd
需要修改的部分,就是token改成你自己喜欢的token,后面的dashborad_pwd后面的passwd,改成你需要的控制面板的密码。
输入完之后,ctrl+o保存,ctrl+x退出
完成上一步之后,就进行frps的docker方式部署(采用这种方式的一大原因,就是维护起来特别容易)
docker run --restart=always --network host -d
-v /docker/frps/frps.ini:/etc/frp/frps.ini
--name frps snowdreamtech/frps
这一步完成之后,需要做的就是放行端口以及找到你云服务的公网ip
下图标注部分就是你的公网ip,需要记录一下。然后进入防火墙。
添加上面的7500和8000端口,即添加两个规则。
放行之后可以测试一下,浏览器输入你的公网ip:7500,输入设置的账号密码,即可进入查看。可以进入即部署成功。
2.frpc(客户端)的部署
回到你自己的服务器,进入后台。重复一下上面的操作,下面附上代码:
mkdir /docker/frpc
cd /docker/frpc
apt install nano -y
nano frpc.ini
然后就是输入配置文件
[common]
server_addr = 你的公网ip
server_port = 8000
token = 你的token
[psitransfer]
type = tcp
local_ip = 127.0.0.1
local_port =3000
remote_port =3000
按照上面标注的地方,更改为你的对应信息即可,然后再回到云服务器的防火墙,放行3000端口。
docker run --restart=always --network host -d
-v /docker/frpc/frpc.ini:/etc/frp/frpc.ini
--name frpc snowdreamtech/frpc
到这里内网穿透的部分就结束了。
3 正式部署
3.1 安装psitransfer
还是进入你的服务器的ssh
输入一行代码,将passwd换成你需要的密码
docker run -p 0.0.0.0:3000:3000 -e PSITRANSFER_ADMIN_PASS=passwd -v /docker/psitransfer/data:/data psitrax/psitransfer
然后给这个文件夹权限,避免一些其他的问题:
sudo chown -R 1000 /docker/psitransfer/data
3.2 一些问题的排查
如果在上一步出现报错的情况,那么就是你的系统没有切换成国内的源,更换一下即可
cd /etc/docker
nano daemon.json
然后输入:
{ "registry-mirrors":["https://dockerhub.azk8s.cn", "https://hub-mirror.c.163.com/"] }
按照上面说的ctrl+o和ctrl+x保存
重启docker
sudo systemctl restart docker
4 使用
在浏览器输入你的公网ip:3000即可进入下面的界面
正常的使用应该没啥障碍,将文件拖进去即可,右边第一行是文件保存时间,到期后自动删除,第二行是选择是否带密码分享文件。
上传之后点击粘贴到剪贴板,即可分享给你的好友了。
如果想查看最近传输过什么文件,就在浏览器输入你的公网ip:3000/admin,如下图所示,输入你刚刚部署时设置的密码就可以进行查看了。
5 总结
所有的部署教程如图所示,这款应用在日常生活中还是有其一定的使用场景的。当然,还是推荐家中有公网ip的进行使用,这样就不必收到流量限制的烦恼了。后面准备开一篇如何在没有软路由或者没有插件的路由器的网络环境下实现ddns,先挖个坑后面慢慢填。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~











一口一口吃掉你
校验提示文案
cwz1985
校验提示文案
嘟嘟坚果墙
校验提示文案
咪了个喵喵喵
校验提示文案
东兴药杨
校验提示文案
东兴药杨
校验提示文案
咪了个喵喵喵
校验提示文案
嘟嘟坚果墙
校验提示文案
cwz1985
校验提示文案
一口一口吃掉你
校验提示文案