ProxynetProxynet

تنظیم پروکسی تلگرام: راه‌اندازی SOCKS5 و MTProto

تاریخ انتشار:

19 دقیقه مطالعه

Enver Kaya
نویسنده: Enver Kaya
زمینه سیاه با سطرهای محو IP؛ در قابی گوشه‌به‌علاوه: چپ Proxynet، راست ⁨Telegram⁩، ضربدری میانشان و برچسب INTEGRATION
فهرست مطالب

یک پروکسی در دست دارید: نشانی سرور، پورت، نام کاربری و گذرواژه. می‌خواهید آن را در تلگرام وارد کنید، اما این گزینه جایی نیست که بیشتر افراد اول سراغش می‌روند. نه در بخش حریم خصوصی است و نه در منوی شبکه تلفن؛ داخل داده‌ها و ذخیره‌سازی قرار دارد. وقتی ردیف را پیدا کردید، دو گزینه پیش رویتان است: SOCKS5 و MTProto. اگر ندانید کدام را باید انتخاب کنید، خیلی ساده اطلاعات را در فرم اشتباه می‌نویسید و نتیجه‌اش نوشته «در حال اتصال...» در بالای صفحه است که از بین نمی‌رود.

در این نوشته توضیح می‌دهیم تلگرام پروکسی را چگونه به کار می‌برد، SOCKS5 و MTProto چه تفاوتی دارند، راه‌اندازی در اندروید، iPhone و دسکتاپ چه گام‌هایی دارد، وقتی برنامه روی «در حال اتصال...» می‌ماند به چه چیزهایی نگاه کنید و پروکسی چطور خاموش می‌شود. نام منوها را همان‌طور نوشته‌ایم که در ترجمه رسمی فارسی تلگرام آمده است. بخش‌های راه‌اندازی به کد نیاز ندارند؛ تنها نمونه کد، برای توسعه‌دهندگان ربات، در بخش «سطح پیشرفته» در پایان نوشته است.

تنظیم پروکسی تلگرام چه کاری انجام می‌دهد؟

پروکسی سروری میانی است که بین شما و تلگرام قرار می‌گیرد. برنامه پیام‌های شما را به جای آنکه مستقیم به تلگرام بفرستد، اول به پروکسی می‌فرستد و پروکسی آن‌ها را به تلگرام می‌رساند. سرورهای تلگرام نشانی IP پروکسی را می‌بینند، نه نشانی شما را. پایه این مفهوم در نوشته سرور پروکسی چیست و چگونه کار می‌کند؟ آمده است.

تلگرام در بسیاری از کشورها، از جمله Türkiye، بدون محدودیت در دسترس است و بیشتر کاربران به پروکسی نیازی ندارند. پروکسی در این موارد به کار می‌آید:

  • شبکه سازمان، هتل یا دانشگاه. بعضی شبکه‌ها فقط از راه یک پروکسی مشخص به اینترنت راه می‌دهند. تا وقتی آن پروکسی را به تلگرام معرفی نکنید، برنامه روی «در حال اتصال...» می‌ماند.
  • حریم خصوصی IP. اگر نمی‌خواهید نشانی IP اتصال شما نشانی خانه یا محل کارتان باشد، می‌توانید ترافیک را از پروکسی‌ای بگذرانید که در اختیار خودتان است.
  • توسعه ربات و یکپارچه‌سازی. شاید بخواهید رباتی که روی سرورتان اجرا می‌شود همیشه از یک نشانی IP ثابت به تلگرام وصل شود. منطق آن را در نوشته IP ثابت برای دسترسی به API توضیح داده‌ایم.

این تنظیم فقط روی تلگرام اثر دارد؛ مرورگر و برنامه‌های دیگر شما همچنان اتصال خودشان را به کار می‌برند. پروکسی در تنظیمات سیستم تلفن موضوع جداگانه‌ای است که در نوشته‌های تنظیمات پروکسی در اندروید و تنظیم پروکسی روی iPhone و iPad آمده است. تفاوت آن با VPN که کل ترافیک دستگاه را رمزگذاری می‌کند در نوشته تفاوت پروکسی و VPN است.

تلگرام از چه نوع پروکسی‌هایی پشتیبانی می‌کند؟

