如何解决如何在家庭网络内的计算机上 ssh
我正在运行一个安装了 ddwrt 路由器的家庭网络。 我可以从家庭网络ssh到路由器,我可以从家庭网络内部ssh到pc,我可以从家庭网络外部ssh到路由器(静态公共ip)。 现在我想从家庭网络外部在我的电脑中 ssh,据我所知,要做到这一点,我需要创建一个 ssh 隧道。我正在使用以下命令:
ssh -L bbbb:hoomepcip:22 root:externalip
这样做后,我打开另一个终端,然后我
ssh homepcusername@externalip -p bbbb
但它不起作用,我做错了什么
第一个命令不是应该在路由器中进行端口转发,所以我在 bbbb 端口上发送到它的外部 ip 的所有内容都会转到我家用电脑的 22 个吗?
现在我在路由器 gui 上做了一个永久端口转发,但我不想使用它并在需要 ssh 时打开端口。
路由器和电脑都安装了SSH服务器,路由器有dropbear pc openssh
解决方法
我找到了适合我的解决方案。 因此,正如我所说,我需要一种通过路由器从网络外部 ssh 进入我的电脑的方法。 首先打开一个终端窗口并输入
ssh -L bbbb:homepcIP:cc myrouterusername@mywanip -p aa
这会将您连接到路由器并将端口 bbbb(从 1024-60000 中选择一个数字)转发到您电脑中的 cc(通常为 22) 输入密码并保持打开状态
然后打开一个新的终端窗口并输入
ssh pcUSERNAME@localhost -p bbbb
bbbb 在这种情况下可以是您选择的任何端口号(最好在 1024 以上,并且最大限制为 60000ish)
cc 和 bb 是 ssh 服务器的端口(我的电脑的 cc 和路由器的 bb,它们通常是 22,但它可以根据配置而改变)
这里的关键是“localhost”,我总是在那里输入我的 pc ip,但您必须输入 localhost,它才能正确连接到 pc。
你还必须在第一台服务器中启用 SSH TCP 转发
,您可以考虑使用 tailscale,而不是 SSH 隧道。
参见例如“How to secure an Ubuntu server using Tailscale and UFW”,它将限制 ssh 访问仅通过 Tailscale,并使用 UFW(简单防火墙)限制到您的服务器的非 Tailscale 流量。
这将为您提供可用于 SSH 的 Tailscale IP 地址(以 100.x.y.z 开头),而您的公共互联网 IP 不允许 SSH。
然后,您可以根据需要添加 MFA (multi-factor auth)。
其他示例:来自 How to Setup SSH using Tailscale or Ngrok 的“Ibrahim Jarif”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。