การกำหนดค่าตัวโทรอัจฉริยะ

เครื่องมือโทรอัจฉริยะจะค้นหากลยุทธ์ที่เลิกบล็อก 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 ของ UDP
    • tcp: ใช้โปรแกรมแก้ไข TCP

รีโซลเวอร์ DNS-over-HTTPS (DoH)

https:
  name: dns.google
  address: 8.8.8.8
  • name: ชื่อโดเมนของเซิร์ฟเวอร์ DoH
  • address: โฮสต์:พอร์ตของเซิร์ฟเวอร์ DoH ค่าเริ่มต้นคือ name:443

รีโซลเวอร์ DNS-over-TLS (DoT)

tls:
  name: dns.google
  address: 8.8.8.8
  • name: ชื่อโดเมนของเซิร์ฟเวอร์ DoT
  • address: โฮสต์:พอร์ตของเซิร์ฟเวอร์ 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 คุณจะต้องดำเนินการต่อไปนี้

  1. โปรดติดต่อทีม Psiphon เพื่อขอการกําหนดค่าที่ให้สิทธิ์เข้าถึงเครือข่าย ซึ่งอาจต้องมีการทำสัญญา
  2. เพิ่มการกําหนดค่า 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 เฉพาะของคุณ