我想要实现的几乎完全就是本文中描述的:https://peter-jp-xie.medium.com/use-double-ssh-tunnels-instead-of-vpn-to-access-private-network-f0dee50d82e3,并在这个图像中表示:

不过,我希望这个图的"Home PC“上的本地隧道(监听端口9000)就像一个动态端口转发(通常使用SSH的-D选项打开),因此基本上是SOCKS代理。
但我希望这个SOCKS代理不通过公共服务器重定向连接,而是将其路由到私有PC上,这将实质上成为真正的“枢纽”点,将连接重定向到它们真正的IP目的地。
换句话说,这就像在“家庭PC”上使用动态端口转发,通过ssh直接连接到“私有PC”,而不是连接到公共服务器。除了私有PC和家庭PC都落后于NAT,而且只能进行传出连接,因此公共服务器需要充当“交会点”。
我无法理解如何结合SSH选项来实现这一点,或者甚至可能与SSH一起实现。如果SSH不是一种选择,您还有什么其他技术可以建议吗?我考虑过可能使用Wireguard,但我不确定私有PC是否可以通过UDP - whish通过Wireguard访问公共服务器。
编辑:我想出了一个解决方案,在“私有PC”上需要一个SSH服务器:首先,创建一个与第一个图像完全相同的双隧道,除了指向本地主机:22在私有PC上。然后,在家庭PC上,SSH通过使用早期创建的本地端口转发(有效地允许home连接到私有PC)并使用-D标志通过这个隧道打开一个动态端口。所以..。一条SSH隧道穿过另一条“双SSH隧道”。我没试过,但我想应该管用的。
还有其他更美丽和更简单的方法来实现这一点吗?
发布于 2022-07-22 14:00:07
您已经在编辑中描述了一个解决方案:
您必须与ssh -D ...连接,从Home PC到Private PC (或者可能是Private Server,如果它们位于同一个网络上)。
一个选项可以来自Private PC:
ssh -R9000:localhost:22 PublicServer然后在家庭电脑上:
ssh -J PublicServer -p9000 localhost -D1080您在家庭PC上的tcp/1080端口现在是通过PrivatePC的S接口退出的socks代理。
https://serverfault.com/questions/1105186
复制相似问题