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

دو اصطلاح را همین اول روشن کنیم. «وایت‌لیست» همان فهرست IP مجاز است و در ادامه فقط همین واژه را به کار می‌بریم. «آدرس Main Server» هم یعنی آدرس عمومی سروری که درخواست‌های سایت از آن بیرون می‌رود، نه آدرس دامنه.

پرسشسمت پنل پیامکسمت درگاه بانکیکاری که باید بکنید
چه چیزی ثبت می‌شود؟آدرس IP خروجی سرورآدرس Main Server پذیرنده، طبق مستندات زرین‌پالآدرس عمومی خروجی را دقیق به‌دست آورید
پیش‌فرض چیست؟در مستندات GatewayAPI همه آدرس‌ها مجازنددر مستندات عمومی نیامده استسیاست را کتبی بپرسید
جهت دومی هم دارد؟بله؛ آدرس‌های callback سرویس‌دهندهمستند عمومی‌ای ندیدیمفهرست آدرس‌های بازگشت را بخواهید
بزرگ‌ترین تلهآدرس کارت شبکه با آدرس خروجی یکی نیستواسطه‌هایی مثل NAT و CDNآدرس واقعی را از بیرون ببینید
روز مهاجرتآدرس قدیم و جدید را هم‌زمان ثبت کنیدآدرس جدید را پیش از مهاجرت اعلام کنیدحذف آدرس قدیمی در آخر

💡 نکته کلیدی

وایت‌لیست یک قفل ساده است؛ اگر کلید API شما لو برود، درخواست مهاجم از آدرس دیگری پذیرفته نمی‌شود.
✅ پیش از هر ثبتی، آدرس خروجی سرور را از بیرون ببینید، نه از خروجی کارت شبکه.
✅ ثبت وقتی پایدار می‌ماند که آدرس اختصاصی باشد، مثل Vps ایران با IP مستقیم.

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

نمودار ساده از ثبت آدرس عمومی سرور در فهرست مجاز سرویس پیامک و درگاه پرداخت، وایت‌لیست ip پنل پیامک

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

در وایت‌لیست IP پنل پیامک، سرویس‌دهنده آدرس مبدأ اتصال TCP شما را با فهرستی که خودتان ثبت کرده‌اید مقایسه می‌کند. اگر یکی بود، درخواست جلو می‌رود؛ اگر نبود، همان‌جا رد می‌شود. کلید API، نام کاربری و امضای درخواست هیچ‌کدام جای این مقایسه را نمی‌گیرند.

دو جهتی که نباید با هم اشتباه شوند

این قفل دو طرف دارد و خیلی از تیکت‌ها از قاطی شدن همین دو طرف می‌آید. جهت اول خروجی شماست: سرور شما وب‌سرویس را صدا می‌زند و سرویس‌دهنده آدرس شما را می‌سنجد. راهنمای وایت‌لیست GatewayAPI همین جهت را توضیح داده است. آن‌جا پیش‌فرض این است که همه آدرس‌های IPv4 و IPv6 مجازند؛ تا دو گزینه «اجازه به همه» را برندارید، محدودیتی اعمال نمی‌شود. بعد در بخش Developer و زیرمنوی IP Whitelist یک آدرس یا بازه CIDR با برچسب اضافه می‌کنید.

جهت دوم برعکس است: سرویس‌دهنده به سمت شما می‌آید. مستندات Plivo این حالت را برای callback شرح می‌دهد و می‌گوید ترافیک آن آدرس‌ها را به سمت وب‌اپلیکیشن خود باز کنید. آن صفحه آدرس‌ها را «NAT gateway IP» سرورهای واسط خود می‌نامد، فقط برای دو ناحیه در آمریکا فهرست کرده و برای تغییرشان خبرنامه گذاشته است؛ یعنی این فهرست ثابت نیست.

درباره درگاه بانکی، تنها چیزی که از مستندات رسمی خواندیم الزام اعلام آدرس است: مستندات درگاه زرین‌پال زیر عنوان «آدرس آی‌پی IP پذیرنده» از پذیرنده می‌خواهد آدرس Main Server سایت خود را به‌دست آورد و اعلام کند. همان صفحه نه متن خطایی دارد و نه از رفتار سرویس در صورت نخواندن آدرس چیزی گفته، پس ما هم چنین رفتاری به آن نسبت نمی‌دهیم.