بر اساس مستندات رسمی پروکسی تلگرام برنامه‌ها از دو نوع پشتیبانی می‌کنند: SOCKS5 و MTProto. بعضی برنامه‌ها نوع دیگری هم دارند؛ برای نمونه در فهرست Telegram Desktop گزینه HTTP هم هست. در برنامه‌های تلفن فقط SOCKS5 و MTProto وجود دارد.

SOCKS5 پروتکل پروکسی همه‌منظوره است و می‌تواند ترافیک هر نوع برنامه‌ای را جابه‌جا کند، از مرورگر تا بازی. خود پروتکل در استاندارد RFC 1928 و احراز هویت با نام کاربری و گذرواژه در استاندارد RFC 1929 تعریف شده است. تلگرام این احراز هویت را مستقیم پشتیبانی می‌کند: در فرم دو فیلد جدا برای نام کاربری و گذرواژه هست. بعضی برنامه‌ها SOCKS5 را فقط بدون گذرواژه می‌پذیرند و همین جزئیات کار شما را ساده می‌کند. خود پروتکل را در نوشته پروکسی SOCKS5: چطور کار می‌کند و چه فرقی دارد و تفاوتش با پروکسی HTTP را در نوشته تفاوت پروکسی SOCKS و HTTP توضیح داده‌ایم.

پروکسی MTProto (با نام رسمی MTProxy) فقط برای تلگرام نوشته شده است. MTProto نام پروتکلی است که برنامه‌های تلگرام برای گفت‌وگو با سرورها به کار می‌برند. پروکسی MTProto این ترافیک را می‌گیرد، آن را به شکلی می‌پوشاند که شناختنش دشوارتر شود و به تلگرام می‌رساند. در هیچ برنامه دیگری قابل استفاده نیست. به جای نام کاربری و گذرواژه یک کلید به نام secret می‌خواهد؛ در رابط فارسی نام این فیلد رمز است. نرم‌افزار سرور آن متن‌باز است و در مخزن GitHub تلگرام قرار دارد.

تفاوت SOCKS5 و MTProto چیست؟

ویژگیSOCKS5MTProto
برای چه طراحی شدهترافیک هر نوع برنامهفقط ترافیک تلگرام
اطلاعات لازمسرور، پورت؛ نام کاربری و گذرواژه اختیاریسرور، پورت و کلید «رمز»
احراز هویتنام کاربری و گذرواژهفقط کلید محرمانه
در برنامه‌های دیگر کار می‌کندبلهخیر
کانال اسپانسرنداردگرداننده پروکسی می‌تواند کانالی را در فهرست گفت‌وگوهای شما سنجاق کند
پیوند اتصالt.me/socks?server=…t.me/proxy?server=…
از کجا تهیه می‌شودارائه‌دهندگان پروکسی، شبکه‌های سازمانیبیشتر سرورهایی که داوطلبان و کانال‌ها می‌گردانند
در Proxynet موجود استبلهخیر

درباره ردیف آخر روشن بگوییم: Proxynet پروکسی MTProto نمی‌فروشد. پروکسی SOCKS5 که ارائه می‌کنیم همان‌طور که هست در فرم SOCKS5 تلگرام وارد می‌شود و با همان اطلاعات در برنامه‌های دیگر شما هم کار می‌کند.

یک نکته در هر دو نوع مشترک است. ترافیک تلگرام رمزگذاری‌شده از برنامه بیرون می‌آید و رمزگذاری‌شده به پروکسی می‌رسد. در مستندات تلگرام آمده است که گرداننده پروکسی MTProto نمی‌تواند پیام‌های شما را بخواند یا حساب شما را بشناسد، اما چون به سرور او وصل می‌شوید می‌تواند نشانی IP شما را ثبت کند. همین رمزگذاری برای ترافیکی که از SOCKS5 می‌گذرد هم برقرار است. پس انتخاب پروکسی بیشتر از آنکه پرسش محرمانگی محتوا باشد، این پرسش است: «نشانی IP خودم را به چه کسی نشان می‌دهم؟»

پیش از راه‌اندازی به چه اطلاعاتی نیاز دارید؟

