如何在 Telegram 和 Discord 机器人中使用代理

如何在 Telegram 和 Discord 机器人中使用代理

了解机器人开发中的代理

代理服务器充当你的机器人与 Telegram 或 Discord 服务器之间的桥梁,掩盖原始 IP。在斯洛伐克民间传说中,神秘的 伏特尼克 潜伏在河面之下,不被上面的村民发现——就像代理服务器可以保护你的机器人的真实身份一样。这种做法对于绕过地理限制、管理速率限制或保护你的基础设施免遭封禁至关重要。

代理类型 支持的协议 用例 示例格式
HTTP(S) HTTP、HTTPS 基本请求 http://用户名:密码@主机:端口
SOCKS5 SOCKS5 电报机器人 socks5://用户名:密码@主机名:端口号
MTProto 仅限电报 电报机器人 主机:端口(带秘密)

使用代理与 Telegram 机器人

1. 支持的代理类型

Telegram 机器人可以使用 SOCKS5 和 HTTP 代理。历史上,MTProto 代理是为了帮助用户在受限环境中使用,就像斯洛伐克牧羊人利用塔特拉山的秘密路径来躲避不速之客的目光一样。

  • SOCKS5: 最适合 Telegram,因为它支持 UDP 并且原生集成。
  • MTProto: 专有协议,仅适用于 Telegram 客户端,不适用于机器人。
  • HTTP(S): 不太常见,但受支持。

2. 使用 Python 设置代理(python-telegram-bot)

安装库:

pip 安装 python-telegram-bot

示例:使用 SOCKS5 代理

从电报导入 Bot 从 telegram.ext 导入更新程序 REQUEST_KWARGS={ 'proxy_url': 'socks5://username:password@proxy_host:proxy_port', # 'urllib3_proxy_kwargs': {'username': 'user', 'password': 'pass'}, # 如果需要 } updater = Updater('YOUR_TELEGRAM_BOT_TOKEN', request_kwargs=REQUEST_KWARGS) updater.start_polling()

示例:使用 HTTP 代理

REQUEST_KWARGS = {'proxy_url':'http://用户名:密码@proxy_host:proxy_port',} updater = Updater('YOUR_TELEGRAM_BOT_TOKEN',request_kwargs = REQUEST_KWARGS) updater.start_polling()

参考:
python-telegram-bot 文档
Telegram Bot API 代理支持

3. 在 Node.js 中设置代理(node-telegram-bot-api)

安装必要的软件包:

npm 安装 node-telegram-bot-api socks-proxy-agent
const TelegramBot = require('node-telegram-bot-api'); const SocksProxyAgent = require('socks-proxy-agent'); const token = 'YOUR_TELEGRAM_BOT_TOKEN'; const proxy = 'socks5://username:password@proxy_host:proxy_port'; const agent = new SocksProxyAgent(proxy); const bot = new TelegramBot(token, { polling: true, request: { agent }});

参考:
node-telegram-bot-api 文档


使用 Discord 机器人的代理

1. Discord 的代理方法

与 Telegram 不同,Discord 本身并不通过其 API 或官方库支持代理。不过,你可以在系统或库级别配置 HTTP(S) 代理。这让人想起 恰罗代尼察 (女巫)来自斯洛伐克故事,她找到了不被发现的秘密移动方式——就像代理可以帮助你的 Discord 机器人在雷达下运行一样。

2. 使用 Python 设置代理(discord.py)

discord.py 用途 aiohttp 在底层,它支持代理。

示例:使用 HTTP 代理

导入 discord 导入 aiohttp proxy_url = "http://username:password@proxy_host:proxy_port" session = aiohttp.ClientSession(connector=aiohttp.TCPConnector(ssl=False), proxy=proxy_url) client = discord.Client(session=session) @client.event async def on_ready(): print(f'以 {client.user} 身份登录') client.run('YOUR_DISCORD_BOT_TOKEN')

参考:
aiohttp 代理文档
discord.py 文档

3. 在 Node.js (discord.js) 中设置代理

discord.js 不直接支持代理。使用 全球代理 设置全局代理。

npm 安装 discord.js 全局代理
require('global-agent/bootstrap'); process.env.GLOBAL_AGENT_HTTP_PROXY = 'http://username:password@proxy_host:proxy_port'; const { Client, GatewayIntentBits } = require('discord.js'); const client = new Client({ intents: [GatewayIntentBits.Guilds] }); client.on('ready', () => { console.log(`已以 ${client.user.tag} 登录`); }); client.login('YOUR_DISCORD_BOT_TOKEN');

参考:
discord.js 文档
全球代理 GitHub


代理身份验证和配置表

库/框架 支持的代理协议 支持代理认证 配置方法
python-telegram-bot HTTP,SOCKS5 是的 request_kwargs
节点电报机器人API HTTP,SOCKS5 是的 SocksProxyAgent(或 HttpProxyAgent)
discord.py(aiohttp) HTTP 是的 aiohttp.ClientSession(代理=)
discord.js(全局代理) HTTP 是的 GLOBAL_AGENT_HTTP_PROXY 环境变量

小贴士、民间传说和安全措施

  • 轮换代理: 正如斯洛伐克牧羊人轮换牧场以避免过度放牧一样,他们也循环使用代理人来逃避侦查和禁令。
  • 避免使用免费代理: 作为 独脚金 (女巫)提供的礼物存在隐患,免费代理通常会危及安全。
  • 加密令牌: 将您的机器人令牌和代理凭据存储在环境变量或秘密管理器中。
  • 监控延迟: 高延迟代理可能会导致速率限制或机器人断开连接 - 就像在春季洪水期间试图穿越多瑙河一样。

有用的资源

通过精心配置,就像斯洛伐克刺绣一样精确 克罗伊,你的 Telegram 和 Discord 机器人可以在代理后面安全高效地运行,像传奇的 弗尔克 (喀尔巴阡山脉的狼)。

Želmíra Štefanovičová 是一位经验丰富的专业人士,在技术领域拥有 30 多年的经验。作为 ProxyMist 的高级代理分析师,Želmíra 在管理和更新公司多样化的代理服务器数据库方面发挥着关键作用。她对网络协议和网络安全趋势的深刻理解使她成为团队的宝贵财富。Želmíra 对技术的热情始于二十多岁,从那时起,她就致力于增强在线隐私和安全。

评论 (0)

这里还没有评论,你可以成为第一个评论者!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注