Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

Yggdrasil Network คืออะไร และวิธีติดตั้ง

Yggdrasil Network เป็น IPv6 Overlay Network มุ่งสร้าง Decentralized Encrypted Mesh Network โดยจัดการ Network เป็น Leaves ใน Binary Tree เป็น Overlay Network ทำหน้าที่ VPN ให้ User ติดต่อกันปลอดภัย

ฟรี ติดตั้งง่าย รองรับ Platform 多样 → ทางเลือกแรงสำหรับคนอยาก Private Secure Connection

Mesh Networking และ Yggdrasil

Yggdrasil ทำ Mesh Networking โดยแทน Network ด้วย Tree ของ Nodes ที่เชื่อมต่อกัน Nodes เป็น Relay ให้กัน → True Mesh Network

โครงสร้างนี้ช่วยหา Machine/Website ได้ง่าย ติดต่อ User อื่นโดยไม่ต้อง Central Server Route Traffic

ทำไมต้องใช้ Yggdrasil

จุดขาย: เปลี่ยนวิธี Route Data บน Internet โดย Assume สิ่งเหล่านี้:

  • ทุก Node เชื่อมต่อ Node อื่นอย่างน้อย 1 ตัว
  • ทุก Node Relay Data ให้อีก Node ได้โปร่งใส
  • ทุก Node Broadcast Nodes ที่เชื่อมต่อตัวเอง

Assumptions สร้างโครงสร้าง Rigid/Predictable แต่ Flexible เช่น ทำ Machine Publicly Accessible ได้โดย Connect แค่ 1 Public Node → Public Node นั้นเชื่อม Node อื่น → User อื่น Peer เข้ามาเจอคุณ

ยังสร้าง Subnetwork ของ Local Machines ได้ → ใช้เป็น VPN ได้ดี

วิธีติดตั้ง Yggdrasil

รองรับหลาย Platform/OS รวม Linux Distro ส่วนใหญ่ แต่ไม่อยู่ใน Default Repo ทุกตัว บางตัวต้อง Add Source ก่อน

Debian/Ubuntu

  1. Add GPG Key: gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt → gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
  2. Add Repo: echo 'deb https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list
  3. Update & Install: sudo apt update && sudo apt install yggdrasil

Fedora

อยู่ใน Community Packages แล้ว: sudo dnf copr enable rany/yggdrasil && sudo dnf install yggdrasil

Arch Linux

อยู่ใน Community Repo: sudo pacman -Syu yggdrasil

การตั้งค่า (Configuration)

แก้ไข /etc/yggdrasil.conf ด้วย nano: sudo nano -w /etc/yggdrasil.conf

หากไม่มีไฟล์ สร้างใหม่: su --command="yggdrasil -genconf > /etc/yggdrasil.conf"

เชื่อมต่อ Public Node

2 โหมด:

  • Connect Public Node → Machine Discoverable
  • Connect หลาย Machines → Private VPN

โหมดแรก: เพิ่ม Public Node Address ใน Block Peers: ของ Config

Peers: [
  tls://address.domain:port
  tcp://1.2.3.4:port
  socks://[aaaa:...:ffff]/[1111:...:9999]
]

Peers Block = List ของ Nodes ที่จะ Connect ใช้ TLS/SOCKS (Encrypted) หรือ TCP (Unencrypted สำหรับ Embedded Devices)

Copy Node Links จาก Community Yggdrasil ใส่ใน Peers → Enable/Start Service:

sudo systemctl enable yggdrasil
sudo systemctl start yggdrasil

Test การเชื่อมต่อที่ Webpage นี้

สร้าง Private Network ของตัวเอง

ต้องมี:

  • Publicly Discoverable Machine (Local ไม่มี CG-NAT หรือ Cheap VPS)
  • Machines หลายเครื่อง Network ต่างกัน ที่ติดต่อโดยตรงไม่ได้

ตั้งค่า Public Node (Personal)

แก้ Block Listen: ใน Config ของ Public Machine

Listen: [
  tls://your.ipv4.address.here:12345
  tcp://[your:ipv6:address:here]:12345
]

รับ Connection Port 12345 IPv4 (TLS) และ IPv6 (TCP Unencrypted) → Enable/Start Service

Address Discovery และ Restrict Access

Default: ยอมรับ Connection ทุกตัวที่ Port ถูกต้อง → ต้อง Whitelist Public Key

Yggdrasil Node Broadcast Public Key Unique (Gen ตอน Install) ใช้ Secure และสร้าง Address

ดู Address/Key: sudo yggdrasilctl getself → IPv6 เริ่ม 20x:... + Public Key

ตั้งค่า Public Node ให้ Restrict Access

แก้ Block AllowedPublicKeys: ใส่ Public Keys ที่อนุญาต

AllowedPublicKeys: [
  "publickey1"
  "publickey2"
  "publickey3"
]

Restart Service: sudo systemctl restart yggdrasil

ตอนนี้มี Private VPN ของตัวเองแล้ว!

คำถามที่พบบ่อย (FAQ)

1. ใส่ Yggdrasil Address เพื่อนใน Config แต่ Connect ไม่ได้?

สาเหตุหลัก:

  • ทั้งคู่อยู่หลัง NAT → ไม่ Connect ตรงได้
  • Peers/Listen Blocks Config ผิด

แก้: ต้องมีอย่างน้อย 1 Machine Publicly Accessible Port Forward ถูกต้อง และ Peers/Listen ใส่ Real IPv4/IPv6 Address ของ Peer ไม่ใช่ Yggdrasil Address

2. เช็คว่า Machines Peering กันได้จริงไหม?

รัน: sudo yggdrasilctl getpeers → แสดง Peers ที่เชื่อมต่ออยู่ และตำแหน่งใน Tree

3. สร้าง Yggdrasil Key/Address แบบ Strong ได้ไหม?

ได้! ใช้ Address Miner (Brute-force Public Key Pair ที่มี Leading Zeros) โปรแกรมยอดนิยม: Simple Yggdrasil Generator (SYG) Version ล่าสุดเขียน C++