【问题标题】:Is it possible to send cURL post request from a published server to localhost? [duplicate]是否可以将 cURL 发布请求从已发布的服务器发送到本地主机? [复制]
【发布时间】:2021-08-26 21:17:35
【问题描述】:

我有一个带有php 后端的已发布网站和另一个node/express APP,其中包含一些需要从该php 服务器调用的RESTful API。

<?php
        // www.publishedsite.com/xxx.php

        $info = [/* some data */];
        $curl = curl_init('http://123.456.789.0:3000/api/order'); // Our local server's public IP. Express listening on port 3000. Of course this doesn't work.
        curl_setopt_array($curl, [
            CURLOPT_HEADER => false,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => $info,
        ]);
        $res = curl_exec($curl);

        die(var_dump(curl_error($curl)));

它死于错误:"Failed to connect to 123.456.789.0 port 3000: Connection refused"

我可以调用这个 api 的任何解决方案吗?我的 Express 本地地址类似于 192.168.0.xx:3000,但我显然不能使用它。


更新:我检查了我的路由器防火墙,它显示如下:

Firewall level: Minimum
Allow (WAN-To-LAN):All

Blocked:
IDS enabled
IDENT (port 113)

Ping From WAN: Allow

【问题讨论】:

  • 你的文件墙挡路了
  • 您可能需要在路由器上启用端口转发,但要注意在网络中打开入站端口会带来安全隐患
  • @ADyson 我通过 http/tcp 在本地 ip 和已发布站点 ip 之间设置了端口转发,但无法正常工作
  • 运行PHP服务器的机器是否有自己的防火墙?你可以从局域网内的其他设备连接到它吗?
  • 投票关闭作为Access localhost from the internet的副本

标签: php curl


【解决方案1】:

大家好,谢谢大家的帮助!我刚刚发现另一个post 解决了我的问题!只需使用一些工具,如ngroklocalhost.run。我猜有一个防火墙块,但我找不到它。

【讨论】:

    猜你喜欢
    • 2017-02-14
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    相关资源
    最近更新 更多