在 Telethon 1.45 中配置 IPv6 SOCKS5 代理
使用 Telethon 文档所述的 python-socks 后端连接 IPv6 代理字面地址,并区分该监听地址与 use_ipv6 对 Telegram 目标地址的选择。
代理可以监听 IPv6 地址,同时把连接转发到另一地址族上的 Telegram 服务器。请把代理端点和最终的 Telegram 端点分开看待。
在 Telethon 1.45 中,只要应用环境里已安装文档所述的 python-socks[asyncio] 依赖:
from telethon import TelegramClient
client = TelegramClient(
'existing-session', api_id, api_hash,
proxy={
'proxy_type': 'socks5',
'addr': '2001:db8::10',
'port': 1080,
'rdns': True,
},
)把文档示例中的 IPv6 地址和端口替换为实际的监听地址。地址字段是不带方括号的字面量,因为端口已经是单独的字段。只有把 IPv6 地址嵌入 URL authority 时才需要方括号。
需要时,为 SOCKS 账号添加 username 和 password 字段。SOCKS5 账号与 Telegram 的 API ID、API hash 和 session 相互独立。
use_ipv6=True 控制 Telethon 选择哪个 Telegram 服务器地址,它并不是把 IPv6 代理主机名变成合法监听地址的开关。
如果旧环境在 IPv6 上失败,请检查实际运行的 Python 解释器可用的后端。在另一个虚拟环境里导入成功,并不会改变当前进程。MTProto 代理连接模式使用带 secret 的另一种元组,那是另一套配置。