Ubuntu To Ubuntu Connection Test: Difference between revisions

From wiki karavi
Jump to navigation Jump to search
(Created page with "== Mikrotik Ubuntu L2TPv3 — Testing Hub and s23 == این صفحه دستورهای تست و عیب‌یابی تونل L2TPv3 بین '''Hub Ubuntu''' و '''Remote s23''' را پوشش می‌دهد. ترتیب اجرا از ساده به پیشرفته است. '''مرتبط:''' Mikrotik_Ubuntu_L2TPv3 ---- === Topology (این سناریو) === {| class="wikitable" |- ! نقش !! Hostname !! Public IP !! Tunnel IP !! Interface |- | Hub || m5-ubuntu-4gb-nbg1 |...")
 
No edit summary
Line 1: Line 1:
== Mikrotik Ubuntu L2TPv3 — Testing Hub and s23 ==
== Mikrotik Ubuntu L2TPv3 — Testing Hub and Remote Ubuntu ==


این صفحه دستورهای تست و عیب‌یابی تونل L2TPv3 بین '''Hub Ubuntu''' و '''Remote s23''' را پوشش می‌دهد. ترتیب اجرا از ساده به پیشرفته است.
این صفحه دستورهای تست و عیب‌یابی تونل L2TPv3 بین '''Hub Ubuntu''' و '''Remote Ubuntu''' را پوشش می‌دهد. ترتیب اجرا از ساده به پیشرفته است.


'''مرتبط:''' [[Mikrotik_Ubuntu_L2TPv3]]
'''مرتبط:''' [[Mikrotik_Ubuntu_L2TPv3]]
Line 11: Line 11:
{| class="wikitable"
{| class="wikitable"
|-
|-
! نقش !! Hostname !! Public IP !! Tunnel IP !! Interface
! نقش !! Public IP (placeholder) !! Tunnel IP (placeholder) !! Interface
|-
|-
| Hub || m5-ubuntu-4gb-nbg1 || 157.90.26.4 || 10.0.1.1/30 || l2tpeth1
| Hub || <code>HUB_PUBLIC_IP</code> || <code>HUB_TUNNEL_IP</code>/30 || l2tpeth1
|-
|-
| Remote || s23 || 78.157.42.206 || 10.0.1.2/30 || l2tpeth0
| Remote || <code>REMOTE_PUBLIC_IP</code> || <code>REMOTE_TUNNEL_IP</code>/30 || l2tpeth0
|}
|}
'''مثال subnet تونل (قابل تغییر در طرح IP شما):'''
* <code>HUB_TUNNEL_IP</code> = 10.0.1.1
* <code>REMOTE_TUNNEL_IP</code> = 10.0.1.2
* Subnet NAT روی Hub: <code>10.0.1.0/30</code>


----
----
Line 25: Line 31:


