【发布时间】: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的副本