برای SOCKS5 چهار قلم اطلاعات لازم است: نشانی سرور، پورت، نام کاربری و گذرواژه. این‌ها در پنل کاربری جایی که پروکسی را از آن گرفته‌اید نوشته شده است. ارائه‌دهندگان معمولاً این چهار قلم را در یک خط و به شکل server:port:username:password می‌دهند؛ در تلگرام هر بخش را در فیلد خودش می‌نویسید. اینکه هرکدام چیست را در نوشته نشانی سرور پروکسی چیست و کجا پیدا می‌شود؟ توضیح داده‌ایم.

به دو نکته دقت کنید:

  1. پورت SOCKS5 را به کار ببرید. در بعضی پلن‌ها برای HTTP و SOCKS5 پورت جدا داده می‌شود. برنامه‌های تلفن تلگرام پروکسی HTTP نمی‌پذیرند و اگر پورت HTTP را بنویسید اتصال برقرار نمی‌شود.
  2. روش نام کاربری و گذرواژه را انتخاب کنید. اگر پروکسی شما فقط با لیست سفید IP کار می‌کند، همین که تلفن به داده همراه برود نشانی IP شما عوض می‌شود و پروکسی دیگر شما را نمی‌شناسد. این دو روش را در نوشته احراز هویت پروکسی: نام کاربری و رمز یا لیست سفید IP مقایسه کرده‌ایم.

در نمونه‌های زیر سرور pr.proxynet.io، پورت 8000، نام کاربری user و گذرواژه pass است. شما مقدارهای پنل کاربری خودتان را می‌نویسید. در رابط فارسی تلگرام نام فیلد پورت «درگاه» است.

تنظیم پروکسی تلگرام در اندروید چگونه انجام می‌شود؟

  1. تلگرام را باز کنید و به تنظیمات بروید.
  2. روی داده‌ها و ذخیره‌سازی بزنید.
  3. در این صفحه ردیف تنظیمات پروکسی را باز کنید.
  4. روی افزودن پروکسی بزنید.
  5. نوع را پروکسی SOCKS5 انتخاب کنید. گزینه دیگر پروکسی MTProto است؛ اگر روی صفحه فیلد «رمز» را می‌بینید، در نوع اشتباه هستید.
  6. نشانی را در فیلد سرور، پورت را در فیلد درگاه و اطلاعات ورود را در فیلدهای نام کاربری و گذرواژه بنویسید.
  7. ذخیره کنید. وقتی به فهرست برگشتید، ببینید کلید استفاده از پروکسی روشن باشد.

زیر پروکسی‌ای که افزوده‌اید اول «در حال بررسی...» و سپس «در دسترس» یا «متصل» را می‌بینید. اگر «غیر قابل دسترس» نوشته شده، تلگرام به آن سرور نمی‌رسد؛ به فهرست عیب‌یابی در پایین بروید.

در همین صفحه کلید جداگانه‌ای به نام استفاده از پروکسی برای تماس‌ها هست. آن را در بخش تماس‌ها توضیح می‌دهیم.

تنظیم پروکسی تلگرام در iPhone چگونه انجام می‌شود؟

  1. تلگرام را باز کنید و به زبانه تنظیمات بروید.
  2. وارد داده‌ها و ذخیره‌سازی شوید.
  3. در این صفحه روی ردیف پروکسی بزنید. اگر پروکسی تعریف نشده باشد، کنار ردیف «غیرفعال» نوشته شده است.
  4. روی افزودن پروکسی بزنید.
  5. زیر عنوان نوع گزینه SOCKS5 را انتخاب کنید.
  6. زیر عنوان اتصال فیلدهای سرور و درگاه را پر کنید.
  7. زیر عنوان مدارک (اختیاری) فیلدهای نام کاربری و گذرواژه را بنویسید.
  8. ذخیره کنید و ببینید کلید استفاده از پروکسی روشن باشد.

زیر پروکسی ذخیره‌شده نوشته «متصل» و زمان پینگ بر حسب میلی‌ثانیه را می‌بینید. اگر «غیر قابل دسترس» نوشته شده، در اطلاعات یا در شبکه مشکلی هست. اگر اطلاعات پروکسی را به شکل پیوند t.me/socks کپی کرده‌اید، گزینه چسباندن از حافظه کپی در همین صفحه فیلدها را به جای شما پر می‌کند.

