没有公网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 记住设备,下一次就是一键再连。

相关推荐
程序员-Benothing1 天前
SSH从入门到精通:密钥登录、config配置、跳板机
linux·运维·服务器·ssh
cpolar技术支持2 天前
把配置发出去怕带出密钥?先把含凭据配置转成脱敏只读快照,用 cpolar 给同事核对差异
运维·python·内网穿透·cpolar·配置脱敏
cpolar技术支持2 天前
端口被谁占了、这台机上开了哪些监听?本机起一个端口占用只读清单,cpolar 给异地同事远程看谁在监听
运维·python·内网穿透·cpolar·端口占用
IT大白鼠2 天前
AI SSH 运维助手 V13.0内部版七项私有新特性全解
运维·人工智能·ssh
微软技术分享2 天前
NexShell 1.0|大模型驱动的智能 SSH 运维终端,永久免费,赋能 Linux 服务器管理
运维·服务器·ssh
小白的码BUG之路2 天前
linux -- ssh两台机器相连
运维·服务器·ssh
小白的码BUG之路3 天前
Jenkins -- 配置ssh
运维·ssh·jenkins
todoitbo3 天前
本来只想给内网开个口子,Natapp 却多给了一道防护
前端·javascript·vue.js·内网穿透·网络防护·natapp