Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSH隧道不工作-服务器响应为空_Ssh_Ssh Tunnel - Fatal编程技术网

SSH隧道不工作-服务器响应为空

SSH隧道不工作-服务器响应为空,ssh,ssh-tunnel,Ssh,Ssh Tunnel,我正在尝试设置一个SSH隧道,但我对这个过程是新手。这是我的设置: 机器B有一个访问受限的web服务。根据防火墙IP白名单,机器A已被授予访问机器B服务的权限 我可以使用ssh连接连接到机器A。之后,我尝试从本地主机访问机器B上的Web服务,但我不能 webservice端点如下所示: service.test.organization.com:443/org/v1/sendData 到目前为止,我已经创建了一个ssh隧道,如下所示: ssh-l1234:service.test.organiz

我正在尝试设置一个SSH隧道,但我对这个过程是新手。这是我的设置:

机器B有一个访问受限的web服务。根据防火墙IP白名单,机器A已被授予访问机器B服务的权限

我可以使用ssh连接连接到机器A。之后,我尝试从本地主机访问机器B上的Web服务,但我不能

webservice端点如下所示:
service.test.organization.com:443/org/v1/sendData

到目前为止,我已经创建了一个ssh隧道,如下所示:
ssh-l1234:service.test.organization.com:443myuser@machineb.com

我的理解是,使用这种方法,我可以点击localhost:1234,它将通过机器B转发到service.test.organization.com:443

我已经确认,在机器B中,我可以执行curl命令向Web服务发送消息,并得到响应(因此可以正常工作)。我曾尝试在浏览器中使用PostMan,并从localhost中插入终端,但没有成功。(
curl-xpost-d@test.xml localhost:1234/org/v1/sendData

错误消息:curl:(52)来自服务器的空回复


有很多关于SSH的资料,我正在筛选,但如果有人有任何建议,我将非常感谢

网络问题是由请求格式引起的。我的请求对象是在目标为“localhost:1234”的情况下生成的。因此,即使它到达了正确的机器,机器也忽略了它

为了解决这个问题,我在宿主文件中添加了一条记录,如下所示:
service.test.organization.com 127.0.0.1

然后我就可以发送消息了。首先我打开了隧道,
ssh-L 443:service.test.organization.com:443myuser@machineb.com
, 然后使用这个curl命令:
curl-xpost-d@test.xml service.test.organization.com:443/org/v1/sendData


主机文件将地址解析为localhost,然后ssh隧道知道如何转发它。

尝试添加
host
HTTP头:
curl-H“host:service.test.organization.com”-X POST-d@test.xmlhttp://localhost:1234/org/v1/sendData

您是否已检查sshd\u配置中是否启用了端口转发?默认情况下,我通常不会发现请求正在发送到目标,但不会返回响应,因为请求来自Localhost,这违反了防火墙白名单规则。如何使HTTP请求头显示它来自机器B?