【发布时间】:2021-05-14 14:32:56
【问题描述】:
我们正在使用 Paxton 软件,该软件在 Windows 服务器上运行。 Windows Server 由域名 (winserver.domain.com) 和 IP 地址托管和访问。
在 Windows Server 上,Paxton Software 正在运行,并且他们有一个使用 nginx 的 Web API (REST)。我们可以使用 localhost:8080 作为主机名(使用 RDP)调用 Windows Server 上的 API。到目前为止,一切顺利。
现在,我们想创建一个连接到 Paxton 的多个 Web API 的 PHP 应用程序。基本上,它应该连接到多个 Windows 服务器,并且应该可以调用 API 端点。
我们的尝试:我们尝试使用 CURL 向 Windows 服务器发出请求。我们尝试设置一个代理到 IP 地址:3389(这是 RDP 正在使用的端口),使用 PROXYUSERPWD 登录。遗憾的是,这不起作用,因为出现以下错误:Recv failure: Connection was reset。脚本:
$url = 'http://localhost:8080/webapihelp/';
$proxy = 'http://0.0.0.0:3389';
$proxyauth = 'username123:password456';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curlResponse = curl_exec($ch);
var_dump(curl_error($ch));
curl_close($ch);
是否可以直接连接到 Windows Server?如果没有,我们需要什么来实现这个目标?
【问题讨论】:
-
可能是您的网络服务器设置为仅侦听本地主机,即serverfault.com/questions/279201/…
-
你试过只使用没有代理的服务器IP吗?
-
server_name 设置为 _ (不应该只听本地主机),我也将其删除并重新启动服务器,但没有成功。当我尝试使用 curl 直接连接到服务器时,会显示相同的错误消息(接收失败:连接已重置)。连接到端口 80(而不是 3389)时,会出现超时。
-
你可能想多了。如果您可以在
localhost:8080上本地调用 API,我希望外部设备可以连接到<iIP address>:8080或<url>:8080。您可能需要在服务器上配置防火墙以允许外部连接。 -
@TangentiallyPerpendicular 你是对的!该端口被防火墙阻止。问题。解决了。谢谢!
标签: php nginx curl remote-desktop windows-server