เซิร์ฟเวอร์ DNS
คุณสามารถใช้ตัวเลือกนี้เพื่อแทนที่การตั้งค่า DNS ของระบบ Chute รองรับเซิร์ฟเวอร์ DNS, DoH (DNS-over-HTTPS), DoT (DNS-over-TLS), DoQ (DNS-over-QUIC) และ DoH3 (DNS-over-HTTP/3)
[General]
dns-server = 8.8.8.8, 8.8.4.4
doh = cloudflare, google, 1111
dot = dns.google, cloudflare-dns.com
doq = dns.adguard.com
doh3 = https://dns.google/dns-query
คุณสามารถใช้คำสำคัญ system เพื่อเพิ่มเซิร์ฟเวอร์ DNS เพิ่มเติมในการตั้งค่าของระบบ (เซิร์ฟเวอร์ที่ซ้ำกันจะถูกละเว้น)
คุณสามารถใช้คำสำคัญ syslib เพื่อรับผลลัพธ์ DNS ด้วย API ในตัวของระบบ บน macOS syslib ระดับพูลจะถูกข้ามขณะที่อินเทอร์เฟซ TUN ทำงานอยู่ เพราะรีโซลเวอร์ของระบบตอนนั้นชี้กลับมาที่ Chute เอง ส่วน server:syslib ใน [Host] และเส้นทางของ .local ยังคงใช้มันอยู่
[General]
dns-server = system, syslib, 8.8.8.8, 8.8.4.4
รายการสามารถระบุพอร์ตได้ เช่น 192.0.2.53:5353 หรือ [2001:db8::1]:5353 สำหรับ IPv6 ทั้งนี้ dns-server ไม่รับชื่อโฮสต์ หากต้องการใช้รีโซลเวอร์ที่ระบุด้วยชื่อ ให้ใช้ DoH, DoT, DoQ หรือ DoH3 รายการเหล่านั้นเขียนไว้ตรงนี้ได้เช่นกันโดยระบุสคีม — https://, tls://, quic:// หรือ h3:// — แล้วจะถูกจัดเข้า doh, dot, doq หรือ doh3 เช่นเดียวกับใน encrypted-dns-server
ปัจจุบันมีบริการ DoH ในตัว 5 รายการ ตัวระบุเป็นตัวพิมพ์เล็กและต้องตรงตามตัวพิมพ์ใหญ่-เล็ก:
cloudflare(Cloudflare)google(Google)1111(1.1.1.1)securedns(SecureDNS)dnssb(DNS.SB)
คุณยังสามารถกำหนดค่าบริการ DoH ส่วนตัวของคุณได้ ตัวอย่างเช่น หากคุณใช้ https://dns.nextdns.io/xxxxxx เป็นปลายทาง NextDNS DoH ของคุณ คุณสามารถกำหนดค่าได้ดังนี้:
[General]
doh = google, dns.nextdns.io/xxxxxx
รายการ DoH ที่ไม่ถูกต้องจะถูกรายงานเป็นข้อผิดพลาดของการกำหนดค่า และบรรทัด doh จะถูกปฏิเสธ
เพื่อความเข้ากันได้กับการกำหนดค่า Surge การสะกด doh-server และ doh-service ได้รับการยอมรับเป็นชื่อแฝงของ doh
บริการ DNS-over-TLS (DoT)
คุณสามารถกำหนดค่าบริการ DoT เพื่อเข้ารหัสคำถาม DNS ผ่าน TLS
[General]
dot = dns.google, cloudflare-dns.com
แต่ละรายการบริการ DoT ควรเป็นชื่อโดเมนที่รองรับ DNS-over-TLS Chute จะเชื่อมต่อกับชื่อโฮสต์บนพอร์ต 853 โดยค่าเริ่มต้น รายการยังสามารถเขียนเป็น host:port หรือ host:port:peer-name (ใช้ [IPv6]:port สำหรับที่อยู่ IPv6) เพื่อเขียนทับพอร์ตและชื่อเพียร์ TLS
หากแปลงชื่อโฮสต์ DoT ไม่ได้หรือไม่สามารถเข้าถึงได้ จะถูกข้ามอย่างเงียบ ๆ
คุณสามารถผสม DoT, DoH, DoQ, DoH3 และเซิร์ฟเวอร์ DNS ธรรมดาในการกำหนดค่าเดียวกัน:
[General]
dns-server = system, 8.8.8.8
doh = cloudflare
dot = dns.google
doq = dns.adguard.com
doh3 = https://dns.google/dns-query
บริการ DNS-over-QUIC (DoQ)
คุณสามารถกำหนดค่าเซิร์ฟเวอร์ DoQ เพื่อเข้ารหัสคำถาม DNS ผ่าน QUIC
[General]
doq = dns.adguard.com
แต่ละรายการ DoQ ควรเป็นชื่อโดเมนหรือที่อยู่ IP ที่รองรับ DNS-over-QUIC พอร์ต 853 จะถูกใช้โดยค่าเริ่มต้น รายการยังสามารถเขียนเป็น host:port หรือ host:port:peer-name (ใช้ [IPv6]:port สำหรับที่อยู่ IPv6) เพื่อเขียนทับพอร์ตและชื่อเพียร์ TLS Chute ใช้การขนส่ง QUIC สำหรับคำถาม DNS ซึ่งให้ความหน่วงที่ลดลงเมื่อเทียบกับการเข้ารหัส DNS แบบ TCP
สามารถระบุเซิร์ฟเวอร์ DoQ หลายตัวโดยคั่นด้วยคอมมา:
[General]
doq = dns.adguard.com, dns.nextdns.io
หากเซิร์ฟเวอร์ DoQ ไม่สามารถเข้าถึงได้ มันจะถูกข้ามอย่างเงียบ ๆ
บริการ DNS-over-HTTP/3 (DoH3)
คุณสามารถกำหนดค่าบริการ DoH3 สำหรับ DNS-over-HTTPS โดยใช้การขนส่ง HTTP/3 (QUIC)
[General]
doh3 = https://dns.google/dns-query
แต่ละรายการ DoH3 ควรเป็น URL HTTPS แบบเต็มไปยังรีโซลเวอร์ DNS ที่รองรับ HTTP/3 สามารถระบุเซิร์ฟเวอร์ DoH3 หลายตัวโดยคั่นด้วยคอมมา:
[General]
doh3 = https://dns.google/dns-query, https://cloudflare-dns.com/dns-query
DoH3 รวมความเป็นส่วนตัวของ DNS-over-HTTPS กับประโยชน์ด้านประสิทธิภาพของการขนส่ง QUIC หากเซิร์ฟเวอร์ DoH3 ไม่รองรับ HTTP/3 หรือไม่สามารถเข้าถึงได้ มันจะถูกข้ามอย่างเงียบ ๆ
DNS over TCP
[General]
dns-server = tcp://8.8.8.8, tcp://[2001:4860:4860::8888]:53
รีโซลเวอร์ที่เขียนเป็น tcp://IP[:port] จะถูกสอบถามผ่าน TCP (RFC 7766) แทน UDP พอร์ตค่าเริ่มต้นคือ 53 ใช้กับเครือข่ายที่ทิ้งหรือดัดแปลง DNS ผ่าน UDP รับได้ทุกที่ที่รับรีโซลเวอร์ธรรมดา: ใน dns-server, พูล DNS เฉพาะ, dns-server= ของรายการระงับตาม SSID และรายการ server: ใน [Host] เช่นเดียวกับรีโซลเวอร์ธรรมดา รับเฉพาะที่อยู่ IP — ไม่รับชื่อโฮสต์, system หรือ syslib ตัวเลือกรายเซิร์ฟเวอร์ เช่น #disable-qtype= ใช้ได้ตามปกติ เมื่อใส่ #proxy การสอบถามจะส่งผ่านนโยบายนั้น โดยใช้ TCP เช่นเดียวกับการสอบถามธรรมดาทุกรายการที่ผ่านนโยบาย encrypted-dns-server ไม่รับรายการนี้
พูล DNS เฉพาะ
นอกจากพูลหลักข้างต้นแล้ว ยังมีพูลเสริมอีกสามพูลที่ใช้กับชื่อเฉพาะ:
[General]
direct-dns-server = 223.5.5.5, https://doh.pub/dns-query, system
proxy-dns-server = 1.1.1.1, tls://dns.google
fallback-dns-server = 8.8.8.8
direct-dns-server
แปลงชื่อโดเมนที่ผลการตัดสินของกฎเป็น DIRECT: การค้นหาที่ Chute ทำเองเมื่อเปิดการเชื่อมต่อโดยตรง และคำถามของแอปเมื่อคำถามนั้นมาถึงรีโซลเวอร์ของ Chute — คำถามที่ส่งมายังพอร์ตรับฟัง DNS ของ Chute, คำถามสำหรับชื่อที่อยู่ในรายการ always-real-ip หรือคำถามประเภทระเบียนอื่นนอกเหนือจาก A และ AAAA ภายใต้ TUN คำถาม A และ AAAA ของแอปจะไปไม่ถึงรีโซลเวอร์นั้น: ชั้น IP ปลอมจะตอบคำถามเหล่านั้นโดยตรง ไม่ว่ากฎจะระบุไว้อย่างไร ที่นี่จะพิจารณาเฉพาะกฎแบบโดเมนเท่านั้น ดังนั้นคำถามจากแอปสำหรับโดเมนที่ไม่มีกฎโดเมนใดตรงกัน — โดเมนที่ผลการตัดสินขึ้นอยู่กับกฎ IP อย่าง IP-CIDR หรือ GEOIP — จะเดินตาม FINAL: ใช้พูลนี้เมื่อ FINAL เป็น DIRECT และใช้พูลหลักเมื่อ FINAL เป็นพร็อกซี ส่วนการค้นหาที่ Chute ทำเองสำหรับโดเมนแบบนั้นจะใช้พูลหลัก เพราะการเชื่อมต่อยังไม่ได้ผูกกับ DIRECT หากไม่ได้ตั้งค่าคีย์นี้ พูลหลักจะตอบทุกคำถาม
proxy-dns-server
แปลงชื่อโฮสต์ของเซิร์ฟเวอร์พร็อกซีของคุณ หากไม่ได้ตั้งค่าคีย์นี้ ชื่อเหล่านั้นจะใช้พูลหลัก
fallback-dns-server
จะถูกสอบถามหนึ่งครั้งเมื่อพูลหลักไม่ส่งคำตอบใดกลับมาเลย ก่อนที่การค้นหาจะล้มเหลว เช่นเดียวกับคีย์ DNS อื่น ๆ คีย์นี้เขียนได้ใน [General] หรือ [DNS] และเขียนได้เพียงครั้งเดียว
รายการในพูลเหล่านี้ผสมการขนส่งได้หลายแบบ: ip[:port], [v6][:port], system, syslib, URL ของ DoH (https://…), tls://host[:port] สำหรับ DoT, quic://host[:port] สำหรับ DoQ และ h3://… สำหรับ DoH3 รายการ DNS ธรรมดา, DoH, DoT, DoQ และ DoH3 ลงท้ายด้วยส่วนต่อท้าย #proxyได้ — system#proxy และ syslib#proxy จะถูกข้ามพร้อมคำเตือน เมื่อ direct-dns-server หรือ proxy-dns-server ไม่ส่งคำตอบกลับมา การสอบถามจะถูกลองใหม่ผ่านพูลหลัก แต่ละคีย์เขียนได้เพียงครั้งเดียว รายการ tcp://IP[:port] จะสอบถามผ่าน DNS over TCP
เพื่อความเข้ากันได้กับ Shadowrocket คีย์ dns-direct-system = true จะถูกอ่านเป็น direct-dns-server = system และบันทึกในรูปแบบนั้น ในทำนองเดียวกัน dns-fallback-system = true จะเพิ่ม system ต่อท้าย fallback-dns-server และหากโปรไฟล์ประกาศ fallback-dns-server ไว้ด้วย ทั้งสองจะถูกรวมเป็นพูลเดียว
ตัวเลือก DNS แบบเข้ารหัส
encrypted-dns-server
encrypted-dns-server = https://dns.google/dns-query, tls://dns.google, quic://dns.adguard.com, h3://cloudflare-dns.com/dns-query
รายการเดียวของ Surge สำหรับรีโซลเวอร์แบบเข้ารหัส แต่ละรายการจะถูกจัดเข้า doh, dot, doq หรือ doh3 ตามสคีม (https://, tls://, quic://, h3://) ส่วน tcp:// และ scheme อื่นจะถูกละเว้นพร้อมข้อความแจ้ง หากต้องการ DNS over TCP ให้เขียน tcp:// ใน dns-server หรือพูลเฉพาะแทน — ดู DNS over TCP
encrypted-dns-follow-outbound-mode (ค่าเริ่มต้น: false)
encrypted-dns-follow-outbound-mode = true
ทำให้การเชื่อมต่อไปยังอัปสตรีม DoH, DoT, DoQ และ DoH3 ทำตามโหมดขาออกและกฎเหมือนคำขออื่น ๆ: เชื่อมต่อโดยตรงในโหมดตรง ใช้นโยบายที่เลือกไว้ในโหมดสากล และในโหมดกฎ ใช้นโยบายของกฎที่ตรงกัน โดยกฎ PROTOCOL,DOH, PROTOCOL,DOT, PROTOCOL,DOQ และ PROTOCOL,DOH3 จับการเชื่อมต่อเหล่านี้ได้ อัปสตรีมที่ผลการตัดสินเป็น REJECT จะถูกข้าม DoQ และ DoH3 ใช้ QUIC การเชื่อมต่อของมันจึงผ่านรีเลย์ UDP ของนโยบายที่เลือก เมื่อนโยบายนั้น (หากเป็นกลุ่มคือตัวเลือกปัจจุบัน) ไม่รับส่ง UDP จะตัดสินตาม udp-policy-not-supported-behaviour: REJECT ซึ่งเป็นค่าเริ่มต้นจะข้ามอัปสตรีมนั้น ส่วน DIRECT จะสอบถามโดยตรง
encrypted-dns-skip-cert-verification (ค่าเริ่มต้น: false)
encrypted-dns-skip-cert-verification = true
ไม่ตรวจสอบใบรับรองของอัปสตรีม DoH, DoT, DoQ และ DoH3 ใช้กับรีโซลเวอร์ที่ใช้ใบรับรองแบบลงนามเอง และทำให้ไม่มีการป้องกันการปลอมตัวเป็นรีโซลเวอร์อีกต่อไป
ส่งการสอบถามผ่านนโยบาย
[General]
dns-server = 1.1.1.1#proxy, 8.8.8.8#proxy=HK
doh = https://dns.google/dns-query#proxy=Proxy%20Group
doq = dns.adguard.com#proxy=HK
รายการใน dns-server, doh, dot, doq, doh3 หรือพูลเฉพาะใดก็ได้ สามารถลงท้ายด้วย #proxy หรือ #proxy=<policy> เพื่อให้การสอบถามส่งผ่านนโยบายนั้นแทนการเชื่อมต่อโดยตรง #proxy อย่างเดียวจะใช้นโยบายที่เลือกไว้สำหรับโหมดสากล หรือถ้าไม่มี จะใช้นโยบายของกฎ FINAL ส่วน #proxy=<name> ระบุนโยบายหรือกลุ่ม โดยเขียนช่องว่างเป็น %20 รายการ DNS ธรรมดาจะเปลี่ยนไปใช้ DNS over TCP เพราะไม่ใช่ทุกนโยบายที่ส่งต่อ UDP ได้ รายการ DoQ หรือ DoH3 ยังใช้ QUIC และการเชื่อมต่อของมันจะผ่านรีเลย์ UDP ของนโยบาย เมื่อนโยบาย (หากเป็นกลุ่มคือตัวเลือกปัจจุบัน) ไม่รับส่ง UDP อัปสตรีมนั้นจะถูกข้ามพร้อมคำเตือน และจะไม่ถูกสอบถามโดยตรงเลย หากนโยบายไม่มีอยู่หรือผลลัพธ์เป็น REJECT อัปสตรีมนั้นจะถูกข้าม การค้นหาชื่อโฮสต์ของเซิร์ฟเวอร์พร็อกซีเองจะไม่ใช้อัปสตรีมที่ผ่านพร็อกซีเลย
ตัวเลือกรายเซิร์ฟเวอร์
[General]
dns-server = 1.1.1.1#disable-ipv6, 8.8.8.8#disable-qtype=65
doh = https://dns.google/dns-query#h3=true, https://10.0.0.1/dns-query#skip-cert-verify=true
ส่วนท้าย # เดียวกันนี้ยังรับตัวเลือกที่มีผลเฉพาะกับเซิร์ฟเวอร์นั้นด้วย หลายตัวเชื่อมด้วย & และละ =true ได้:
h3=true— สอบถามเซิร์ฟเวอร์ DoH นั้นผ่าน HTTP/3 แทน HTTP/2skip-cert-verify=true— ไม่ตรวจสอบใบรับรองของอัปสตรีมนี้เพียงรายเดียว สำหรับเซิร์ฟเวอร์นั้นการป้องกันรีโซลเวอร์ปลอมจะหายไป เช่นเดียวกับที่encrypted-dns-skip-cert-verificationทำกับอัปสตรีมทุกรายการdisable-ipv4=true/disable-ipv6=true— ไม่ถามระเบียน A / AAAA จากเซิร์ฟเวอร์นี้เลยdisable-qtype=65— ไม่ถามระเบียนชนิดนั้นเลยdisable-qtype-65มีความหมายเดียวกัน และรายการที่คั่นด้วยจุลภาคจะปิดได้หลายชนิดพร้อมกัน:8.8.8.8#disable-qtype=65,64คือหนึ่งรายการที่ปิดทั้งสองชนิด การตัดเป็นรายการนั้นรู้จักส่วนท้าย#อยู่แล้ว จุลภาคที่อยู่นอกส่วนท้ายจึงยังคงแยกเซิร์ฟเวอร์ตามเดิม —8.8.8.8#proxy, 1.1.1.1คือสองเซิร์ฟเวอร์
เซิร์ฟเวอร์ที่ปิดชนิดคำถามไว้จะถูกข้ามก่อนส่งการสอบถาม จึงไม่กินทั้งจำนวนครั้งที่ลองและเวลารอ และเมื่อทุกเซิร์ฟเวอร์ในพูลปฏิเสธชนิดนั้น การค้นหาจะล้มเหลวทันทีแทนที่จะรอคำตอบที่ไม่มีใครส่ง
คำถาม HTTPS และ SVCB
allow-dns-svcb = true
ปิดไว้เป็นค่าเริ่มต้น: คำถาม HTTPS (ประเภท 65) และ SVCB (ประเภท 64) จากแอปจะได้รับคำตอบ NOERROR ว่างแทนการส่งต่อ เพราะคำใบ้ที่อยู่ในระเบียนเหล่านี้จะทำให้แอปเชื่อมต่อเลี่ยง IP ปลอมและกฎได้ ตั้งเป็น true เพื่อส่งต่อ สวิตช์นี้ครอบคลุมคำถามที่แอปส่งผ่าน TUN ด้วย ทั้งที่ส่งไปยังที่อยู่ DNS ของ Chute เองและที่ส่งไปยังรีโซลเวอร์ที่ hijack-dns ไฮแจ็กไว้ การค้นหา ECH ของ Chute เองไม่ได้รับผลกระทบ
หน้านี้เป็นฉบับแปลจากเวอร์ชันภาษาอังกฤษ หากเนื้อหาไม่ตรงกัน ให้ยึดเวอร์ชันภาษาอังกฤษเป็นหลัก