چرا سرویس‌دهنده‌ها آدرس را به کلید API گره می‌زنند

هدف، محدود کردن دامنه خرابی است. وقتی کلید لو می‌رود، مهاجم از زیرساخت خودش درخواست می‌فرستد و وایت‌لیست آن را رد می‌کند؛ مستندات GatewayAPI همین سناریو را دلیل فعال کردن محدودیت می‌داند. در پنل خودتان این تنظیم معمولاً زیر تنظیمات، امنیت یا وب‌سرویس است و اگر پیدا نکردید، نامش را از پشتیبانی بپرسید.

🔸 سرویس‌دهنده کدام آدرس را می‌بیند؟

آدرسی که می‌بیند، مبدأ بسته‌های TCP است، نه آنچه در هدرهای HTTP نوشته‌اید. جایی که بالانسر وسط است، آدرس اصلی در هدرها منتقل می‌شود؛ سند RFC 7239 هدر Forwarded و پارامتر for را برای همین تعریف کرده است.
همین سند هشدار می‌دهد این هدرها قابل اعتماد نیستند، چون هر گره میانی و حتی خود کلاینت می‌تواند تغییرشان دهد.

⚠️ چیزی که هیچ‌وقت نباید جابه‌جا شود

برای ثبت آدرس، فقط به عدد IP نیاز است. کلید API، رمز پنل، کلید درگاه و توکن‌ها را در تیکت یا اسکرین‌شات نفرستید.
اگر کلیدی را جایی فرستاده‌اید، باطلش کنید و کلید تازه بسازید؛ محدود کردن آدرس جای این کار را نمی‌گیرد.

پیدا کردن IP خروجی واقعی سرور و ثبت درست آن

مهم‌ترین خطای عملی در وایت‌لیست IP پنل پیامک این است که آدرس روی کارت شبکه را ثبت کنند. آن آدرس ممکن است خصوصی باشد و سرویس‌دهنده هرگز آن را نبیند. عددی که باید ثبت شود، آدرسی است که یک سرور بیرونی هنگام اتصال شما می‌بیند.

پنج فرمان و معنای خروجی‌شان

این فرمان‌ها را روی خود سرور اجرا کنید، نه روی لپ‌تاپ. دو فرمان اول آدرس‌های IPv4 و IPv6 کارت شبکه را نشان می‌دهند. فرمان سوم آدرس مبدأ محلی را می‌دهد که هسته لینوکس برای این مسیر انتخاب می‌کند، یعنی همان عددی که پشت NAT به کار سرویس‌دهنده نمی‌آید. دو فرمان آخر همان را برمی‌گردانند که طرف مقابل می‌بیند.

ip -4 addr show
ip -6 addr show
ip route get 1.1.1.1
curl -4 https://api.ipify.org
curl -6 https://api6.ipify.org

خروجی فرمان سوم یک سطر است و عددی که به کارتان می‌آید بعد از کلمه src می‌نشیند:

1.1.1.1 via 192.0.2.1 dev eth0 src 192.0.2.50 uid 0

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

جدول تشخیص آدرس

آدرسی که می‌بینیدمعنایشاقدام درست
آدرس 10.x.x.x یا 172.16 تا 172.31 یا 192.168.x.xآدرس خصوصی داخلی، طبق RFC 1918ثبت نکنید؛ آدرس عمومی خروجی را بگیرید
آدرس در بازه 100.64.0.0/10فضای آدرس اشتراکی که RFC 6598 برای CGNAT رزرو کرده استقابل ثبت نیست؛ آدرس اختصاصی بخواهید
آدرس عمومی کارت شبکه برابر با خروجی curlآدرس خروجی واقعی سرورهمین را ثبت کنید
آدرس عمومی کارت شبکه غیر از خروجی curlخروجی از آدرس دیگری NAT می‌شودآدرس خروجی را از زیرساخت بپرسید
آدرس IPv6 فعال در خروجی فرمان دوممسیر دوم خروجیثبتش کنید یا خروجی را به IPv4 ببندید

