プロキシは 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 インタープリターが使えるバックエンドを確認してください。別の仮想環境での import はこのプロセスを変えません。MTProto プロキシの接続モードは secret を含む別のタプルを使います。それは別の設定です。

関連記事