در تنظیمات Clash Verge یک فهرست از پورتها میبینید: mixed، HTTP، SOCKS، redir، external controller. بیشتر کاربران هیچکدام را دست نمیزنند — اما همین که به تداخل پورت بخورید یا بخواهید یک ابزار خط فرمان را تنظیم کنید، دانستن نقش هرکدام به کار میآید.
پنج پورت
پورت mixed
در ۹۹ درصد مواقع همین یکی را به کار میبرید.
ویژگیاش تشخیص خودکار پروتکل است: درخواست HTTP بفرستید مثل پروکسی HTTP رفتار میکند؛ دستدادن SOCKS5 شروع کنید مثل SOCKS5. یعنی هر ابزاری هر پروتکلی بخواهد، شما همان یک شمارهٔ پورت را میدهید.
پورت HTTP و پورت SOCKS
میراث گذشته. پیش از آمدن پورت mixed باید جداگانه تنظیم میشدند. امروز عمدتاً به درد نرمافزارهای قدیمی میخورند که فقط یک پروتکل خاص را میشناسند.
اگر لازمشان ندارید خاموششان کنید (صفر بگذارید یا خالی رها کنید) — یک پورت باز کمتر.
پورت redir (و پورت TProxy)
برای پروکسی شفاف روی لینوکس و مک، همراه با قواعد iptables/nftables که ترافیک را منحرف میکنند. کاربر دسکتاپ کاری با آن ندارد؛ وقتی روتر میسازید مهم میشود.
External controller
پیشفرض 9090. این RESTful API هستهٔ Mihomo است و رابط خود Clash Verge هم از همین راه با هسته حرف میزند.
پنلهای شخص ثالث (metacubexd، yacd) هم به همین پورت وصل میشوند.
هر ابزار کدام پورت را میخواهد
فرض کنیم پورت mixed شما 7897 است:
| ابزار | نحوهٔ تنظیم |
|---|---|
| پروکسی سیستم ویندوز | 127.0.0.1 : 7897 |
| Chrome / Edge | از پروکسی سیستم پیروی میکنند، تنظیمی لازم نیست |
| Firefox | تنظیمات ← Network Settings ← دستی، برای HTTP و SOCKS هر دو 7897 |
| Git | git config --global http.proxy http://127.0.0.1:7897 |
| npm | npm config set proxy http://127.0.0.1:7897 |
| pip | pip install --proxy http://127.0.0.1:7897 package |
| curl | curl -x http://127.0.0.1:7897 https://example.com |
| SSH | ProxyCommand در ~/.ssh/config (پایینتر) |
| Docker | پروکسی دیمون را تنظیم کنید، یا فقط TUN را روشن کنید |
SSH از راه پروکسی
# ~/.ssh/config
Host github.com
HostName github.com
User git
# ویندوز (به ncat یا connect.exe نیاز دارد)
ProxyCommand ncat --proxy 127.0.0.1:7897 --proxy-type http %h %p
# macOS / Linux
# ProxyCommand nc -X connect -x 127.0.0.1:7897 %h %pمتغیرهای محیطی بیشترش را پوشش میدهند
بیشتر ابزارهای خط فرمان اینها را رعایت میکنند:
# macOS / Linux
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897
export all_proxy=socks5://127.0.0.1:7897
export no_proxy="localhost,127.0.0.1,::1,*.local,192.168.0.0/16"# Windows PowerShell
$env:HTTP_PROXY = "http://127.0.0.1:7897"
$env:HTTPS_PROXY = "http://127.0.0.1:7897"
$env:NO_PROXY = "localhost,127.0.0.1,::1,*.local"کنار آمدن با تداخل پورت
اگر هنگام راهاندازی پیام «پورت در حال استفاده است» یا address already in use گرفتید، یعنی چیز دیگری زودتر آن را گرفته.
بفهمید چه چیزی
ویندوز:
netstat -ano | findstr :7897
# PID را از ستون آخر بردارید
tasklist | findstr <PID>macOS / Linux:
lsof -i :7897
# یا
ss -tlnp | grep 7897دو راه بیرون
اگر پورت را عوض میکنید، عددی بین 1024 تا 65535 که آزاد باشد بردارید. جایگزینهای رایج: 7898، 7899، 10808، 10809.
یک تصور غلط رایج: عوض کردن پورت سرعت نمیآورد
بعضی گمان میکنند پورت دیگر باعث دور زدن محدودیت سرعت میشود. نمیشود. پورت فقط شمارهٔ یک درِ ورودی روی دستگاه خودتان است و هیچ ربطی به سرعت شبکه ندارد.
آنچه واقعاً سرعت را تعیین میکند کیفیت خط گره، پهنای باند آن، و مسیر شبکه بین شما و آن است.
نسبت «اجازهٔ دسترسی از شبکهٔ محلی» با پورتها
روشن کردن دسترسی LAN آدرس گوش دادن را از 127.0.0.1 به 0.0.0.0 تغییر میدهد:
برای بررسی:
netstat -an | findstr 78970.0.0.0:7897 یعنی شبکهٔ محلی میرسد؛ 127.0.0.1:7897 یعنی فقط همین دستگاه.
دو دستور تشخیصی یکخطی
آیا پورت پروکسی واقعاً کار میکند؟
curl -x http://127.0.0.1:7897 -I https://www.google.comبرگشتن یک وضعیت HTTP یعنی پروکسی سالم است. Connection refused یعنی پورت بسته یا اشتباه است.
آیا API کنترل بالاست؟
curl http://127.0.0.1:9090/versionJSON با شمارهٔ نسخه یعنی هسته در حال اجراست.
این دو مخصوصاً برای جدا کردن «مشکل از کلاینت است یا از گره» مفیدند: اگر API جواب میدهد ولی درخواستهای پروکسیشده شکست میخورند، مشکل از گره یا قواعد است؛ اگر API اصلاً جواب نمیدهد، هسته هرگز بالا نیامده.
خلاصه
- فقط پورت mixed را به کار ببرید؛ پورتهای جداگانهٔ HTTP و SOCKS را میشود خاموش کرد
- ابزارهای خط فرمان متغیر محیطی میگیرند، و
no_proxyرا یادتان باشد - پورت کنترل را بیرون نگذارید، و اگر مجبورید یک secret تعیین کنید
- پیش از عوض کردن پورت، تداخل را بررسی کنید — عوض کردن آخرین راه است
بیشتر بخوانید: اشتراک پروکسی روی شبکهٔ محلی و خواندن لاگها و صفحهٔ اتصالها.