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

Telegram机器人代码运行报connect ETIMEDOUT错误,求代理配置方案

解决Telegram Bot连接超时的问题

看起来你遇到的是典型的地区屏蔽导致的Telegram API连接失败问题,错误里的connect ETIMEDOUT 149.154.167.220:443说明你的Node.js程序无法直接访问Telegram的官方服务器。既然你已经在用Siphon 3代理,只需要让你的Telegram Bot代码通过这个代理发送请求就行,下面是具体的解决步骤:

方法一:在代码中配置代理(推荐)

telegram-node-bot支持自定义请求代理,我们可以通过添加代理模块来实现:

1. 安装代理依赖

根据你的Siphon 3代理类型选择安装对应的包:

  • 如果是Socks5代理(Siphon 3常用类型):
npm install socks-proxy-agent
  • 如果是HTTP/HTTPS代理:
npm install http-proxy-agent

2. 修改server.js代码

在初始化Telegram实例时,添加代理配置:

const Telegram = require('telegram-node-bot')
// 根据代理类型引入对应的模块
const SocksProxyAgent = require('socks-proxy-agent');

// 替换成你Siphon 3的实际代理地址,格式为 socks5://[本地IP]:[代理端口]
// 通常Siphon 3默认的本地代理地址是 socks5://127.0.0.1:1080,你可以在Siphon 3设置里确认端口
const proxyAgent = new SocksProxyAgent('socks5://127.0.0.1:1080');

const tg = new Telegram.Telegram('***********token**************',{ 
  workers:1,
  // 添加请求代理配置
  requestOptions: {
    agent: proxyAgent
  }
}); 

const pingController = require('./controllers/ping'),
      otherwiseController = require('./controllers/otherwise')

tg.router
  .when(new Telegram.TextCommand('/ping','pingCommand'), new pingController())
  .otherwise(new otherwiseController());

如果是HTTP代理,把代理模块替换成HttpProxyAgent,地址改成http://127.0.0.1:你的代理端口即可。

方法二:通过环境变量全局设置代理

如果你不想修改代码,可以在启动Node.js时通过环境变量指定代理:

# 适用于HTTP/HTTPS代理
HTTP_PROXY=http://127.0.0.1:你的代理端口 HTTPS_PROXY=http://127.0.0.1:你的代理端口 node server.js

注意:这种方式对Socks5代理支持有限,所以更推荐方法一。

关键注意点

  • 一定要确认Siphon 3的代理协议(Socks5/HTTP)和本地监听端口,可以在Siphon 3的设置界面找到这些信息,填错的话代理还是无法生效。
  • 确保Siphon 3在运行状态,并且已经成功连接到代理服务器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:50:07