You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地到在线服务器Curl正常,跨在线服务器连5000端口失败求助

问题描述

本地服务器访问在线服务器接口http://xxx.xxx.xx.xxx:5000/api/table/sfuse1运行正常,但从一台在线服务器访问该接口时,出现报错:

Curl failed: Failed to connect to xxx.xxx.xxx.xx port 5000 after 1002 ms: Couldn't connect to server

相关PHP代码如下:

ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
// require_once('relay.class.php');
// $relay = new relay();

$url = "http://xxx.xxx.xx.xxx:5000/api/table/sfuse1";
// $url = "http://xxx.xxx.xx.xxx:5000/api/table/sfuse1";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$headers = array(
   "Accept: application/json",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

$resp = curl_exec($curl);
if ($resp === FALSE) {
    die("Curl failed: " . curl_error($curl));
}
// var_dump($resp);
curl_close($curl);
$result = json_decode($resp, true);
// // var_dump($result['Content']);
// foreach($result['Content'] as $v){
//    if($v['code'] == 'MX-MASTER3'){
//       var_dump($v);
//       exit;
//    }
// }
// if($result['Content'])


var_dump($result['Content']);


// foreach($result['Content'] as $row){
//     $name_en = $row['code'];
//     $name_fr =  $row['code'];
//     // $color_code =  $row['code'];
//     $relay->AddColors($name_en,$name_fr,'NULL');
// }

// echo "<script> window.location.href='../../relay.php'</script>"; 
解决建议
  • 检查网络连通性:在发起请求的在线服务器上,用telnet xxx.xxx.xx.xxx 5000或nc -zv xxx.xxx.xx.xxx 5000测试端口是否能连通。如果不通,说明网络层面存在阻断。
  • 确认目标服务器端口开放状态:
    • 检查目标服务器的防火墙(如iptables -L、ufw status),确保5000端口允许来自源服务器IP的入站请求。
    • 如果是云服务器,检查安全组配置,确认5000端口已添加允许源服务器IP访问的规则。
  • 验证目标服务监听地址:在目标服务器上执行netstat -tulpn | grep 5000,确认服务是否监听在0.0.0.0(允许所有IP访问),而不是仅127.0.0.1(仅本地访问)。
  • 增强curl调试信息:在PHP代码中添加详细调试配置,获取更精准的失败原因:
    $verbose = fopen('curl_debug.log', 'w+');
    curl_setopt($curl, CURLOPT_STDERR, $verbose);
    curl_setopt($curl, CURLOPT_VERBOSE, true);
    
  • 检查源服务器出站规则:确认发起请求的在线服务器是否有防火墙或安全组限制出站流量,禁止访问5000端口。
  • 确认目标服务状态:在目标服务器上检查服务是否正常运行(如systemctl status your_service),确保服务没有崩溃或未启动。
  • 排查IP正确性:确认代码中使用的目标IP是否准确,避免因IP填写错误导致无法连接。

内容的提问来源于stack exchange,提问作者Abbas Abbas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 21:01:11