我正在尝试为 Monero 节点设置钱包 RPC,但是当我使用 cURL 连接到该端口时,出现此错误:
curl: (1) Received HTTP/0.9 when not allowed
然而,检查后curl --version
我发现:
curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
我认为只有在没有 nghttp2 的情况下编译 cURL 时才会出现该错误。这是一个 AWS 环境,运行 20.04。
答案1
curl --http0.9
会帮到你。升级后我收到了同样的错误消息curl
。
答案2
非常高兴能看到您的完整curl
请求。HTTP/0.9 是 1991 年的,早于基本 HTTP/1.0,所以我认为问题出在服务器的响应上。
请尝试:
您的
curl
命令带有--verbose
参数,因此它会输出所有信息。尝试使用相同的 URL
curl
,wget
看看保存的文件内容是什么。从新的空文件夹内执行此操作。telnet 到该端口并输入:
GET / HTTP/1.0<ENTER> <ENTER>
<ENTER>
只需按下Enter键并查看输出即可。也许您正在尝试打开错误的端口。有时问题出在证书上。请尝试使用以下参数:
--ssl --sslv2 --sslv3
您还可以强制执行:
--http1.1 --http2
另外,您的组织或 ISP 可能正在使用透明代理来捕获请求或使用 SSL 证书,从而导致问题。
答案3
就我而言,我从 curl 得到了同样的错误,结果发现它是一个 ftp 服务器......
因此对于那些来这里寻找“curl:(1)在不允许的情况下收到 HTTP/0.9“在浏览器上尝试一下:
ftp://IP:PORT
或者在终端上这样操作:
ftp IP PORT
答案4
您正在尝试连接到 ESMTP 邮件服务器 - 通过尝试 telnet 到相同的地址和端口来查看 ESMTP 问候语来验证这一点。