【发布时间】:2015-09-20 10:58:34
【问题描述】:
我正在尝试设置 SSH 隧道,但我不熟悉此过程。这是我的设置:
机器 B 具有访问受限的 Web 服务。已根据防火墙 IP 白名单授予机器 A 访问机器 B 服务的权限。
我可以使用 ssh 连接到机器 A。之后我尝试从本地主机访问机器 B 上的网络服务,但我不能。
Web 服务端点如下所示:
service.test.organization.com:443/org/v1/sendData
到目前为止,我已经创建了一个像这样的 ssh 隧道:
ssh -L 1234:service.test.organization.com:443 myuser@machineb.com
我的理解是,使用这种方法,我可以访问 localhost:1234,然后通过 Machine B 将其转发到 service.test.organization.com:443。
我已经确认,我可以从机器 B 执行 curl 命令以向 web 服务发送消息,并且我得到了响应(这样可以正常工作)。我曾尝试在我的浏览器中使用 PostMan,并从 localhost 在终端中卷曲,但我没有成功。 (curl -X POST -d @test.xml localhost:1234/org/v1/sendData)
错误信息:curl: (52) 来自服务器的空回复
关于 SSH 的资料很多,我正在筛选,但如果有人有任何指点,我将不胜感激!
【问题讨论】:
-
您是否检查过 sshd_config 中是否启用了端口转发?默认情况下通常不会
-
我发现请求正在发送到目的地,但没有响应返回,因为请求来自本地主机,这违反了防火墙白名单规则。我怎样才能让 HTTP 请求标头说它来自机器 B?
标签: ssh ssh-tunnel