当 URL 可在浏览器中访问时,SSH Curl 不起作用
Posted
技术标签:
【中文标题】当 URL 可在浏览器中访问时,SSH Curl 不起作用【英文标题】:SSH Curl doesn't work when URL is accessible in browser 【发布时间】:2019-02-25 18:29:23 【问题描述】:这篇文章与我的另一篇文章有链接(仍未解决):
Laravel - composer update: Connection refused
但我正在另一篇关于更具体问题的帖子。
在 SSH 上,在 prod 服务器(共享主机)上,我转到一个特定文件夹(其中包含我的网站):
$ cd /home/user/www/prod/
那么,如果我尝试:
$ curl https://larapack.io/packages.json
我明白了:
curl: (7) Failed to connect to larapack.io port 443: Connection refused
但如果我这样做:
$ curl https://packagist.org/packages.json
有效。
请注意,这两个文件都可以通过我的浏览器访问。
我在论坛上读过几篇关于 IPv6 或 防火墙 的文章,但是:
编辑:尝试其他事情......
这似乎不是用户代理/引荐来源问题:(尝试在 Windows 10 上使用 chrome 65)
$ curl -A "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/65.0.3315.4Safari/537.36" https://larapack.io/packages.json
curl: (7) Failed to connect to larapack.io port 443: Connection refused
似乎不是 IPV6 问题:(选项 -4
强制使用 IPv4)
$ curl -4 https://larapack.io/packages.json
curl: (7) Failed to connect to larapack.io port 443: Connection refused
似乎不是 ssl 问题:(选项 -k
跳过 ssl 问题)
$ curl -k https://larapack.io/packages.json
curl: (7) Failed to connect to larapack.io port 443: Connection refused
似乎不是防火墙问题:我有一个配置文件,其中包含有效的指令firewall=none
不适用于wget
:
$ wget https://larapack.io/packages.json
pathconf: Value too large for defined data type
pathconf: Value too large for defined data type--2018-09-23 13:47:26-- https://larapack.io/packages.json
Resolving larapack.io (larapack.io)... 23.92.17.233
Connecting to larapack.io (larapack.io)|23.92.17.233|:443...
failed: Connection refused.
nc
命令也没有(我没有 telnet 命令,但它的工作原理几乎相同,我可以读到)
$ nc larapack.io 443
larapack.io [23.92.17.233] 443 (https) : Connection refused
我尝试使用 php 进行 curl,它成功了!所以它似乎只有 SSH:
<?php
$url = "https://larapack.io/packages.json";
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url
));
$resp = curl_exec($curl);
curl_close($curl);
echo $resp;
【问题讨论】:
你能远程登录到 url: larapack.io 端口吗?我的意思是telnet larapack.io port 443
?输出是什么
我收到-ovh_ssh: telnet: command not found
。但是我在共享主机上,所以我不知道我是否可以使用这个命令
@rɑːdʒɑ,我尽我所能编辑了我的帖子
【参考方案1】:
对于在 OVH 使用 SSH 和共享主机专家的法国开发人员,支持人员说像 curl
这样的外部调用在 ssh 中被禁用,但显然我可以做到 curl https://packagist.org/packages.json
。
当他们自己尝试时,他们收到了类似action forbidden
之类的错误。
没有任何意义。
我通过 composer install
而不是 composer update
解决了我之前的问题。
这里是第一个讨论供参考: Laravel - composer update: Connection refused
【讨论】:
以上是关于当 URL 可在浏览器中访问时,SSH Curl 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Chrome 扩展程序可在不同的浏览器中打开特定的 URL [关闭]
我想问下php这个curl为啥耗时特长,我在浏览器直接访问url是有结果的