很多tuto在线给出了如何配置ssh来制作动态端口转发服务器的解释。就我而言,仅使用Plink,我遇到了一些麻烦。
上下文如下:我希望将我HOSTA
(Linux机器)的所有流量(HTTP,RDP等)重定向到HOSTB
(Windows机器)。
我的命令如下:
[HOSTB - Windows机器]
plink.exe -N -D 127.0.0.1:8888 -P 22 REMOTEIP
plink.exe -N -R 2222:127.0.0.1:8888 -P 22 REMOTEIP
[HOSTA - Linux机器]
curl --socks5 127.0.0.1:2222 https://www.google.com
所有港口都开放良好(HOSTB为8888,HOSTA为2222)。然而,似乎交通将从HOSTA出来,但不是来自HOSTB。我试过不同的程序和不同的袜子版本,仍然是同样的问题
我错过了什么吗?
谢谢 !
感谢您的回答。我很久以前就听说过这件事,但经过测试,它似乎也不起作用。你有其他想法吗?
—
Duke Nukem
此行为是预期的。通过创建第一个隧道(
—
AlexandreH于
-D 127.0.0.1:8888
),您说“进入端口8888的所有流量将通过远程主机[通过socks代理]”代理(这-D
是为了什么)。因此,通过接受HOSTA上的流量并通过HOSTB上的本地端口8888转发,您实际上是通过HOSTA重新路由它。要解决这个问题,plink.exe
需要使用ssh到localhost(而不是REMOTEIP)来创建一个“本地动态socks代理”,但这需要在Windows上运行sshd。
plink
似乎已经交换了-R
与-L
交换机从OpenSSH的意义。如果是这样,你应该使用-L
而不是-R
。我希望语义也没有什么不同。