使用 SSH 端口转发到达 cloudflare 并获取错误代码 1003

问题描述 投票:0回答:1

背景信息

我想通过

https
调用部署在cloudflare上的api。

但是本地计算机和 api 提供者之间的通信存在问题,所以我使用 ssh 端口转发来实现 就像:

<local_server>
-
<remote_server>
-
<target_domain_on_cloudflare>

我尝试通过 SSH 连接到

<remote_server>
并成功调用
<remote_server>
上的 API,所以我认为 ssh 端口转发会起作用。

问题

这是我进行端口转发的方法:

ssh -L 12345:<target_domain>:443  username@<remote_server_ip>

这是我从本地拨打电话的方式:

curl https://localhost:12345

我收到了来自 cloudflare 的错误消息,代码为 1003

You've requested an IP address that is part of the Cloudflare network. A valid Host header must be supplied to reach the desired website.
    
ssh cloudflare portforwarding
1个回答
0
投票
此错误与 SSH 无关 - 正如文本所示,“必须提供(a)有效的主机标头”,并且您正在尝试卷曲

localhost

。在curl中有两种方法可以解决这个问题:

    使用
  1. -H
     指定主机标头,并使用 
    -k
     让curl 忽略证书不匹配:

curl -kH example.com https://localhost:12345


(会发生证书不匹配,因为任何 HTTP 标头,包括但不限于

Host:

,仅在 TLS 会话成功建立后
才相关。)

使用
    --resolve
  1. 绕过 DNS 并将您的真实主机名映射到本地主机地址:
    
    
curl --resolve example.com:443:127.0.0.1 https://example.com/

    

© www.soinside.com 2019 - 2024. All rights reserved.