![从路由器外部 (WAN) 连接到我的 LAN?](https://linux22.com/image/1325430/%E4%BB%8E%E8%B7%AF%E7%94%B1%E5%99%A8%E5%A4%96%E9%83%A8%20(WAN)%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E6%88%91%E7%9A%84%20LAN%EF%BC%9F.png)
是时候进行一些极其粗糙的 ASCII 艺术了。
|------| /LAN_B
ME ->|ROUTER|->LAN_A-> -LAN_C
|------| \LAN_D
LAN_A 是一台具有必要的公开端口的服务器,可以连接到该端口。基本上,我想知道是否有任何方法可以从 LAN 外部连接到 LAN_A,并通过它连接到 LAN 上的任何其他计算机,就像我实际在 LAN 上一样(RDP、FTP、任何服务,实际上 - 就像我实际在 LAN 上一样)。如果这看起来像是一个模棱两可的解释,我很抱歉,但我基本上只是希望它就像我真的在 LAN 上一样,并且 LAN 上的每台其他计算机都有自己的 IP 地址,我可以向其发送或接收连接。
我的路由器正在运行 dd-wrt,所以如果我实际上可以连接到我的路由器,那就太好了。
答案1
是的,我一直这样做。如果“SSH 服务器”指的是运行 SSH 服务器的实际计算机,那么您将从外部通过 SSH 进入 LAN_A,并在 LAN_A 上获取命令行。然后,您将ssh
在 LAN_A 上运行另一个命令以连接到其他计算机之一。
只需确保您的路由器配置为将端口 22 从外部接口转发到 LAN_A。
更新后问题的答案:
您可以使用 SSH 端口转发来访问特定端口。例如:
ssh host -l1234:LAN_B:5678
将连接host
并将您的“ME”机器上的端口 1234 转发到 LAN_B 的端口 5678。然后您可以连接到,localhost:1234
并且您实际上将连接到LAN_B:5678
。
或者,您可以研究 SSH 的-D
选项,它提供了本地 SOCKS 代理服务器,该服务器通过安全通道转发连接。如果您将应用程序设置为使用localhost
SOCKS 代理,那么您可以直接连接到 LAN_B、C 和 D。
但是使用 SSH 并不是理想的选择,因为 SSH 是为点对点通信而设计的。如果您可以控制 ME 计算机和 LAN_A,我建议您研究一下OpenVPN而是可以使 LAN_A 到 LAN_D 看起来好像与您的 ME 计算机位于同一网段上,同时像 SSH 一样加密通过 Internet 通道的所有通信。