بیشتر مشکلات VPN به چند علت محدود برمیگردد و اگر آنها را به ترتیب درست بررسی کنید، یک شب کامل صرفهجویی میکنید. فرمانها را روی سرور اجرا کنید، مگر اینکه در گامی چیز دیگری گفته شده باشد. مثالها WireGuard را روی پورت پیشفرض 51820/udp نشان میدهند؛ برای OpenVPN یا Xray نام سرویس و پورت خودتان را جایگزین کنید.
آخرین بررسی ۲۰۲۶-۱۱-۱۳.
۱. سرور روی تعرفهای با IPv4 اختصاصی است؟
کلاینت VPN از بیرون به سرور شما وصل میشود. تعرفهٔ NAT از بیرون فقط یک پورت را راه میدهد، یعنی پورت شخصی SSH شما، پس هیچ VPNای روی آن کار نمیکند. اگر داشبورد نشانی را همراه پورتی مثل 20xxx نشان میدهد، سرور شما NAT است. رفتن به IPv4 اختصاصی دادهها را نگه میدارد و به نصب دوباره نیازی ندارد؛ تغییر نشانی IP را ببینید.
۲. سرویس در حال اجراست؟
systemctl status wg-quick@wg0
journalctl -u wg-quick@wg0 -n 30 --no-pager
برای OpenVPN نام سرویس معمولاً openvpn-server@server است و برای Xray، xray. سرویسی که راه نیفتاده تقریباً همیشه علتش را در آخرین خطوط لاگ مینویسد: غلط تایپی در پیکربندی، نبودن فایل کلید، یا پورتی که از قبل در اختیار برنامهٔ دیگری است.
۳. روی پورتی که انتظار دارید گوش میدهد؟
ss -ulpn | grep 51820 # UDP: WireGuard, OpenVPN over UDP
ss -tlpn | grep 443 # TCP: Xray / VLESS, OpenVPN over TCP
اگر خروجی خالی باشد، سرویس روی آن پورت گوش نمیدهد، هر چه در پیکربندی نوشته باشد. پورت را با پورتی که در کلاینت وارد کردهاید مقایسه کنید.
۴. فایروال اجازه میدهد؟
ufw status verbose
اگر فایروال فعال است و پورت شما در فهرست نیست، آن را باز کنید:
ufw allow 51820/udp
به پروتکل دقت کنید: WireGuard به UDP نیاز دارد و قانون 51820/tcp هیچ کمکی به آن نمیکند. پیش از فعال کردن یا بارگذاری دوبارهٔ فایروال، مطمئن شوید قانون SSH سر جایش است، وگرنه دسترسی خودتان را میبندید. اگر باز هم این اتفاق افتاد، کنسول مرورگر در داشبورد شما را دوباره به سرور میرساند.
۵. کلاینت واقعاً به سرور میرسد؟
در WireGuard، handshake این را نشان میدهد:
wg show
latest handshake: N seconds ago برای یک peer یعنی کلاینت به سرور رسیده و کلیدها درستاند. اگر هیچ خط handshakeای نیست، کلاینت هرگز نرسیده است. آن وقت به این ترتیب بررسی کنید: IP و پورت سرور (Endpoint) در پیکربندی کلاینت، فایروال در گام ۴، و اینکه کلید عمومی کلاینت در بخش [Peer] سرور هست یا نه (و برعکس).
۶. وصل میشود، اما هیچ چیز باز نمیشود؟
تونل کار میکند، اما سرور ترافیک را به اینترنت نمیفرستد. forwarding را بررسی کنید:
sysctl net.ipv4.ip_forward
باید 1 چاپ شود. اگر نه، آن را برای همیشه فعال کنید:
echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/99-vpn.conf
sysctl --system
بعد قانون NAT را بررسی کنید. در پیکربندی WireGuard این همان خط PostUp با MASQUERADE است و نام رابط شبکه در آن باید نام واقعی رابط سرور باشد:
ip -br addr
اگر در آن خط -o eth0 نوشته شده اما رابط شما نام دیگری دارد، پیکربندی را اصلاح کنید و سرویس را دوباره راه بیندازید.
۷. از یک شبکهٔ دیگر امتحان کنید
به جای وایفای خانه با اینترنت همراه وصل شوید، یا از کسی در کشوری دیگر بخواهید امتحان کند. اگر VPN آنجا کار میکند اما از شبکهٔ همیشگی شما نه، سرور سالم است و چیزی در این میان اتصال را مسدود میکند.
- برای اینکه ببینید سرورتان اصلاً از یک کشور مشخص در دسترس است یا نه: چطور بررسی کنیم IP سرور VPS از روسیه و ایران در دسترس است.
- جایی که WireGuard و OpenVPN شناسایی و مسدود میشوند، VLESS + Reality شبیه HTTPS معمولی است و مسدود کردنش بسیار سختتر است.
۸. هنوز مشکل دارید؟
یک تیکت باز کنید و آنچه را بررسی کردهاید بنویسید: خروجی گامهای ۲ تا ۵ و نام کلاینت VPNتان. با این اطلاعات معمولاً در همان پاسخ اول میگوییم مشکل کجاست.
نظرات
هنوز نظری نیست. اولین نفر باشید.