เครื่องมือโทรอัจฉริยะจะค้นหากลยุทธ์ที่เลิกบล็อก DNS และ TLS สําหรับรายการโดเมนทดสอบที่ระบุ โดยจะใช้การกําหนดค่าที่อธิบายกลยุทธ์หลายรายการเพื่อเลือก
การกําหนดค่า YAML สําหรับตัวโทรอัจฉริยะ
การกําหนดค่าที่ Smart Dialer ใช้อยู่ในรูปแบบ YAML มีตัวอย่างดังต่อไปนี้
dns:
- system: {}
- https:
name: 8.8.8.8
- https:
name: 9.9.9.9
tls:
- ""
- split:2
- tlsfrag:1
fallback:
- ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTprSzdEdHQ0MkJLOE9hRjBKYjdpWGFK@1.2.3.4:9999/?outline=1
การกําหนดค่า DNS
- ช่อง
dns
จะระบุรายการรีโซลเวอร์ DNS ที่จะทดสอบ - โปรแกรมแก้ไข DNS แต่ละรายการอาจเป็นประเภทใดประเภทหนึ่งต่อไปนี้
system
: ใช้โปรแกรมแก้ไขระบบ ระบุด้วยออบเจ็กต์ว่างhttps
: ใช้รีโซลเวอร์ DNS-over-HTTPS (DoH) ที่เข้ารหัสtls
: ใช้โปรแกรมแก้ไข DNS ที่เข้ารหัสผ่าน TLS (DoT)udp
: ใช้โปรแกรมแก้ไข DNS ของ UDPtcp
: ใช้โปรแกรมแก้ไข TCP
รีโซลเวอร์ DNS-over-HTTPS (DoH)
https:
name: dns.google
address: 8.8.8.8
name
: ชื่อโดเมนของเซิร์ฟเวอร์ DoHaddress
: โฮสต์:พอร์ตของเซิร์ฟเวอร์ DoH ค่าเริ่มต้นคือname
:443
รีโซลเวอร์ DNS-over-TLS (DoT)
tls:
name: dns.google
address: 8.8.8.8
name
: ชื่อโดเมนของเซิร์ฟเวอร์ DoTaddress
: โฮสต์:พอร์ตของเซิร์ฟเวอร์ DoT ค่าเริ่มต้นคือname
:853
รีโซลเวอร์ UDP
udp:
address: 8.8.8.8
address
: ที่อยู่:พอร์ตของโปรแกรมแก้ไข DNS ของ UDP
รีโซลเวอร์ TCP
tcp:
address: 8.8.8.8
address
: โฮสต์:พอร์ตของโปรแกรมแก้ไข DNS ของ TCP
การกำหนดค่า TLS
- ช่อง
tls
จะระบุรายการการส่ง TLS ที่จะทดสอบ - การรับส่ง TLS แต่ละรายการคือสตริงที่ระบุการรับส่งที่จะใช้
- เช่น
override:host=cloudflare.net|tlsfrag:1
ระบุการขนส่งที่ใช้การนําส่งผ่านโดเมนกับ Cloudflare และการแยกส่วน TLS ดูรายละเอียดได้ในเอกสารประกอบเกี่ยวกับการกำหนดค่า
การกําหนดค่าสํารอง
ระบบจะใช้การกําหนดค่าสํารองหากไม่มีกลยุทธ์แบบไม่ใช้พร็อกซีใดเชื่อมต่อได้ เช่น ระบุพร็อกซีเซิร์ฟเวอร์สำรองเพื่อพยายามเชื่อมต่อของผู้ใช้ การใช้กลยุทธ์สำรองจะเริ่มต้นช้ากว่า เนื่องจากกลยุทธ์ DNS/TLS อื่นๆ ต้องใช้งานไม่สำเร็จ/หมดเวลาก่อน
สตริงสำรองควรมีลักษณะดังนี้
- สตริงการกําหนดค่า
StreamDialer
ที่ถูกต้องตามที่ระบุไว้ในconfigurl
- ออบเจ็กต์การกําหนดค่า Psiphon ที่ถูกต้องซึ่งเป็นรายการย่อยของช่อง
psiphon
ตัวอย่างเซิร์ฟเวอร์ Shadowsocks
fallback:
- ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTprSzdEdHQ0MkJLOE9hRjBKYjdpWGFK@1.2.3.4:9999/?outline=1
ตัวอย่างเซิร์ฟเวอร์ SOCKS5
fallback:
- socks5://[USERINFO]@[HOST]:[PORT]
ตัวอย่างการกําหนดค่า Psiphon
หากต้องการใช้เครือข่าย Psiphon คุณจะต้องดำเนินการต่อไปนี้
- โปรดติดต่อทีม Psiphon เพื่อขอการกําหนดค่าที่ให้สิทธิ์เข้าถึงเครือข่าย ซึ่งอาจต้องมีการทำสัญญา
- เพิ่มการกําหนดค่า Psiphon ที่ได้รับลงในส่วน
fallback
ของการกําหนดค่า Smart Dialer เนื่องจาก JSON เข้ากันได้กับ YAML คุณจึงคัดลอกและวางการกำหนดค่า Psiphon ลงในส่วนfallback
ได้โดยตรง ดังนี้
fallback:
- psiphon: {
"PropagationChannelId": "FFFFFFFFFFFFFFFF",
"SponsorId": "FFFFFFFFFFFFFFFF",
"DisableLocalSocksProxy" : true,
"DisableLocalHTTPProxy" : true,
...
}
วิธีใช้แป้นโทรศัพท์อัจฉริยะ
หากต้องการใช้เครื่องมือโทรอัจฉริยะ ให้สร้างออบเจ็กต์ StrategyFinder
และเรียกใช้เมธอด NewDialer
โดยส่งรายการโดเมนทดสอบและการกำหนดค่า YAML
เมธอด NewDialer
จะแสดงผล transport.StreamDialer
ที่ใช้สร้างการเชื่อมต่อโดยใช้กลยุทธ์ที่พบ เช่น
finder := &smart.StrategyFinder{
TestTimeout: 5 * time.Second,
LogWriter: os.Stdout,
StreamDialer: &transport.TCPDialer{},
PacketDialer: &transport.UDPDialer{},
}
configBytes := []byte(`
dns:
- system: {}
- https:
name: 8.8.8.8
- https:
name: 9.9.9.9
tls:
- ""
- split:2
- tlsfrag:1
fallback:
- ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTprSzdEdHQ0MkJLOE9hRjBKYjdpWGFK@1.2.3.4:9999/?outline=1
`)
dialer, err := finder.NewDialer(
context.Background(),
[]string{"www.google.com"},
configBytes
)
if err != nil {
// Handle error.
}
// Use dialer to create connections.
นี่เป็นตัวอย่างพื้นฐานและอาจต้องปรับให้เหมาะกับ Use Case เฉพาะของคุณ