Skip to content

Latest commit

 

History

History
84 lines (53 loc) · 4.98 KB

File metadata and controls

84 lines (53 loc) · 4.98 KB

💻 PhotoTransDrive

家庭网盘 · 电脑端(Python)

人在外面,手机也能打开家里电脑的网盘 —— 同一套协议,三种「出门的路」任选

License Platform

同项目的另外三端: Android · iOS · HarmonyOS


为什么做这个

家里一台电脑常年开着,装着照片、文档、下载好的整季剧集。局域网内手机连过去传文件很顺手——但人一旦出门,这台电脑就锁死在 NAT 后面了。更麻烦的是运营商的 IPv6 前缀说变就变,你昨天抄下来的地址今天就是死路一条。

PhotoTransDrive 把"外面怎么连进来"这件事做成了三种可选的路径:地址会变,就让电脑发邮件告诉你;NAT 太深,就自己搭一座透明的桥;连服务器都不想要,就借一把别人现成的梯子。协议层完全一致,手机 App 侧零改动。

三种方式,外面怎么连

直连 —— 用于同一个网络。 手机和电脑同一 Wi-Fi 时最直接的形态:填 IP + 配对码即通,不经过任何中间人。这是整套系统的地基,其余方式只是给它加了一层"怎么被找到"的外壳。

邮件寻址 —— 地址会变,就让电脑自己汇报。 server.py 启动时自动把当前地址、端口和配对码发到你的邮箱;手机打开邮件模式,App 自己收信、解析、配对,你甚至不用看那封邮件。适合"想零配置、又要随时能连上"的场景——只要给一个邮箱授权码。

中继穿透 —— NAT 深处的桥。 电脑藏在运营商级 NAT 后面时,直连和邮件都够不着。这时在公网放一个 relay.py,家里电脑用 relay_client.py 主动连出建一条反向隧道,手机从桥的另一端进来。桥只转发字节、不落盘文件,带认证、心跳保活和断线自动重建。

免注册转发 —— 连服务器都不想租? 有一个开箱即用的轻量选项:借助公开的免注册 TCP 转发服务(如 bore.pub),电脑一条命令连上去,公网端口秒开,手机直连模式填进去就能用。实测全功能通过、隧道稳定——代价是端口随启动变化,且免费额度有限,适合个人轻量使用。

快速上手

# 路径一:只在家里用(直连)
python server.py --pair-code 123456

# 路径二:想在外面连,不想租服务器(免注册转发,自动打印公网地址)
python bore-up.py --pair-code 123456

# 路径三:要长期稳定,租一台轻量云(中继穿透)
#   服务器上: python relay.py --auth-key 你的密钥
#   家里电脑: python relay_client.py --relay 服务器:47820 --auth-key 你的密钥

手机上打开 PhotoTrans 网盘(任一端的 App)→ 选对应模式 → 填地址 / 配对码 → 开始用。

四种方式对比

方式 需要 外部可用 维护成本 适合
直连 同一网络 ❌ 零 在家传文件
邮件寻址 邮箱授权码 ✅ 零 想零配置地"随时能连"
中继穿透 一台轻量云服务器 ✅ 低(开机自启) 长期、稳定、多设备
免注册转发 无(自动下载客户端) ✅ 低(端口会变) 个人轻量使用

刚才说的"实测",是真的

这份代码里没有一句没验证过的承诺。提交前我们真的做过这么几轮:

  • 下载完整性:经公网中继拿到的文件,sha256 与局域网直连逐字节一致;
  • 断线自愈:中继进程被杀后,客户端主动断开隧道并自动重建,日志全程可查;
  • 踩过坑:serveo.net 免费隧道每 4.4 分钟被服务端强制断开、端口漂移(记录在案),因此默认推荐了实测稳定、免注册的 bore.pub——"免费"不等于"能用",测过才算数。

目录速览

server.py               电脑端网盘服务(协议、鉴权、文件管理、邮件通知)
relay.py                公网中继服务器(反向隧道,NAT 穿透)
relay_client.py         家里电脑中继客户端(主动连出 + 心跳 + 自动重建)
bore-up.py              免注册转发一键脚本(自动下载客户端 + 打印端口 + 断线重连)
deploy/                 systemd 单元 / Windows 一键脚本 / 部署手册
README_RELAY.md         中继协议与部署细节

安全

出门在外访问家里的电脑,配对码就是门槛:建议用普通配对码(只读:浏览/下载)日常使用,用管理员配对码(完整权限)只在必要时输入。文件内容只在你的设备与 server 之间流动,中继与第三方桥都不落盘、不校验密码、不接触业务数据。

开源协议

MIT License