没有公网IP怎么远程SSH?设备只装 p2pssh-server,File2File 一键连回去

我是 p2pssh-server 和 File2File 的作者。底层通道用的是 webrpc。

家里的 Mac、Linux 小主机、树莓派、公司内网里的一台机器,经常没有公网 IP。想远程 SSH,常见做法是再租一台有公网的机器做中转,或者在路由器上记一串内网地址、端口映射。人一换网络,地址就变,收藏夹里的 IP 也跟着失效。

我把这件事收成两个程序:

  • 设备上 只跑 p2pssh-server
  • 人这一侧 用 File2File 桌面端里的 P2P SSH

远程设备不需要公网 IP,也不需要你记住它的内网 IP。连过一次的设备会留在 File2File 里,下次点一下就能再连。

连上之后有两种用法

方式 你怎么用 适合
应用内终端 点「新建终端」 直接在 File2File 里敲命令。服务端开的是登录 shell 的 PTY,不要求对方开着 sshd,你这台电脑也不必自带 ssh 命令
系统终端 按界面上的 ssh -p 端口 user@127.0.0.1 继续用你习惯的终端、密钥和脚本。流量先到本机端口,再经 P2P 转到远端 SSH(默认 127.0.0.1:22)

截图里那条绿色命令就是第二种:端口由这次会话分配,外面看仍是连本机,实际落在已经配对好的那台设备上。

应用内终端在 Linux / macOS 的 p2pssh-server 上可用。Windows 上的服务端目前做 TCP 转发 ,给外部 ssh 客户端用;要应用内 shell,把服务端放在 Linux 或 macOS 上。

为什么不用先记 IP

p2pssh-server 启动时带的是 webrpc 的 Token、密码和口令,设备用 Token 标识,不靠「现在的局域网地址」。

File2File 登录后,在 P2P SSH 里新建隧道,选已经登记过的设备。左侧会留下设备名和 Token,在线状态能直接看到。下次打开软件,点原来那条,再进终端或复制本机 ssh 命令即可。

聊天、网盘、P2P SSH 可以在同一个 File2File 窗口里。SSH 只是其中一条通道,认证走 webrpc 的 Token 和口令。

设备上怎么跑

从 GitHub Release 拿对应平台的 p2pssh-server(macOS arm64、Linux amd64 / arm64、Windows amd64)。Token 在 webrpc.cn 申请,或用 File2File 一键注册领取体验 Token。

在要被连的那台机器上:

bash 复制代码
./p2pssh-server \
  --token YOUR_TOKEN \
  --passwd YOUR_PASSWD \
  --permission YOUR_PERMISSION

然后在另一台电脑打开 File2File,登录后进入 P2P SSH → 新建隧道,选这台设备。

  • 只想在窗口里敲命令:点 新建终端(Linux / macOS 服务端)。
  • 想用系统自带的 ssh:看界面给出的端口,执行 ssh -p 端口 用户名@127.0.0.1。这一路需要远端本机 sshd 可用,默认转到 127.0.0.1:22,也可用 --ssh-host、--ssh-port 改。

应用内 shell 以 p2pssh-server 进程的用户身份运行。长期放在家里时,用专用账号启动,口令不要留空。

源码、两种通道和编译说明都在仓库:https://github.com/xiaoming-software/p2pssh-server。桌面客户端:https://github.com/xiaoming-software/File2File-Desktop。

没有公网 IP 的设备,远程 SSH 可以不再先养一台中转服务器,也不必把内网地址抄在备忘录里。服务端装上 p2pssh-server,人这边用 File2File 记住设备,下一次就是一键再连。

相关推荐
cpolar技术支持13 小时前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断
承渊政道3 天前
Open-LLM-VTuber本地部署教程:大模型、语音交互、Live2D与远程访问
大模型·内网穿透·数字人·cpolar·语音交互·open-llm-vtuber
程序员初一4 天前
8080 打不开的四层定位:监听地址、ufw、DOCKER 链、安全组
linux·ssh
程序开发阿元4 天前
swappiness 60 和 10 差在哪:一台 1C1G 的三轮对比
linux·ssh
程序开发阿元4 天前
一台 20G 的 VPS 被日志吃掉一半:我按这个顺序查了二十分钟
linux·ssh
skywalk81634 天前
不用 SSH、不装数据库:我用 1 个 Python 脚本 + Git,把 15 个 AI Agent 串成了一条流水线
数据库·人工智能·python·ssh·集群
FungLeo4 天前
成为全栈·基础补充·Linux 服务器入门
linux·运维·服务器·ssh·部署·成为全栈
十碗饭吃不饱5 天前
SSH 密钥认证详解:原理、实操、参数、排错与加固
运维·ssh
贝锐5 天前
向日葵迎来重磅升级 异地组网与内网穿透在设备列表一键开启
内网穿透·远程控制·异地组网
debugdynamo5 天前
Netcatty:把 SSH 客户端做回工作台
运维·其他·ssh