اسنیفر
بلوک sniffer به بایتهای ابتدایی هر اتصال نگاه میکند تا وقتی متن DNS در دسترس نیست (معمولاً به این دلیل که کلاینت یک اتصال را مستقیماً به یک IP باز کرده) نام میزبان مقصد را بازیابی کند. نتیجه به قواعد مسیریابی و پاکسازی fake-IP خوراک میدهد.
گزینهها
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
enable | bool | false | true | false | اسنیف اتصال را روشن کن. وقتی خاموش باشد، بقیهٔ بلوک نادیده گرفته میشود. |
override-destination | bool | false | true | false | آدرس IP مقصد را در فرادادهٔ اتصال با نام میزبان اسنیفشده جایگزین کن. وقتی true باشد، قواعد مسیریابی به جای IP خام نام میزبان را میبینند. |
sniffing | []string | [] | tls | http | quic | اسنیفرهایی که فعال شوند. منسوخ — ترجیحاً از نگاشت `sniff` به ازای پروتکل که در زیر آمده استفاده کنید. |
force-domain | []string | [] | <domain pattern> | اسنیف را روی اتصالات به این مقاصد اجباری کن، حتی اگر پروتکل از قبل شناخته شده باشد. |
skip-src-address | []string | [] | <CIDR> | هرگز اتصالات نشأتگرفته از این آدرسهای مبدأ را اسنیف نکن. |
skip-dst-address | []string | [] | <CIDR> | هرگز اتصالاتی که مقصدشان این آدرسهاست را اسنیف نکن. |
skip-domain | []string | [] | <domain pattern> | اگر مقدار اسنیفشده با یکی از این الگوها مطابقت داشت، هرگز مقصد را بازنویسی نکن. |
port-whitelist | []string | [] | <port> | <port-range> | فقط اتصالاتی که پورت مقصدشان در این فهرست قرار دارد را اسنیف کن. فهرست خالی یعنی همهٔ پورتها. |
force-dns-mapping | bool | false | true | false | وقتی جستوجوی fake-IP در بازگشت موفق نشود، برای بازیابی نام میزبان به اسنیف پناه ببر. |
parse-pure-ip | bool | false | true | false | اتصالاتی که مقصدشان از قبل یک IP خالص است (یعنی جستوجوی DNS انجام نشده) را اسنیف کن. |
sniff | map[string]RawSniffingConfig | {} | { "TLS": {...}, "HTTP": {...}, "QUIC": {...} } | پیکربندی اسنیفر به ازای پروتکل. کلیدها TLS، HTTP یا QUIC هستند؛ مقدارها بلوکهای `RawSniffingConfig` با بازنویسی پورتاند. |
منبع: config/config.go:363-376 · ثابتشده در v1.19.24 (a847246)
مثال
yaml
sniffer:
enable: true
override-destination: true
parse-pure-ip: true
force-dns-mapping: true
skip-domain:
- +.push.apple.com
sniff:
TLS:
ports: [443, 8443]
HTTP:
ports: [80, 8080]
override-destination: true
QUIC:
ports: [443]نکات
sniffing(آرایه) شکل قدیمی است؛ نگاشتsniffشکل ترجیحی است چون فهرستهای پورت به ازای پروتکل را حمل میکند.- همیشه دامنههای CDN با حجم بالا را در
skip-domainبگنجانید تا زنجیرهٔ پراکسی پایدار بماند؛ در غیر این صورت تغییرات SNI میتواند انتخاب پراکسی را ناپایدار کند.
منبع: config/config.go:363-376 · v1.19.24 (a847246)