* سرویس <code>ql2tpd</code> روی هر دو سرور در وضعیت <code>active (running)</code> باشد
* سرویس <code>ql2tpd</code> روی هر دو سرور در وضعیت <code>active (running)</code> باشد
* اینترفیس تونل IP داشته باشد: Hub روی <code>l2tpeth1</code>، s23 روی <code>l2tpeth0</code>
* اینترفیس تونل IP داشته باشد: Hub روی <code>l2tpeth1</code>، Remote روی <code>l2tpeth0</code>
* روی Hub قوانین NAT و FORWARD برای subnet <code>10.0.1.0/30</code> اعمال شده باشد
* روی Hub قوانین NAT و FORWARD برای subnet تونل Remote اعمال شده باشد
* روی s23 policy routing با <code>from 10.0.1.2 lookup 100</code> فعال باشد
* روی Remote policy routing با <code>from REMOTE_TUNNEL_IP lookup 100</code> فعال باشد
* برای تست IP در ایران از <code>https://api.ipnote.ir/myip</code> استفاده کنید (نه ifconfig.me)
* برای تست IP عمومی از سرویس قابل دسترس در شبکه خودتان استفاده کنید (مثال: <code>https://api.ipnote.ir/myip</code>)


----
----
Line 36: Line 42:
بررسی می‌کند بسته ICMP بین دو انتهای تونل بدون خروج به اینترنت رد و بدل می‌شود.
بررسی می‌کند بسته ICMP بین دو انتهای تونل بدون خروج به اینترنت رد و بدل می‌شود.


==== From s23 to Hub ====
==== From Remote to Hub ====


  ping -c 4 10.0.1.1
  ping -c 4 HUB_TUNNEL_IP


'''توضیح:''' اگر پاسخ با تأخیر پایدار حدود ۷۰ms و بدون packet loss دریافت شد، تونل L2TPv3 سالم است.
'''توضیح:''' اگر پاسخ با تأخیر پایدار و بدون packet loss دریافت شد، تونل L2TPv3 سالم است.


==== From Hub to s23 ====
==== From Hub to Remote ====


  ping -c 4 10.0.1.2
  ping -c 4 REMOTE_TUNNEL_IP


'''توضیح:''' پینگ دوطرفه تأیید می‌کند هر دو سرور اینترفیس تونل را بالا نگه داشته‌اند.
'''توضیح:''' پینگ دوطرفه تأیید می‌کند هر دو سرور اینترفیس تونل را بالا نگه داشته‌اند.
Line 61: Line 67:
=== Step 2 — IP egress test (تمایز اینترنت عادی و تونل) ===
=== Step 2 — IP egress test (تمایز اینترنت عادی و تونل) ===


مهم‌ترین تست روزمره برای selective routing روی سرور s23.
مهم‌ترین تست روزمره برای selective routing روی سرور Remote.


==== Normal internet (بدون تونل) — run on s23 ====
==== Normal internet (بدون تونل) — run on Remote ====


  curl -4 -s "https://api.ipnote.ir/myip"
  curl -4 -s "https://api.ipnote.ir/myip"


'''توضیح:''' باید IP عمومی خود سرور s23 یعنی <code>78.157.42.206</code> نمایش داده شود.
'''توضیح:''' باید IP عمومی خود سرور Remote یعنی <code>REMOTE_PUBLIC_IP</code> نمایش داده شود.


==== Forced via tunnel — run on s23 ====
==== Forced via tunnel — run on Remote ====


  curl -4 --interface l2tpeth0 -s "https://api.ipnote.ir/myip"
  curl -4 --interface l2tpeth0 -s "https://api.ipnote.ir/myip"


'''توضیح:''' باید IP عمومی Hub یعنی <code>157.90.26.4</code> برگردد؛ یعنی NAT روی Hub درست است.
'''توضیح:''' باید IP عمومی Hub یعنی <code>HUB_PUBLIC_IP</code> برگردد؛ یعنی NAT روی Hub درست است.


{| class="wikitable"
{| class="wikitable"
Line 79: Line 85:
! خروجی curl !! معنی
! خروجی curl !! معنی
|-
|-
| 78.157.42.206 || ترافیک از WAN مستقیم خارج شده
| REMOTE_PUBLIC_IP || ترافیک از WAN مستقیم خارج شده
|-
|-
| 157.90.26.4 || ترافیک از تونل و NAT Hub خارج شده
| HUB_PUBLIC_IP || ترافیک از تونل و NAT Hub خارج شده
|-
|-
| timeout / خطا || policy routing s23 یا NAT Hub ناقص است
| timeout / خطا || policy routing Remote یا NAT Hub ناقص است
|}
|}


Line 92: Line 98:
  ping -4 -I l2tpeth0 -c 4 8.8.8.8
  ping -4 -I l2tpeth0 -c 4 8.8.8.8


'''اجرا روی:''' s23
'''اجرا روی:''' Remote


'''توضیح:''' بسته با source <code>10.0.1.2</code> ارسال می‌شود و مسیر forward و NAT روی Hub را تأیید می‌کند.
'''توضیح:''' بسته با source <code>REMOTE_TUNNEL_IP</code> ارسال می‌شود و مسیر forward و NAT روی Hub را تأیید می‌کند.


{| class="wikitable"
{| class="wikitable"
Line 102: Line 108:
| پاسخ از 8.8.8.8 || forward و NAT روی Hub فعال است
| پاسخ از 8.8.8.8 || forward و NAT روی Hub فعال است
|-
|-
| 100% loss ولی ping 10.0.1.1 OK || تقریباً قطعی مشکل NAT یا FORWARD روی Hub است
| 100% loss ولی ping HUB_TUNNEL_IP OK || تقریباً قطعی مشکل NAT یا FORWARD روی Hub است
|}
|}


Line 117: Line 123:
==== Server on Hub ====
==== Server on Hub ====


  iperf3 -s -B 10.0.1.1
  iperf3 -s -B HUB_TUNNEL_IP


'''توضیح:''' iperf3 فقط روی آدرس تونل Hub گوش می‌دهد تا ترافیک تست از WAN عبور نکند.
'''توضیح:''' iperf3 فقط روی آدرس تونل Hub گوش می‌دهد تا ترافیک تست از WAN عبور نکند.


==== Upload s23 → Hub ====
==== Upload Remote → Hub ====


  iperf3 -c 10.0.1.1 -B 10.0.1.2 -t 10
  iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10


'''اجرا روی:''' s23
'''اجرا روی:''' Remote


'''توضیح:''' سرعت ارسال از Remote به Hub را در ده ثانیه اندازه می‌گیرد؛ Retr باید نزدیک صفر باشد.
'''توضیح:''' سرعت ارسال از Remote به Hub را در ده ثانیه اندازه می‌گیرد؛ Retr باید نزدیک صفر باشد.


==== Download Hub → s23 (reverse) ====
==== Download Hub → Remote (reverse) ====


  iperf3 -c 10.0.1.1 -B 10.0.1.2 -t 10 -R
  iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10 -R


'''اجرا روی:''' s23
'''اجرا روی:''' Remote


'''توضیح:''' جهت دانلود را تست می‌کند؛ بدون BBR معمولاً کندتر از آپلود است.
'''توضیح:''' جهت دانلود را تست می‌کند؛ بدون BBR معمولاً کندتر از آپلود است.
Line 139: Line 145:
==== Parallel streams ====
==== Parallel streams ====


  iperf3 -c 10.0.1.1 -B 10.0.1.2 -t 10 -P 4
  iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10 -P 4


'''توضیح:''' چهار اتصال همزمان throughput کل تونل را بهتر نشان می‌دهد.
'''توضیح:''' چهار اتصال همزمان throughput کل تونل را بهتر نشان می‌دهد.
Line 156: Line 162:
=== Step 5 — Live packet capture (tcpdump روی تونل) ===
=== Step 5 — Live packet capture (tcpdump روی تونل) ===


  tcpdump -ni l2tpeth0 host 10.0.1.2
  tcpdump -ni l2tpeth0 host REMOTE_TUNNEL_IP


'''اجرا روی:''' s23
'''اجرا روی:''' Remote


'''توضیح:''' هنگام اتصال کلاینت x-ui یا <code>curl --interface l2tpeth0</code> باید پکت با source <code>10.0.1.2</code> دیده شود.
'''توضیح:''' هنگام اتصال کلاینت x-ui یا <code>curl --interface l2tpeth0</code> باید پکت با source <code>REMOTE_TUNNEL_IP</code> دیده شود.


{| class="wikitable"
{| class="wikitable"
Line 166: Line 172:
! مشاهده !! معنی
! مشاهده !! معنی
|-
|-
| پکت 10.0.1.2 → اینترنت || outbound از تونل فعال است
| پکت REMOTE_TUNNEL_IP → اینترنت || outbound از تونل فعال است
|-
|-
| هیچ پکتی || routing rule یا inboundTag در x-ui اشتباه است
| هیچ پکتی || routing rule یا inboundTag در x-ui اشتباه است
Line 176: Line 182:


وقتی اینترفیس <code>l2tpeth</code> ساخته می‌شود ولی DOWN است یا ping صفر است.
وقتی اینترفیس <code>l2tpeth</code> ساخته می‌شود ولی DOWN است یا ping صفر است.
ابتدا نام اینترفیس WAN را پیدا کنید:
ip route get 1.1.1.1
مقدار بعد از <code>dev</code> را در دستورات زیر جایگزین کنید.


==== On Hub ====
==== On Hub ====


  tcpdump -ni eth0 host 78.157.42.206 and proto 115
  tcpdump -ni WAN_INTERFACE_HUB host REMOTE_PUBLIC_IP and proto 115


'''توضیح:''' پکت‌های L2TPv3 با encapsulation IP بین Hub و s23 را روی WAN Hub نمایش می‌دهد.
'''توضیح:''' پکت‌های L2TPv3 با encapsulation IP بین Hub و Remote را روی WAN Hub نمایش می‌دهد.


==== On s23 ====
==== On Remote ====


  tcpdump -ni ens160 host 157.90.26.4 and proto 115
  tcpdump -ni WAN_INTERFACE_REMOTE host HUB_PUBLIC_IP and proto 115


'''توضیح:''' اینترفیس WAN روی s23 معمولاً <code>ens160</code> است نه <code>eth0</code>.
'''توضیح:''' نام اینترفیس WAN روی Remote ممکن است <code>eth0</code>، <code>ens160</code> یا غیره باشد.


سپس روی هر دو سرور:
سپس روی هر دو سرور:
Line 197: Line 209:
----
----


=== Step 7 — Quick checklist policy routing (s23) ===
=== Step 7 — Quick checklist policy routing (Remote) ===


  ip rule show | grep 10.0.1.2
  ip rule show | grep REMOTE_TUNNEL_IP
  ip route show table 100
  ip route show table 100
  ip -br addr show l2tpeth0
  ip -br addr show l2tpeth0


'''توضیح:''' بدون rule <code>from 10.0.1.2 lookup 100</code> و default در table 100، x-ui outbound کار نمی‌کند.
'''توضیح:''' بدون rule <code>from REMOTE_TUNNEL_IP lookup 100</code> و default در table 100، x-ui outbound کار نمی‌کند.


----
----
Line 213: Line 225:
  iptables -L FORWARD -n -v | grep l2tpeth1
  iptables -L FORWARD -n -v | grep l2tpeth1


'''توضیح:''' <code>ip_forward=1</code> و MASQUERADE برای <code>10.0.1.0/30</code> الزامی است.
'''توضیح:''' <code>ip_forward=1</code> و MASQUERADE برای subnet تونل Remote الزامی است.


----
----
Line 223: Line 235:
! Test !! Server !! Expected on success
! Test !! Server !! Expected on success
|-
|-
| ping 10.0.1.1 || s23 || 0% packet loss
| ping HUB_TUNNEL_IP || Remote || 0% packet loss
|-
| ping REMOTE_TUNNEL_IP || Hub || 0% packet loss
|-
| curl (no interface) || Remote || REMOTE_PUBLIC_IP
|-
| curl --interface l2tpeth0 || Remote || HUB_PUBLIC_IP
|-
| ping -I l2tpeth0 8.8.8.8 || Remote || 0% packet loss
|-
| iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP || Remote || high throughput, low Retr
|-
| Client IP (x-ui via l2tp-out) || Client || HUB_PUBLIC_IP
|}
 
----
 
=== Placeholder reference (جدول جایگزین‌ها) ===
 
{| class="wikitable"
|-
! Placeholder !! توضیح !! مثال (فقط در استقرار خودتان)
|-
|-
| ping 10.0.1.2 || Hub || 0% packet loss
| <code>HUB_PUBLIC_IP</code> || IP عمومی سرور Hub ||
|-
|-
| curl (no interface) || s23 || 78.157.42.206
| <code>REMOTE_PUBLIC_IP</code> || IP عمومی سرور Remote ||
|-
|-
| curl --interface l2tpeth0 || s23 || 157.90.26.4
| <code>HUB_TUNNEL_IP</code> || IP تونل روی Hub || 10.0.1.1
|-
|-
| ping -I l2tpeth0 8.8.8.8 || s23 || 0% packet loss
| <code>REMOTE_TUNNEL_IP</code> || IP تونل روی Remote || 10.0.1.2
|-
|-
| iperf3 -c 10.0.1.1 -B 10.0.1.2 || s23 || high throughput, low Retr
| <code>WAN_INTERFACE_HUB</code> || اینترفیس WAN Hub || eth0
|-
|-
| Client IP (x-ui via l2tp-out) || Client || 157.90.26.4
| <code>WAN_INTERFACE_REMOTE</code> || اینترفیس WAN Remote || ens160
|}
|}



Revision as of 15:47, 6 July 2026

Mikrotik Ubuntu L2TPv3 — Testing Hub and Remote Ubuntu

این صفحه دستورهای تست و عیب‌یابی تونل L2TPv3 بین Hub Ubuntu و Remote Ubuntu را پوشش می‌دهد. ترتیب اجرا از ساده به پیشرفته است.

مرتبط: Mikrotik_Ubuntu_L2TPv3


Topology (این سناریو)

نقش Public IP (placeholder) Tunnel IP (placeholder) Interface
Hub HUB_PUBLIC_IP HUB_TUNNEL_IP/30 l2tpeth1
Remote REMOTE_PUBLIC_IP REMOTE_TUNNEL_IP/30 l2tpeth0

مثال subnet تونل (قابل تغییر در طرح IP شما):

  • HUB_TUNNEL_IP = 10.0.1.1
  • REMOTE_TUNNEL_IP = 10.0.1.2
  • Subnet NAT روی Hub: 10.0.1.0/30

Prerequisites (پیش‌نیاز قبل از تست)

قبل از اجرای تست‌ها موارد زیر باید برقرار باشند:

  • سرویس ql2tpd روی هر دو سرور در وضعیت active (running) باشد
  • اینترفیس تونل IP داشته باشد: Hub روی l2tpeth1، Remote روی l2tpeth0
  • روی Hub قوانین NAT و FORWARD برای subnet تونل Remote اعمال شده باشد
  • روی Remote policy routing با from REMOTE_TUNNEL_IP lookup 100 فعال باشد
  • برای تست IP عمومی از سرویس قابل دسترس در شبکه خودتان استفاده کنید (مثال: https://api.ipnote.ir/myip)

Step 1 — Ping tunnel endpoints (تست لایه تونل)

بررسی می‌کند بسته ICMP بین دو انتهای تونل بدون خروج به اینترنت رد و بدل می‌شود.

From Remote to Hub

ping -c 4 HUB_TUNNEL_IP

توضیح: اگر پاسخ با تأخیر پایدار و بدون packet loss دریافت شد، تونل L2TPv3 سالم است.

From Hub to Remote

ping -c 4 REMOTE_TUNNEL_IP

توضیح: پینگ دوطرفه تأیید می‌کند هر دو سرور اینترفیس تونل را بالا نگه داشته‌اند.

نتیجه تفسیر
0% packet loss تونل برقرار است — به مرحله بعد بروید
100% packet loss ql2tpd، فایروال proto 115 یا IP اینترفیس را بررسی کنید

Step 2 — IP egress test (تمایز اینترنت عادی و تونل)

مهم‌ترین تست روزمره برای selective routing روی سرور Remote.

Normal internet (بدون تونل) — run on Remote

curl -4 -s "https://api.ipnote.ir/myip"

توضیح: باید IP عمومی خود سرور Remote یعنی REMOTE_PUBLIC_IP نمایش داده شود.

Forced via tunnel — run on Remote

curl -4 --interface l2tpeth0 -s "https://api.ipnote.ir/myip"

توضیح: باید IP عمومی Hub یعنی HUB_PUBLIC_IP برگردد؛ یعنی NAT روی Hub درست است.

خروجی curl معنی
REMOTE_PUBLIC_IP ترافیک از WAN مستقیم خارج شده
HUB_PUBLIC_IP ترافیک از تونل و NAT Hub خارج شده
timeout / خطا policy routing Remote یا NAT Hub ناقص است

Step 3 — Ping internet via tunnel (ICMP از source تونل)

ping -4 -I l2tpeth0 -c 4 8.8.8.8

اجرا روی: Remote

توضیح: بسته با source REMOTE_TUNNEL_IP ارسال می‌شود و مسیر forward و NAT روی Hub را تأیید می‌کند.

نتیجه تفسیر
پاسخ از 8.8.8.8 forward و NAT روی Hub فعال است
100% loss ولی ping HUB_TUNNEL_IP OK تقریباً قطعی مشکل NAT یا FORWARD روی Hub است

Step 4 — Throughput test with iperf3 (تست سرعت بین دو سرور)

اندازه‌گیری throughput واقعی تونل؛ برای ارزیابی BBR و تنظیمات TCP مفید است.

Install (یک‌بار روی هر دو سرور)

apt install -y iperf3

Server on Hub

iperf3 -s -B HUB_TUNNEL_IP

توضیح: iperf3 فقط روی آدرس تونل Hub گوش می‌دهد تا ترافیک تست از WAN عبور نکند.

Upload Remote → Hub

iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10

اجرا روی: Remote

توضیح: سرعت ارسال از Remote به Hub را در ده ثانیه اندازه می‌گیرد؛ Retr باید نزدیک صفر باشد.

Download Hub → Remote (reverse)

iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10 -R

اجرا روی: Remote

توضیح: جهت دانلود را تست می‌کند؛ بدون BBR معمولاً کندتر از آپلود است.

Parallel streams

iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP -t 10 -P 4

توضیح: چهار اتصال همزمان throughput کل تونل را بهتر نشان می‌دهد.

شاخص مقدار قابل قبول (تقریبی)
Throughput صدها Mbps بسته به لینک
Retr نزدیک 0 — بالا یعنی ازدحام یا MTU

Step 5 — Live packet capture (tcpdump روی تونل)

tcpdump -ni l2tpeth0 host REMOTE_TUNNEL_IP

اجرا روی: Remote

توضیح: هنگام اتصال کلاینت x-ui یا curl --interface l2tpeth0 باید پکت با source REMOTE_TUNNEL_IP دیده شود.

مشاهده معنی
پکت REMOTE_TUNNEL_IP → اینترنت outbound از تونل فعال است
هیچ پکتی routing rule یا inboundTag در x-ui اشتباه است

Step 6 — L2TP protocol 115 capture (عیب‌یابی برقراری تونل)

وقتی اینترفیس l2tpeth ساخته می‌شود ولی DOWN است یا ping صفر است.

ابتدا نام اینترفیس WAN را پیدا کنید:

ip route get 1.1.1.1

مقدار بعد از dev را در دستورات زیر جایگزین کنید.

On Hub

tcpdump -ni WAN_INTERFACE_HUB host REMOTE_PUBLIC_IP and proto 115

توضیح: پکت‌های L2TPv3 با encapsulation IP بین Hub و Remote را روی WAN Hub نمایش می‌دهد.

On Remote

tcpdump -ni WAN_INTERFACE_REMOTE host HUB_PUBLIC_IP and proto 115

توضیح: نام اینترفیس WAN روی Remote ممکن است eth0، ens160 یا غیره باشد.

سپس روی هر دو سرور:

systemctl restart ql2tpd

توضیح: اگر هیچ پکت 115 دیده نشد، فایروال datacenter پروتکل 115 را بلاک می‌کند.


Step 7 — Quick checklist policy routing (Remote)

ip rule show | grep REMOTE_TUNNEL_IP
ip route show table 100
ip -br addr show l2tpeth0

توضیح: بدون rule from REMOTE_TUNNEL_IP lookup 100 و default در table 100، x-ui outbound کار نمی‌کند.


Step 8 — Quick checklist NAT on Hub

sysctl net.ipv4.ip_forward
iptables -t nat -L POSTROUTING -n -v | grep 10.0.1
iptables -L FORWARD -n -v | grep l2tpeth1

توضیح: ip_forward=1 و MASQUERADE برای subnet تونل Remote الزامی است.


Expected results summary (جدول خلاصه)

Test Server Expected on success
ping HUB_TUNNEL_IP Remote 0% packet loss
ping REMOTE_TUNNEL_IP Hub 0% packet loss
curl (no interface) Remote REMOTE_PUBLIC_IP
curl --interface l2tpeth0 Remote HUB_PUBLIC_IP
ping -I l2tpeth0 8.8.8.8 Remote 0% packet loss
iperf3 -c HUB_TUNNEL_IP -B REMOTE_TUNNEL_IP Remote high throughput, low Retr
Client IP (x-ui via l2tp-out) Client HUB_PUBLIC_IP

Placeholder reference (جدول جایگزین‌ها)

Placeholder توضیح مثال (فقط در استقرار خودتان)
HUB_PUBLIC_IP IP عمومی سرور Hub
REMOTE_PUBLIC_IP IP عمومی سرور Remote
HUB_TUNNEL_IP IP تونل روی Hub 10.0.1.1
REMOTE_TUNNEL_IP IP تونل روی Remote 10.0.1.2
WAN_INTERFACE_HUB اینترفیس WAN Hub eth0
WAN_INTERFACE_REMOTE اینترفیس WAN Remote ens160

Recommended test order (ترتیب پیشنهادی)

  1. Ping tunnel endpoints (Step 1)
  2. curl IP test (Step 2)
  3. ping 8.8.8.8 via tunnel (Step 3)
  4. iperf3 throughput (Step 4) — optional for quality
  5. tcpdump — if x-ui issue (Step 5)