You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SSH隧道从外部网络访问家庭内网电脑

你的操作存在两个核心认知/语法错误

第一,对ssh -L的映射逻辑理解完全颠倒

  • ssh -L 属于本地端口转发,创建的隧道端口默认绑定在你当前发起SSH连接的本地设备上,根本不会在远端路由器的公网网卡上开放监听端口。你执行完第一条命令后,bbbb端口只会出现在你当前正在操作的外部设备上,路由器的公网IP根本没有监听这个端口,自然会连接失败。
  • 你写的第一条命令本身语法就是错误的:SSH连接目标地址的格式是用户名@目标IP,不是用冒号拼接,你写的root:externalip不符合命令规范,大概率这条命令连正常的SSH连接都没建立成功。

第二,你想要的临时端口转发逻辑,用错了SSH隧道参数

你原本以为的「连上路由器后临时在路由器公网IP开端口,转发到内网电脑22端口,断开连接就自动关闭端口」的效果,需要用反向隧道-R参数实现,而不是本地转发-L。

正确的操作步骤
  1. 从外部设备发起和路由器的SSH连接时,使用带公网绑定的反向隧道参数,正确命令格式为:
    ssh -R 0.0.0.0:bbbb:homepc内网IP:22 root@路由器静态公网IP
    参数说明:
    • -R 代表反向隧道,所有监听端口都会创建在远端的路由器上,而非本地设备
    • 0.0.0.0: 前缀的作用是强制让端口绑定在路由器的所有网卡上(包含公网网卡),如果不加这个前缀,dropbear默认只会把隧道端口绑定在路由器的127.0.0.1回环地址上,从公网根本访问不到。
    • 注意命令中的bbbb替换为你实际要用的高位端口号,homepc内网IP替换为家里电脑的实际内网地址,不要出现之前笔误的拼写错误。
  2. 当这条和路由器的SSH连接保持在线时,路由器公网IP的bbbb端口就已经处于可用状态,此时新开终端执行ssh homepc用户名@路由器静态公网IP -p bbbb,就能正常连接到家里的电脑。
  3. 等使用完成后,直接断开和路由器的这条SSH连接,路由器上的bbbb端口监听会立刻自动清除,不会留下长期开放的公网端口,完全符合你按需开放端口的需求。
额外注意的配置项
  • 你的路由器用的是dropbear SSH服务端,需要给dropbear开启允许反向隧道公网绑定的配置:一般是给dropbear的启动参数加上-a,不然哪怕命令带了0.0.0.0,dropbear也会默认拒绝把隧道端口暴露在公网网卡上。

内容的提问来源于stack exchange,提问作者MasterDingo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 16:45:03