Tuntox เป็นโปรแกรมที่ส่งต่อการเชื่อมต่อ TCP ผ่านโปรโตคอล Tox ซึ่งช่วยให้สามารถเข้าถึงเครื่องที่อยู่ห่างไกลซึ่งอยู่เบื้องหลัง NAT ที่คุณไม่สามารถควบคุมได้หรือด้วยที่อยู่ IP แบบไดนามิกซึ่งมีเวลาแฝงต่ำ
Tuntox เป็นไบนารี่เดี่ยวที่อาจทำงานในโหมดไคลเอนต์หรือโหมดเซิร์ฟเวอร์ ตามกฎทั่วไป ให้รันเซิร์ฟเวอร์บนเครื่องระยะไกลที่คุณต้องการเข้าถึงและรันไคลเอนต์บนเครื่องคอมพิวเตอร์ที่คุณต้องการเข้าถึงเซิร์ฟเวอร์
Tuntox อยู่ระหว่างดำเนินการในช่วงเริ่มต้น มันจะไม่ฆ่าแพะของคุณ แต่อาจแยกส่วน หน่วยความจำรั่วไหล หรือมีปัญหาด้านความปลอดภัย (แม้ว่าฉันพยายามทำให้มันค่อนข้างปลอดภัยก็ตาม)
หากคุณไม่รู้ว่า Tox คืออะไร - มันเป็นโปรโตคอลโต้ตอบแบบทันทีซึ่งเป็น P2P เต็มรูปแบบ รองรับการโทรด้วยเสียง/วิดีโอ และการถ่ายโอนไฟล์ ต่างจาก Skype ตรงที่เปิดเต็มรูปแบบและไม่เหมือน XMPP - การโทรและการถ่ายโอนไฟล์ใช้งานได้จริงแบบ P2P เข้าไปที่ https://tox.chat/ และดาวน์โหลดไคลเอนต์เมื่อคุณมีโอกาส
รับไบนารีจากแท็บ Releases บน github เพียงดาวน์โหลดไฟล์ที่ถูกต้องสำหรับสถาปัตยกรรมของคุณ รัน chmod +x เท่านี้ก็เสร็จเรียบร้อย ไบนารีลงนามด้วยคีย์ PGP ของฉัน 11C1 B15A 5D5D D662 E469 928A EBDA 6B97 4ED3 D2B7
หากคุณพลาดเวลาที่ผู้ชายเขียนไดรเวอร์อุปกรณ์ของตัวเอง โปรดดูที่ BUILD.md
ใช้งานเซิร์ฟเวอร์ Tuntox บนแล็ปท็อปที่เชื่อมต่อผ่าน 3G บนคอมพิวเตอร์ที่บ้านของคุณที่อยู่เบื้องหลัง NAT หกตัว หรือบน Raspberry Pi ของคุณ ไม่จำเป็นต้องส่งต่อพอร์ตไปยัง IP สาธารณะ - เครื่องจะสามารถเข้าถึงได้ผ่านเครือข่ายโอเวอร์เลย์ Tox
./tuntox
รันเซิร์ฟเวอร์ในเบื้องหน้า เมื่อเซิร์ฟเวอร์เริ่มทำงาน เซิร์ฟเวอร์จะพิมพ์ Tox ID ไปยังเอาต์พุต โปรดทราบว่าคุณจะต้องใช้ในภายหลังเพื่อเข้าถึงเครื่องจากภายนอก
หากคุณยกเลิกเซิร์ฟเวอร์ (Ctrl-C) และเริ่มต้นใหม่อีกครั้ง เซิร์ฟเวอร์จะสร้าง Tox ID ใหม่และคุณจะต้องจดบันทึกอีกครั้ง มันขัดต่อจุดประสงค์ ดังนั้นคุณจะต้องช่วยเซิร์ฟเวอร์จัดเก็บ Tox ID ไว้ที่ใดที่หนึ่ง ตามค่าเริ่มต้น ระบบจะบันทึกไฟล์ไว้ใน /etc/tuntox/ ดังนั้นหากคุณสร้างไดเร็กทอรีนี้และตั้งค่าไดเร็กทอรีเพื่อให้ tuntox เข้าถึงได้ ก็จะมี Tox ID คงที่
หรือคุณสามารถใช้สวิตช์ -C แทน:
./tuntox -C /path/to/the/config/directory/
หากต้องการ daemonize เมื่อเริ่มต้น ให้เพิ่ม -z:
/path/to/tuntox -z
หรือหากคุณใช้งานบางอย่างเช่น supervisord หรือ systemd คุณสามารถร่วมสนับสนุนไฟล์การกำหนดค่าสำหรับระบบที่คุณเลือกได้ (ดู #3, #4, #6) ไม่จำเป็นต้องรันเซิร์ฟเวอร์ในฐานะรูทอย่างแน่นอน
ดังนั้นแล็ปท็อปจึงได้ติดตั้งเซิร์ฟเวอร์ Tuntox แล้ว คุณจะเชื่อมต่อกับมันได้อย่างไร?
./tuntox -i -L 2222:127.0.0.1:22
โดยที่
คือ ID ที่คุณจดบันทึกไว้เมื่อตั้งค่าเซิร์ฟเวอร์ คุณไม่ลืมเขียนมันลงไปใช่ไหม?
หลังจากที่คุณรันคำสั่งนี้ ให้เปิดหน้าต่างเทอร์มินัลที่สองแล้วดำเนินการ:
ssh -p 2222 myuser@localhost
Magic พอร์ต 2222 บนโลคัลโฮสต์ของคุณตอนนี้เป็นเซิร์ฟเวอร์ SSH บนเครื่องที่รันเซิร์ฟเวอร์ Tuntox
สวิตช์ -L ทำงาน (เกือบ) เช่นเดียวกับใน SSH สำหรับผู้ที่ไม่ได้ฝึกหัด -LA:B:C หมายถึง "ส่งต่อพอร์ต C บน ip B ไปยังพอร์ต A บน localhost" ไม่เหมือนกับ SSH คุณไม่สามารถใช้ชื่อโฮสต์สำหรับ B ได้ (เว้นแต่คุณจะเชื่อมโยงไบนารีแบบไดนามิก)
อีกทางหนึ่ง โหมด SSH ProxyCommand ก็ใช้งานได้เช่นกัน:
ssh -o ProxyCommand='./tuntox -i -W localhost:22' gdr@localhost
สิ่งที่สนุก: VPN ผ่าน Tox
ไคลเอนต์สามารถรันในฐานะผู้ใช้ที่ไม่ใช่รูททั่วไป เว้นแต่ว่า A < 1024 ("A" คือพอร์ตในเครื่อง) มีวิธีแก้ไขอยู่
TUNTOX จะไม่ปลอดภัยหากไม่มีสวิตช์ -s จัดหา รหัสผ่านของคุณ ทั้งบนเซิร์ฟเวอร์และไคลเอนต์แล้วคุณจะสบายดี สวิตช์นี้เปิดตัวใน 0.0.4 ชื่อรหัส "Mr. Lahey's Got My Porno Tape!" ยิ่งไปกว่านั้น ให้รัน TUNTOX_SHARED_SECRET=yourpassword tuntox ...
ทั้งสองด้าน
เซิร์ฟเวอร์ Tuntox จะสร้าง Tox ID ใหม่ทุกครั้งที่เริ่มต้นระบบ หรือบันทึกคีย์ส่วนตัวไว้ในไฟล์ ใครก็ตามที่ต้องการเชื่อมต่อกับเซิร์ฟเวอร์นี้จำเป็นต้องมี Tox ID ซึ่งประกอบด้วย pubkey ที่เปิดเผยต่อสาธารณะและค่า "ป้องกันสแปม" แบบ 32 บิตที่เป็นความลับ จากนั้นไคลเอนต์จะส่งความลับที่ใช้ร่วมกันซึ่งจะถูกเปรียบเทียบกับความลับที่ให้มาในบรรทัดคำสั่งของเซิร์ฟเวอร์ หากไม่ตรงกัน คำขอเป็นเพื่อนก็จะไม่ได้รับคำตอบ
ดังนั้น การครอบครอง Tox ID ของเซิร์ฟเวอร์และความลับจึงควรถือว่าเทียบเท่ากับการครอบครองบัญชี Unix ที่มีสิทธิ์เข้าถึง SSH Tuntox ไม่ได้ใช้ความสามารถของเชลล์ระยะไกล แต่เป็นไปได้ว่าสามารถหาประโยชน์ได้
การรับรองความถูกต้อง PSK เป็นทางเลือก แต่แนะนำ - เปิดใช้งานเฉพาะเมื่อมีสวิตช์ -s บนฝั่งเซิร์ฟเวอร์หรือมีการตั้งค่าตัวแปรสภาพแวดล้อม TUNTOX_SHARED_SECRET PSK ถูกส่งเป็นข้อความขอเป็นเพื่อน Tox - ตราบใดที่ผู้เขียนเข้าใจโค้ด libtoxcore PSK จะถูกเข้ารหัสโดยใช้คีย์ EC สาธารณะของเซิร์ฟเวอร์
Tuntox Server สามารถเลือกอนุญาตเฉพาะ ToxID ที่อนุญาตพิเศษเท่านั้น จัดหา -i yourallowedtoxid หนึ่งครั้งหรือมากกว่าเพื่อเพิ่ม ToxID ไปยังรายการที่อนุญาต หมายเหตุ: พฤติกรรมเริ่มต้นของไคลเอ็นต์คือการสร้าง ToxID ใหม่สำหรับการเรียกใช้ทุกครั้ง (เนื่องจากผู้เขียนคิดว่ามันเป็นคุณลักษณะความเป็นส่วนตัวที่ดี) คุณจะต้องใช้สวิตช์ -C ในไคลเอนต์เพื่อบังคับให้อ่านข้อมูลระบุตัวตนที่บันทึกไว้จาก tox_save
Tuntox กำลังใช้โปรโตคอล Tox ซึ่งตัวมันเองยังไม่ได้รับการตรวจสอบโดยนักวิจัยด้านความปลอดภัย Tox crypto ถูกนำมาใช้กับ libsodium (ซึ่งอิงจาก NaCl ของ Bernstein) ดังนั้นจึงใช้เส้นโค้งสุริยุปราคา 25519 สำหรับการแลกเปลี่ยนคีย์และ salsa20 สำหรับการเข้ารหัสสตรีม ตามความรู้ที่ดีที่สุดของผู้เขียน libsodium ทำให้การเข้ารหัสลับทำได้ยากที่สุด แต่เราไม่รู้จนกว่า Tox จะได้รับการตรวจสอบ
ใช่ มีอันหนึ่ง
ขออภัยเกี่ยวกับ GPLv3 - ทั้ง toxcore และ utox (ซึ่งฉันยืมโค้ดมาบางส่วน) คือ GPLv3
ขอขอบคุณนักพัฒนา toxcore และ utox หากไม่มีโปรแกรมนี้ก็จะไม่มีอยู่จริง
ขอบคุณ Mr_4551 สำหรับความช่วยเหลือและแรงจูงใจของคุณ