我正在运行一个安装了ddwrt路由器的家庭网络。我可以从家庭网络ssh进入路由器,我可以从家庭网络内部ssh进入pc,我可以从家庭网络外部ssh进入路由器(静态公网ip)。现在,我想要从家庭网络之外的pc中进行ssh,据我所知,要做到这一点,我需要创建一个ssh隧道。我使用以下命令:
ssh -L bbbb:hoomepcip:22 root:externalip
这样做之后,我打开另一个终端,然后我
ssh homepcusername@externalip -p bbbb
但是它不工作,我做错了什么吗?
第一个命令不是应该在路由器中转发端口,这样我发送到它的bbbb端口上的外部ip的所有内容都会发送到我家用pc的22个端口吗?
现在我已经在路由器gui上建立了一个永久端口转发,但是我不想使用它,当我需要ssh的时候打开这个端口。
路由器和pc都安装了SSH服务器,路由器已丢弃pc openssh
发布于 2021-04-04 07:36:07
我为自己找到了解决方案。因此,正如我所说的,我需要一种从网络外部通过路由器ssh进入我的pc的方法。首先打开终端窗口并输入
ssh -L bbbb:homepcIP:cc myrouterusername@mywanip -p aa
这将连接到路由器并将端口bbbb(从1024-60000中选择一个数字)转发到pc中的cc (通常为22),键入密码并将其保留为打开状态
然后打开一个新的终端窗口并键入
ssh pcUSERNAME@localhost -p bbbb
在这种情况下,bbbb可以是您选择的任何端口号(如果大于1024,则最好,最大限制是60000ish)
cc和bb是ssh服务器的端口(我的pc的cc和我的路由器的bb,它们通常是22,但可能会根据配置的不同而变化)
这里的关键是" localhost“,我总是在这里输入我的pc ip,但你必须输入localhost,它才能正确地连接到pc。
此外,您还必须在第一台服务器中启用SSH TCP转发
发布于 2021-03-25 16:19:48
您可以考虑使用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)。
另一个例子:来自Ibrahim Jarif的"How to Setup SSH using Tailscale or Ngrok“。
https://stackoverflow.com/questions/66769789
复制相似问题