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

Linux环境下载文件返回403错误,Windows环境正常,求排查方案

问题:Linux环境下Axios下载文件返回403 Forbidden,Windows环境正常

我用以下Axios代码实现文件下载功能:

import * as fs from "fs";
import axios from "axios";

export async function downloadFile(url: string, destPath: string) {
  const writer = fs.createWriteStream(destPath);

  const response = await axios({
    url: url,
    method: "GET",
    responseType: "stream",
    // 曾需配置httpsAgent,现在无论是否配置均失效
    //httpsAgent: new https.Agent({
    //  rejectUnauthorized: false,
    //}),
  });

  response.data.pipe(writer);

  return new Promise((resolve, reject) => {
    writer.on("finish", resolve);
    writer.on("error", reject);
  });
}

这段代码在Windows 10机器上运行正常,但在生产Linux机器上返回403错误,用wget、curl下载同样失败,示例如下:

root@le-machine [~]# wget https://boletoonline.caixa.gov.br/ecobranca/SIGCB/imprimir/1150229/14000000139489640
--2022-10-06 15:48:23--  https://boletoonline.caixa.gov.br/ecobranca/SIGCB/imprimir/1150229/14000000139489640
Resolving boletoonline.caixa.gov.br (boletoonline.caixa.gov.br)... 206.41.74.19
Connecting to boletoonline.caixa.gov.br (boletoonline.caixa.gov.br)|206.41.74.19|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2022-10-06 15:48:27 ERROR 403: Forbidden.

该功能之前一直正常,某天突然失效。

已尝试的操作

  • 添加模拟浏览器的请求头,无效果
  • 曾配置httpsAgent关闭证书验证,目前无论是否配置该参数均失效

我怀疑问题出在SSL、TLS或证书相关环节,但无法确定具体原因。

补充:Axios返回的错误响应头及请求头

response: {
    status: 403,
    statusText: 'Forbidden',
    headers: {
      server: 'azion webserver',
      date: 'Fri, 07 Oct 2022 04:23:41 GMT',
      'content-type': 'text/html',
      'transfer-encoding': 'chunked',
      connection: 'close'
    },

...

request: <ref *1> ClientRequest {
  _events: [Object: null prototype],
  _eventsCount: 7,
  _maxListeners: undefined,
  outputData: [],
  outputSize: 0,
  writable: true,
  destroyed: false,
  _last: true,
  chunkedEncoding: false,
  shouldKeepAlive: false,
  maxRequestsOnConnectionReached: false,
  _defaultKeepAlive: true,
  useChunkedEncodingByDefault: false,
  sendDate: false,
  _removedConnection: false,
  _removedContLen: false,
  _removedTE: false,
  _contentLength: 0,
  _hasBody: true,
  _trailer: '',
  finished: true,
  _headerSent: true,
  _closed: false,
  socket: [TLSSocket],
  _header: 'GET /ecobranca/SIGCB/imprimir/1150229/14000000138314020 HTTP/1.1\r\n' +
    'Accept: application/json, text/plain, */*\r\n' +
    'User-Agent: axios/0.27.2\r\n' +
    'Host: boletoonline.caixa.gov.br\r\n' +
    'Connection: close\r\n' +
    '\r\n',

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:41:03