چرا بازه 100.64.0.0/10 جداگانه آمده است؟ RFC 6598 آن را به‌عنوان Shared Address Space برای شماره‌گذاری مسیر میان تجهیزات CGNAT و مشتری رزرو کرده است. همان سند می‌گوید این بسته‌ها قابل مسیریابی جهانی نیستند و باید در ورودی شبکه ارائه‌دهنده فیلتر شوند. پس آدرسی در این بازه، اختصاصی شما نیست.

نکته IPv6 و ترتیب انتخاب آدرس

اگر سرور هم IPv4 دارد و هم IPv6، ترتیب انتخاب آدرس در سیستم‌عامل معمولاً IPv6 را مقدم می‌داند؛ قاعده‌اش در RFC 6724 آمده و تصمیم‌گیرنده سیستم‌عامل است، نه کتابخانه HTTP. نتیجه این است که آدرس IPv4 را ثبت کرده‌اید و درخواست از IPv6 بیرون می‌رود و رد می‌شود. یا هر دو را ثبت کنید، یا خروجی را روی IPv4 قفل کنید. سه خط زیر قفل و باز کردن آدرس بازگشت روی فایروال را نشان می‌دهند:

curl -4 https://api.ipify.org
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
sudo ufw allow from 203.0.113.10 to any port 443 proto tcp

🔶 از سمت زیرساخت چه چیزی لازم است

برای ثبت پایدار، سرور باید IP مستقیم خودش را داشته باشد. سرور مجازی ایران وب‌داده در دیتاسنتر تهران و روی شبکه رسپینا میزبانی می‌شود. هر سرور IP مستقیم با پشتیبانی IPv4 و IPv6 دارد. تغییر IP هم از همان پنل و بدون تیکت انجام می‌شود.
اسنپ‌شات و بازگردانی هم در پنل هست و روز مهاجرت به کار می‌آید.

پیدا کردن IP خروجی واقعی سرور و ثبت درست آن

تفاوت سرویس‌دهنده‌ها و پرسش‌هایی که پیش از ثبت باید بپرسید

سیاست وایت‌لیست IP پنل پیامک و درگاه، میان سرویس‌دهنده‌ها یکسان نیست. در مستندات GatewayAPI این محدودیت اختیاری و خودسرویس است و در مستندات زرین‌پال اعلام آدرس بخشی از اطلاعات فنی پذیرنده است. برای بقیه سرویس‌ها چیزی نمی‌دانیم و باید پرسید.

در این مقاله فقط رفتاری نقل می‌شود که در مستندات عمومی خود سرویس‌دهنده آمده باشد؛ سه نمونه زیر از همان مستندات خوانده شده‌اند. درباره بانک‌ها و شرکت‌های PSP ایرانی مستند عمومی در دسترس نبود و ما هم سیاستی به آن‌ها نسبت نمی‌دهیم.

مستند رسمیچه چیزی را مستند کرده استنکته عملی برای شما
راهنمای GatewayAPIمحدود کردن ارسال به آدرس‌های تأییدشده؛ پیش‌فرض همه مجاز؛ افزودن IP یا بازه CIDRخودتان فعالش کنید و برای آدرس متغیر، بازه را ثبت کنید
مستندات Plivoآدرس‌های NAT gateway که callback از آن‌ها می‌آید، برای دو ناحیه، با خبرنامه تغییراتآن‌ها را روی فایروال باز و دوره‌ای بازبینی کنید
مستندات درگاه زرین‌پالالزام اعلام آدرس Main Server سایت پذیرندهآدرس سرور اصلی را درست به‌دست آورید و اعلام کنید

هفت پرسشی که پاسخ کتبی‌شان را نگه دارید

  1. محدودیت آدرس اختیاری است یا اجباری؟
  2. یک آدرس می‌پذیرید یا بازه CIDR هم؟ سقف تعداد چند است؟
  3. آیا IPv6 هم پشتیبانی می‌شود؟
  4. ثبت آدرس چه زمانی اعمال می‌شود و تأیید انسانی لازم دارد؟
  5. این محدودیت روی callback هم اعمال می‌شود؟ شما از چه آدرس‌هایی به سرور ما می‌زنید؟
  6. وقتی آدرس نخواند، چه کد و پیام خطایی برمی‌گردد؟
  7. محیط تست جدا دارید و آدرسش جداگانه ثبت می‌شود؟