در برنامه تلگرام برای مک هم این تنظیم در تنظیمات > داده‌ها و ذخیره‌سازی و در بخش پروکسی است؛ فیلدهای نوع، سرور، درگاه، نام کاربری و گذرواژه همان نام‌های iPhone را دارند.

تنظیم پروکسی در Telegram Desktop چگونه انجام می‌شود؟

در Telegram Desktop که روی ویندوز، لینوکس و macOS اجرا می‌شود مسیر کمی متفاوت است:

  1. از منوی برنامه تنظیمات را باز کنید.
  2. وارد پیشرفته شوید.
  3. روی ردیف نوع اتصال کلیک کنید. پنجره «تنظیمات پروکسی» باز می‌شود.
  4. روی افزودن پروکسی کلیک کنید.
  5. از میان نوع‌ها SOCKS5 را علامت بزنید. در فهرست HTTP و MTPROTO هم هست.
  6. نشانی سرور را در فیلد نام میزبان و پورت را در فیلد درگاه بنویسید.
  7. زیر عنوان مدارک (اختیاری) فیلدهای نام کاربری و گذرواژه را پر کنید.
  8. روی ذخیره کلیک کنید. ببینید در پنجره گزینه استفاده از پروکسی سفارشی انتخاب شده باشد.

کنار پروکسی‌ای که کار می‌کند نوشته «آنلاین» یا «در دسترس» و مقدار پینگ دیده می‌شود؛ پروکسی‌ای که به آن دسترسی نیست با «قابل دسترس نیست» مشخص می‌شود. در همین پنجره سه گزینه هست: غیرفعال کردن پروکسی، استفاده از تنظیمات پروکسی سیستم و استفاده از پروکسی سفارشی. گزینه میانی ویژه Telegram Desktop است و باعث می‌شود برنامه پروکسی سیستمی تعریف‌شده در ویندوز یا macOS را به کار ببرد. اگر در رایانه محل کار پروکسی از قبل در تنظیمات سیستم تعریف شده باشد، شاید همین گزینه کافی باشد.

راه‌اندازی با یک لمس از راه پیوند پروکسی

تلگرام اطلاعات پروکسی را به شکل پیوند هم می‌پذیرد. قالب آن برای SOCKS5 چنین است:

https://t.me/socks?server=pr.proxynet.io&port=8000&user=user&pass=pass

وقتی در دستگاهی که تلگرام روی آن نصب است روی این پیوند بزنید، برنامه اطلاعات را نشان می‌دهد و می‌پرسد آیا می‌خواهید پروکسی افزوده شود. پیوندهای MTProto به شکل t.me/proxy?server=…&port=…&secret=… هستند.

پیوند راه سریع رساندن اطلاعات به دستگاه دوم شماست: آن را از راه «پیام‌های ذخیره شده» برای خودتان بفرستید و در دستگاه دیگر رویش بزنید. اما گذرواژه شما آشکارا درون پیوند نوشته شده است. آن را در گروه‌ها و کانال‌ها به اشتراک نگذارید؛ هر کس پیوند را ببیند می‌تواند از پروکسی شما استفاده کند.

آیا تماس‌های صوتی و تصویری از پروکسی می‌گذرند؟

به‌صورت پیش‌فرض خیر. تنظیم پروکسی پیام‌ها، رسانه و فایل‌ها را پوشش می‌دهد. برای تماس‌ها کلید جداگانه‌ای هست که در هر سه برنامه خاموش است: در اندروید استفاده از پروکسی برای تماس‌ها، در iPhone استفاده برای تماس‌ها و در Desktop استفاده از پروکسی برای تماس‌ها. در اندروید اگر پروکسی فعال از نوع MTProto باشد، این کلید در فهرست دیده نمی‌شود. تلگرام زیر این کلید هشدار خودش را هم نوشته است: سرورهای پروکسی ممکن است کیفیت تماس‌های شما را کاهش دهند.

دلیلش شیوه کار تماس‌هاست. بر اساس مستندات تماس تلگرام بسته‌های صدا با UDP فرستاده می‌شوند؛ اگر ممکن باشد مستقیم به طرف مقابل و اگر نباشد به سرورهای رله تلگرام. UDP روش انتقال سریعی است که بسته را بدون انتظار برای اطمینان از رسیدنش می‌فرستد. هر پروکسی UDP را جابه‌جا نمی‌کند و در آن‌هایی که جابه‌جا می‌کنند هم هر ایستگاه میانی تأخیر می‌افزاید. جزئیات در بخش «پروکسی و UDP» از نوشته تفاوت TCP و UDP آمده است. اگر تماس‌های شما بی‌مشکل است این کلید را خاموش بگذارید؛ اگر پس از روشن کردن آن صدا قطع‌ووصل شد، دوباره خاموشش کنید.

آیا فهرست‌های رایگان MTProto و کانال‌های پروکسی امن هستند؟

وقتی «پروکسی تلگرام» را جست‌وجو می‌کنید، فهرست‌های رایگان MTProto و کانال‌هایی که هر روز سرور تازه به اشتراک می‌گذارند پیش رویتان می‌آید. در این نوشته چنین فهرستی نمی‌دهیم، چون معلوم نیست این سرورها را چه کسی می‌گرداند.

گرداننده نمی‌تواند پیام‌های شما را بخواند، اما می‌تواند نشانی IP شما را ثبت کند. وقتی به سروری ناشناس وصل می‌شوید این موارد را پذیرفته‌اید:

  • نشانی IP و ساعت‌های اتصال خود را به یک غریبه نشان می‌دهید. اینکه چه زمانی و چقدر از تلگرام استفاده می‌کنید در گزارش‌های آن سرور می‌ماند.
  • یک کانال اسپانسر به فهرست گفت‌وگوهای شما افزوده می‌شود. گردانندگان پروکسی MTProto برای جبران هزینه‌هایشان می‌توانند کانالی را بالای فهرست شما سنجاق کنند. این کانال با خاموش کردن پروکسی ناپدید می‌شود.
  • کیفیت اتصال نامعلوم است. افراد زیادی از همان سرور استفاده می‌کنند؛ سرور یک روز کار می‌کند و روز بعد ممکن است بسته شود. برنامه هم روی «در حال اتصال...» می‌ماند.

همین موضوع برای فهرست‌های رایگان SOCKS5 هم درست است. این بحث را در نوشته آیا پروکسی‌های رایگان امن هستند؟ با جزئیات آورده‌ایم. اگر می‌خواهید تلگرام را با پروکسی به کار ببرید، سرویسی را انتخاب کنید که می‌دانید چه کسی آن را می‌گرداند و قرارداد و پشتیبانی دارد.

کدام نوع پروکسی برای تلگرام مناسب است؟

نشست تلگرام طولانی است: برنامه تمام روز باز می‌ماند و پیوسته با سرور در ارتباط است. به همین دلیل نشانی‌ای که مدت طولانی ثابت بماند مناسب‌تر از پروکسی‌ای است که نشانی‌اش زود به زود عوض می‌شود.

  • یک حساب، استفاده شخصی یا ربات: نشانی پروکسی ISP ماه‌ها ثابت می‌ماند و به نام یک ارائه‌دهنده واقعی اینترنت ثبت شده است. اگر قرار است نشانی خروجی ربات را در دیوار آتش ثبت کنید، این راحت‌ترین گزینه است.
  • کارهایی که ترافیک باید از نشانی اپراتور تلفن همراه خارج شود: پروکسی موبایل از راه اتصال‌های واقعی اپراتورهای تلفن همراه خروجی می‌دهد. برای تیم‌هایی مناسب است که می‌خواهند برنامه‌ای را در شرایط شبکه همراه بیازمایند.

تفاوت نشانی ثابت و متغیر را در نوشته تفاوت IP ثابت و IP پویا می‌یابید. پروکسی شرایط استفاده تلگرام را تغییر نمی‌دهد. ساختن انبوه حساب، فرستادن پیام ناخواسته یا افزودن خودکار عضو به گروه‌ها از هر نشانی‌ای که انجام شود به بسته شدن حساب می‌انجامد و موضوع این نوشته نیست.

اگر تلگرام روی «در حال اتصال...» بماند چه باید کرد؟

اگر با پروکسی روشن، نوشته «در حال اتصال...» یا «در حال اتصال به پروکسی» در بالای صفحه ناپدید می‌شود، همه‌چیز درست است. اگر چند دقیقه می‌ماند، به این ترتیب پیش بروید:

  1. پروکسی را خاموش کنید و امتحان کنید. اگر با پروکسی خاموش هم وصل نمی‌شود، مشکل از پروکسی نیست و به اتصال اینترنت شما یا خود تلگرام برمی‌گردد. نوشته «در انتظار شبکه...» یعنی تلفن اصلاً به اینترنت راه ندارد.
  2. نوع را بررسی کنید. رایج‌ترین خطا نوشتن اطلاعات SOCKS5 در فرم MTProto است. اگر در فرم فیلد «رمز» هست، در MTProto هستید؛ پروکسی را حذف کنید و دوباره با نوع SOCKS5 بیفزایید.
  3. پورت را بررسی کنید. اگر در پنل کاربری برای HTTP و SOCKS5 پورت جدا دارید، مطمئن شوید پورت SOCKS5 را نوشته‌اید.
  4. نام کاربری و گذرواژه را دوباره بنویسید. افزوده شدن فاصله به آغاز یا پایان متن هنگام کپی، بزرگ شدن حرف اول با صفحه‌کلید تلفن و تصحیح خودکار از دلایل پرتکرار هستند.
  5. به روش احراز هویت نگاه کنید. اگر پروکسی شما با لیست سفید IP کار می‌کند و تلفن از Wi-Fi به داده همراه رفته، نشانی IP شما عوض شده است. در پنل کاربری به روش نام کاربری و گذرواژه بروید.
  6. مدت پلن را بررسی کنید. پلنی که مدتش تمام شده یا حجمش به پایان رسیده اتصال را رد می‌کند. وضعیت را در پنل کاربری می‌بینید.
  7. پروکسی را بیرون از تلگرام آزمایش کنید. با همان اطلاعات در رایانه آزمایشی انجام دهید؛ روش را گام به گام در نوشته آیا پروکسی کار می‌کند؟ چگونه پروکسی را آزمایش کنیم آورده‌ایم. اگر آنجا هم کار نکرد، مشکل از تلگرام نیست.
  8. ببینید شبکه پورت را می‌بندد یا نه. شبکه‌های سازمانی و هتل‌ها خروج به بعضی پورت‌ها را می‌بندند. اگر همان پروکسی با داده همراه کار می‌کند و با Wi-Fi کار نمی‌کند، دلیل همین است؛ با مدیر شبکه صحبت کنید.

نوشته وضعیت در فهرست پروکسی‌ها سرنخ می‌دهد: اگر مقدار پینگ دیده می‌شود یعنی به سرور دسترسی هست؛ اگر «غیر قابل دسترس» یا «قابل دسترس نیست» نوشته شده، تلگرام اصلاً به آن نشانی نمی‌رسد. دلایل دیگر خطای کلی «سرور پروکسی پاسخ نمی‌دهد» را در نوشته سرور پروکسی پاسخ نمی‌دهد گرد آورده‌ایم.

پروکسی در تلگرام چگونه خاموش می‌شود؟

  • اندروید: در صفحه تنظیمات > داده‌ها و ذخیره‌سازی > تنظیمات پروکسی کلید استفاده از پروکسی را خاموش کنید. برای پاک کردن کامل، وارد جزئیات پروکسی شوید و آن را حذف کنید.
  • iPhone: در صفحه تنظیمات > داده‌ها و ذخیره‌سازی > پروکسی کلید استفاده از پروکسی را خاموش کنید.
  • Telegram Desktop: در پنجره تنظیمات > پیشرفته > نوع اتصال گزینه غیرفعال کردن پروکسی را انتخاب کنید.

اگر در فهرست گفت‌وگوها کانالی با برچسب «اسپانسر پروکسی» می‌بینید، یعنی یک پروکسی MTProto روشن است. با خاموش کردن پروکسی آن کانال هم از فهرست می‌رود.

سطح پیشرفته: استفاده از پروکسی در ربات Python

این بخش برای توسعه‌دهندگان ربات است؛ خواننده‌ای که فقط از برنامه استفاده می‌کند می‌تواند از آن بگذرد. ربات‌ها برنامه تلگرام را به کار نمی‌برند و با Bot API در نشانی api.telegram.org کار می‌کنند. به همین دلیل تنظیم پروکسی در برنامه روی ربات شما اثری ندارد و پروکسی را در کد تعریف می‌کنید. چون Bot API روی HTTPS کار می‌کند، هم پروکسی HTTP و هم SOCKS5 قابل استفاده است.

در کتابخانه python-telegram-bot پروکسی با دو متد روی ApplicationBuilder داده می‌شود: proxy() فراخوانی‌های عادی API را پوشش می‌دهد و get_updates_proxy() اتصال طولانی‌ای را که منتظر به‌روزرسانی‌ها می‌ماند. پشتیبانی SOCKS5 با یک بسته افزوده می‌آید: pip install "python-telegram-bot[socks]".

python
import asyncio
import os
import sys

from telegram.error import InvalidToken, NetworkError
from telegram.ext import ApplicationBuilder

TOKEN = os.environ["BOT_TOKEN"]
PROXY = "socks5://user:pass@pr.proxynet.io:8000"


async def main() -> None:
    app = (
        ApplicationBuilder()
        .token(TOKEN)
        .proxy(PROXY)              # getMe, sendMessage and other calls
        .get_updates_proxy(PROXY)  # the getUpdates (long polling) connection
        .build()
    )
    try:
        async with app:
            me = await app.bot.get_me()
            print("Connection OK:", me.username)
    except InvalidToken:
        print("The proxy works, but the bot token is invalid.")
    except NetworkError as exc:
        print("Could not reach the proxy or Telegram:", exc)
        sys.exit(1)


asyncio.run(main())

این کد را از راه یک پروکسی آزمایشی محلی امتحان کردیم. با گذرواژه نادرست، کتابخانه خطای NetworkError را با پیام httpx.ProxyError: Invalid username/password پرتاب می‌کند و با پورت بسته httpx.ConnectError برمی‌گرداند. هر دو به لایه پروکسی مربوط هستند؛ آن‌ها را جدا از خطای توکن بگیرید. اگر می‌خواهید پروکسی HTTP به کار ببرید، کافی است نشانی را به شکل http://user:pass@pr.proxynet.io:8000 بنویسید و بسته افزوده لازم نیست. توکن را درون کد نگذارید؛ مانند نمونه آن را از متغیر محیطی بخوانید.

خطاهای رایج

  • گشتن به دنبال تنظیم در منوی Wi-Fi تلفن. پروکسی منوی Wi-Fi برای ترافیک وب است و SOCKS5 نمی‌پذیرد. برنامه‌های تلفن تلگرام پروکسی‌ای را به کار می‌برند که درون خود برنامه تعریف می‌شود.
  • نوشتن اطلاعات SOCKS5 در فرم MTProto. فیلد «رمز» جای نام کاربری یا گذرواژه نیست.
  • به اشتراک گذاشتن پیوند پروکسی گذرواژه‌دار. در پیوند t.me/socks گذرواژه آشکارا نوشته شده است؛ هر کس پیوند را بگیرد از پروکسی شما استفاده می‌کند.
  • افزودن پشت سر هم سرورهای رایگانی که کار نمی‌کنند. ردیف‌هایی را که به کار نمی‌برید حذف کنید؛ هرچه فهرست بلندتر شود، تشخیص اینکه کدام روشن است دشوارتر می‌شود.
  • روشن ماندن پروکسی از روی فراموشی. وقتی مدت پلن تمام می‌شود، تلگرام روی «در حال اتصال...» می‌ماند و مشکل به حساب تلگرام گذاشته می‌شود.

راهنمای انتخاب

وضعیت شماپیشنهاد
پروکسی با نام کاربری و گذرواژه داریدنوع SOCKS5 را انتخاب کنید و چهار قلم اطلاعات را در فیلد خودشان بنویسید
فقط سرور، پورت و یک کلید بلند داریداین پروکسی MTProto است؛ فرمی را که فیلد «رمز» دارد به کار ببرید و بپرسید چه کسی آن را می‌گرداند
در رایانه محل کار پروکسی سیستمی تعریف شده استدر Telegram Desktop گزینه «استفاده از تنظیمات پروکسی سیستم» را امتحان کنید
تلفن میان Wi-Fi و داده همراه جابه‌جا می‌شودبه جای لیست سفید IP روش نام کاربری و گذرواژه را به کار ببرید
ربات شما باید همیشه از یک نشانی خارج شودپروکسی با نشانی ثابت بگیرید و با proxy() و get_updates_proxy() تعریفش کنید
در تماس‌ها صدا قطع‌ووصل می‌شودکلید «استفاده از پروکسی برای تماس‌ها» را خاموش کنید
نوشته «در حال اتصال...» نمی‌روداول با پروکسی خاموش امتحان کنید، سپس به ترتیب نوع، پورت و گذرواژه را بررسی کنید

پرسش‌های متداول

سرور پروکسی تلگرام چیست؟

سروری میانی است که بین شما و تلگرام قرار می‌گیرد. تلگرام از دو نوع پشتیبانی می‌کند: SOCKS5 که در هر برنامه‌ای کار می‌کند و MTProto که فقط برای تلگرام نوشته شده است. در برنامه نام این تنظیم «پروکسی» است و داخل داده‌ها و ذخیره‌سازی قرار دارد.

MTProto چیست؟

MTProto پروتکلی است که برنامه‌های تلگرام برای گفت‌وگو با سرورهای تلگرام به کار می‌برند. پروکسی MTProto نرم‌افزار سرور ویژه‌ای است که برای جابه‌جایی همین ترافیک نوشته شده است. به جای نام کاربری و گذرواژه با یک کلید کار می‌کند که در فیلد «رمز» نوشته می‌شود و در برنامه‌های دیگر قابل استفاده نیست.

آیا ارائه‌دهنده پروکسی می‌تواند پیام‌های من را بخواند؟

بر اساس مستندات رسمی تلگرام خیر: ترافیک رمزگذاری‌شده به پروکسی می‌رسد و گرداننده پروکسی نمی‌تواند پیام‌ها را بخواند یا حساب شما را بشناسد. چیزی که می‌بیند نشانی IP شما، ساعت‌های اتصال و حجم داده جابه‌جاشده است.

آیا تلگرام تنظیم پروکسی سیستم تلفن را به کار می‌برد؟

در برنامه‌های تلفن چنین گزینه‌ای نیست؛ پروکسی از تنظیمات خود برنامه تعریف می‌شود. در Telegram Desktop گزینه «استفاده از تنظیمات پروکسی سیستم» هست و برنامه می‌تواند پروکسی تعریف‌شده در سیستم‌عامل را به کار ببرد.

آیا استفاده از پروکسی باعث بسته شدن حساب تلگرام من می‌شود؟

تنظیم پروکسی قابلیتی است که خود برنامه ارائه می‌کند؛ حساب شما فقط به این دلیل که پروکسی به کار می‌برید بسته نمی‌شود. چیزی که حساب را به خطر می‌اندازد رفتار است: پیام انبوه ناخواسته، افزودن خودکار عضو و محتوایی که گزارش می‌شود. این کارها از هر نشانی IP که انجام شود همان نتیجه را دارد.

آیا می‌توانم یک پروکسی را در چند دستگاه به کار ببرم؟

از سوی تلگرام مانعی نیست؛ می‌توانید همان اطلاعات SOCKS5 را در تلفن و رایانه خود وارد کنید. محدودیت را پلن پروکسی شما تعیین می‌کند: بعضی پلن‌ها شمار اتصال‌های همزمان را محدود می‌کنند.

خلاصه

تنظیم پروکسی تلگرام درون خود برنامه است: در تلفن زیر تنظیمات > داده‌ها و ذخیره‌سازی و در Telegram Desktop در ردیف تنظیمات > پیشرفته > نوع اتصال. اگر پروکسی با نام کاربری و گذرواژه دارید، نوع آن SOCKS5 است؛ MTProto نوع جداگانه‌ای ویژه تلگرام است که با کلید «رمز» کار می‌کند و باید از فهرست‌های رایگان با منبع نامعلوم دور ماند. تماس‌ها به‌صورت پیش‌فرض از پروکسی نمی‌گذرند. اگر روی «در حال اتصال...» ماندید، اول با پروکسی خاموش امتحان کنید و سپس نوع، پورت، گذرواژه و مدت پلن را بررسی کنید. برای نشانی‌های ثابتی که می‌توانید مستقیم در فرم SOCKS5 تلگرام وارد کنید، نگاهی به سرویس‌های پروکسی ما بیندازید.

پرسش از ChatGPTپرسش از Claude