附录:
我见过问题“Windows HTTP 隧道通过 2 个 Linux 主机吗?“并尝试了解一些有关答案的信息。我学会了。我将开始提出我的问题,然后用该问题的答案谈谈我的测试。
我正在尝试使用中间 Linux(唯一具有外部 IP 的 Linux)将我的 Windows 主机连接到 Linux 主机。
我的问题是什么:
我的windows host
没有我想要打开的端口(游戏和流量端口)。
我有一个linux host
我想要打开的端口。
ssh tunnel
因此,如果我可以通过我的windows host
到我的建立 ,问题就解决了linux host
。问题是,这两个都只有一个内部 IP(一个在我的公司,另一个在我的大学)。
解决办法:我可以访问我公司的linux server
外部IP(200.XXX)。
所以,我想用它作为我的和我的linux server
中间体。windows host
linux host
The complicating:
我的linux server
仅开放了 110 端口。我只能使用 110 端口通过 ssh 连接到它。
换句话说:我需要一个可以做到的例子:
windows host's
firefox,代理使用 localhost:9999
将其访问重定向linux server
到
将其访问重定向至我的linux host
。
一个(但不是唯一一个)想法是将我的 反向隧道传输linux host
到我的linux server
,然后将我的 直接隧道传输windows host
到我的linux server
,从而将linux server
我的windows host
访问重定向到我的linux host
。
但我不知道该尝试什么命令。
我试过了,但是没有成功:
Linux 主机:ssh -R 20000:localhost:22 [email protected] -p110
Windows 主机:ssh -L 9999:localhost:20000 [email protected] -p110
我怎样才能做到这一点?
我的环境,换句话说:
Windows host
(内部 IP == 10.XXX ;所有端口开放)
经历
Linux Server
(外部IP == 200.XXX;只能通过 ssh 连接到端口 110,端口 110 是唯一开放的)
将 Windows 主机流量重定向至
Linux Host
(内部 IP == 192.XXX ;端口开放,可以使用端口 22 上的 ssh 连接)
另一个附录:
linux server
如果在我的 上,我可以(在理想情况下)访问我的linux host
(这是不可能的,因为我的 上有一个内部 IP linux host
),那么这将有效
Windows 主机:ssh -L 9999:localhost:9999 -D 9999 -p 110 [email protected]
Linux服务器:ssh -D 9999 linux_host_user@linux_host_ip
答案1
改编自答案如何通过每个人都可以访问的服务器建立隧道来 ssh 到无法访问的远程机器?
有效的“解决方案”是:
,
linux-user
我做到了ssh -R 1234:localhost:22 [email protected] -p110
,
windows-user
我做到了ssh -L 1235:localhost:1234 [email protected] -p110
然后,
- ,
windows-user
我做到了ssh -D 9999 -p 1235 linux-user@localhost
然后,在 上windows-user
,我可以将 Firefox 配置为使用代理 socks localhost:9999,并且可以访问在我的 Linux 用户机器上运行的服务器。
PS:对于 Windows 上的 ssh,我使用 cygwin 安装了 openssh,以方便操作。