پاسخ پرسش ششم بیشتر از بقیه به کارتان می‌آید؛ پیام خطا در هر سرویس شکل دیگری دارد و در مستندات عمومی نیامده. نمونه‌هایی از خطاهای درگاه و جای بررسی‌شان را در رفع خطاهای درگاه پرداخت در WHMCS جمع کرده‌ایم.

⚠️ سیاست سرویس‌دهنده را حدس نزنید

اگر مستندی ندارید، سیاست بانک یا PSP را حدس نزنید. بپرسید، پاسخ را با تاریخ ثبت کنید و همان را مرجع بگذارید.
جمله‌هایی مثل «همه بانک‌ها IP می‌خواهند» بدون سند، فقط مهاجرت بعدی را خراب می‌کنند.

چک‌لیست مهاجرت سرور بدون قطع پیامک و پرداخت

چک‌لیست مهاجرت سرور بدون قطع پیامک و پرداخت

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

ترتیب کارها در روز مهاجرت

  1. آدرس خروجی سرور جدید را با فرمان‌های بخش قبل به‌دست آورید و یادداشت کنید.
  2. آدرس جدید را در پنل پیامک ثبت و در پرونده پذیرنده اعلام کنید، در حالی که آدرس قدیمی سر جایش است.
  3. اگر سرویس‌دهنده زمان اعمال یا تأیید لازم دارد، بپرسید؛ اگر پاسخ تا پنجره مهاجرت نرسید، مهاجرت را عقب بیندازید.
  4. از سرور جدید یک ارسال و یک تراکنش آزمایشی بگیرید و پاسخ خام را ذخیره کنید.
  5. فهرست آدرس‌هایی که سرویس‌دهنده از آن‌ها به سمت شما می‌آید را از خودش بگیرید و روی فایروال باز کنید.
  6. ترافیک را منتقل کنید و سرور قدیمی را چند روز روشن نگه دارید.
  7. پس از یک دوره آرام، آدرس قدیمی را از هر دو جا پاک و در مستندات تیم ثبت کنید.

نشانه‌های خطا و جای درست بررسی

نشانهجای بررسیاقدام
کد یکبارمصرف ارسال نمی‌شود و پاسخ سرویس خطای دسترسی استلاگ برنامه و پاسخ خام وب‌سرویسآدرس خروجی را با آدرس ثبت‌شده مقایسه کنید
پیام خطای درگاه به آدرس سرور اشاره می‌کندآدرس Main Server اعلام‌شدهآدرس را اصلاح و دوباره اعلام کنید
درگاه باز می‌شود ولی وضعیت تراکنش به‌روز نمی‌شودمسیر callback و فایروال ورودیفهرست آدرس‌های بازگشت را بخواهید و باز کنید
ارسال از یک سرور کار می‌کند و از دیگری نهآدرس خروجی هر دو سرورآدرس سرور دوم را هم ثبت کنید
همه چیز درست است ولی گاهی رد می‌شودخروجی IPv6 و چند مسیر خروجیهر دو آدرس را ثبت کنید یا خروجی را قفل کنید

منظور از «پاسخ خام» سه چیز با هم است: کد وضعیت HTTP، بدنه پاسخ و هدرها. روی سرور با افزودن گزینه i به همان فرمان curl می‌گیریدش و در برنامه با لاگ کردن بدنه پیش از پارس کردن. همان متن تعیین می‌کند مشکل از وایت‌لیست است یا از امضای درخواست.

📌 یادآوری روز مهاجرت

آدرس قدیمی را آخر از همه حذف کنید و تا آن لحظه سرور قبلی را خاموش نکنید.
✅ یک فایل ساده با چهار ستون نگه دارید: نام سرویس، آدرس ثبت‌شده، تاریخ ثبت، تأییدکننده.

پرسش‌هایی که کاربران پیش از ثبت آدرس بیشتر می‌پرسند

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

چون آدرس خروجی سرور تازه در وایت‌لیست سرویس ثبت نشده است. پاسخ خام وب‌سرویس را ببینید؛ اگر خطای دسترسی بود، آدرس خروجی را به‌دست آورید و ثبتش کنید.

سه چیز را به ترتیب ببینید: کد وضعیت و بدنه پاسخ درگاه، تطابق آدرس Main Server اعلام‌شده با آدرس خروجی واقعی سرور، و وضعیت پذیرنده در پنل سرویس‌دهنده. اگر پاسخ به آدرس سرور اشاره نمی‌کند، ریشه جای دیگری است.

متن این خطا در هر سرویس فرق دارد و در مستندات عمومی نیامده، پس معنایش را از همان سرویس‌دهنده بپرسید. آنچه مستند است، الزام اعلام آدرس Main Server در مستندات زرین‌پال است؛ اول همین تطابق را بررسی کنید.

از خود سرور، نه از پنل میزبانی و نه از ابزار جست‌وجوی دامنه. روی سرور یک درخواست به سرویسی بیرونی بزنید؛ آدرسی که برمی‌گرداند همان است که سرویس‌دهنده می‌بیند.

آدرس کارت شبکه خصوصی است و قابل ثبت نیست؛ آدرس عمومی خروجی را از ارائه‌دهنده بگیرید. اگر در بازه 100.64.0.0/10 بود، طبق RFC 6598 اشتراکی است و قابل اتکا نیست.

اگر آدرس سرور ثابت است، یک آدرس تک دقیق‌تر است. راهنمای GatewayAPI برای آدرس‌های متغیر بازه CIDR را پیشنهاد می‌کند، به شرط شناختن بازه؛ بازه بزرگ‌تر، فایده امنیتی کمتر.

اگر سرویس به سمت شما callback می‌فرستد، بله. مستندات Plivo آدرس‌های NAT gateway خود را برای همین فهرست کرده است. اگر سرویس‌دهنده شما فهرستی منتشر نکرده، از پشتیبانی بخواهید و خودتان بازه نسازید.

اگر سرور IPv6 فعال دارد بله، چون ترتیب انتخاب آدرس در سیستم‌عامل معمولاً IPv6 را مقدم می‌داند. وگرنه خروجی برنامه را روی IPv4 قفل کنید.

نه. کنترل دسترسی روی آدرس مبدأ اتصال انجام می‌شود و RFC 7239 تصریح می‌کند هدرهایی مثل Forwarded قابل اعتماد نیستند.

جمع‌بندی؛ آدرس ثابت، مهاجرت آرام هر چه گفتیم روی یک جمله می‌چرخد: وایت‌لیست IP پنل پیامک آدرس مبدأ اتصال سرور شما را می‌سنجد. این آدرس همان چیزی نیست که روی کارت شبکه می‌بینید، پس اول آن را از بیرون ببینید و بعد ثبت کنید. جهت دوم ماجرا را هم فراموش نکنید؛ سرویس‌هایی که callback می‌فرستند فهرست آدرس‌های خودشان را منتشر می‌کنند و آن فهرست تغییر می‌کند. درباره درگاه بانکی، تنها چیزی که مستندات رسمی می‌گوید الزام اعلام آدرس Main Server است؛ بقیه رفتارها را حدس نزنید و همان هفت پرسش را بپرسید. روز مهاجرت ترتیب را رعایت کنید: آدرس جدید را اضافه کنید، آزمایش بگیرید، ترافیک را ببرید و آدرس قدیمی را آخر از همه پاک کنید. اگر آدرس سرور اختصاصی و پایدار باشد، این مراحل یک‌بار انجام می‌شود و دفعه بعد فقط یک سطر به فهرست اضافه می‌کنید.

🚀 سرور با IP مستقیم برای سرویس‌های حساس

اگر سرویس پیامک و پرداخت سایت شما به یک آدرس پایدار نیاز دارد، پلن‌های سرور مجازی ایران وب‌داده با IP مستقیم و تغییر IP از پنل را ببینید. امکان تست ساعتی رایگان سرور هم وجود دارد.

اگر سوالی داشتید، در بخش نظرات با ما در ارتباط باشید.

منابع

وب داده
وب داده

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

مقاله‌ها: 239
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *