วิธีติดตั้ง iPerf บน Windows
ไม่มีตัวติดตั้ง iPerf3 อย่างเป็นทางการสำหรับ Windows แต่คำสั่งเดียวก็ได้บิลด์ที่ได้รับการดูแลมาแล้ว:
winget install -e --id ar51an.iPerf3
หากไม่อยากใช้ตัวจัดการแพ็กเกจ เส้นทางด้วยตนเองคือดาวน์โหลดบิลด์จากบุคคลที่สามที่ได้รับการดูแลเป็นไฟล์ zip แตกไฟล์ไปยังโฟลเดอร์ แล้วรัน iperf3 จากโฟลเดอร์นั้นในเทอร์มินัล (หรือเพิ่มโฟลเดอร์ลงใน PATH) ไม่ว่าทางไหน อนุญาตให้ผ่าน Windows Defender Firewall หากรันเป็นเซิร์ฟเวอร์ ขั้นตอนด้านล่างครอบคลุมทั้งสองเส้นทางและจุดพลาดที่มักทำให้คนสะดุด
iPerf วัดอัตราการส่งผ่านข้อมูลเครือข่ายแบบดิบระหว่างสองเครื่องที่ควบคุมเอง ซึ่งทำให้มันเป็นเครื่องมือที่ซื่อสัตย์สำหรับคำกล่าวอ้าง "การเชื่อมต่อช้า": ไม่มีเบราว์เซอร์ ไม่มีเซิร์ฟเวอร์ทดสอบของบุคคลที่สามที่มีอารมณ์แปรปรวน มีแค่ปลายทางสองจุดที่ควบคุมเอง มันเป็นเครื่องมือหลักสำหรับช่างติดตั้งและวิศวกรเครือข่าย และมันใช้บรรทัดคำสั่งเท่านั้น
ทำไมจึงไม่มีเวอร์ชัน Windows อย่างเป็นทางการ?
iPerf3 พัฒนาโดย ESnet และแพลตฟอร์มที่รองรับอย่างเป็นทางการมีเพียง Linux, FreeBSD และ macOS เท่านั้น ESnet ไม่รองรับ Windows หรือแจกจ่ายไบนารี Windows ดังนั้นทุกอย่างที่พบสำหรับ Windows เป็นบิลด์ของบุคคลที่สาม ส่วนใหญ่คอมไพล์ด้วย Cygwin ดังนั้นไฟล์ zip จึงมี iperf3.exe พร้อมกับไฟล์ .dll หนึ่งไฟล์หรือมากกว่าที่มันต้องการ นั่นก็เป็นจุดพลาดแรกด้วย: ไฟล์ exe ทำงานไม่ได้หากคัดลอกไปไว้ที่อื่นโดยไม่มี DLL ของมัน เก็บโฟลเดอร์ที่แตกไฟล์ไว้ด้วยกัน
ระวังเรื่องแหล่งที่ดาวน์โหลด หลายเว็บไซต์ที่ติดอันดับดีสำหรับ "iperf windows" มีบิลด์ที่ล้าสมัยไปหลายปี เลือกใช้แหล่งที่ได้รับการดูแล: บิลด์ของชุมชนที่เผยแพร่บน GitHub นั้นทันสมัย และตัวจัดการแพ็กเกจหลักก็ดึงมาจากแหล่งที่ได้รับการดูแลด้วย บิลด์ยุค 3.1.x เก่ามีข้อผิดพลาดในการวัดที่รู้กันบน Windows และควรหลีกเลี่ยง
ควรใช้ iPerf3 บน Windows หรือไม่?
ผู้อ่านที่มีความรู้จะชี้ให้เห็นว่า FAQ ของ ESnet เอง แนะนำ iperf2 บน Windows และว่า Microsoft ได้เผยแพร่บทความชื่อ สามเหตุผลที่ไม่ควรใช้ iPerf3 บน Windows ทั้งสองเป็นเรื่องจริง และทั้งสองสมควรได้รับคำตอบตรงไปตรงมา คำวิจารณ์ส่วนใหญ่นั้นพุ่งเป้าไปที่บิลด์ 3.1.x เก่าที่แพร่หลายอยู่หลายปี ซึ่ง Cygwin DLL ที่มากับมันจำกัดบัฟเฟอร์ซ็อกเก็ตและทำให้ค่าอัตราการส่งผ่านข้อมูลเพี้ยน บิลด์ที่ได้รับการดูแลในปัจจุบันแก้ไขสิ่งนั้นแล้ว และบทความของ Microsoft เองก็ยอมรับว่าสำหรับการทดสอบอัตราการส่งผ่านข้อมูลทั่วไป เครื่องมือที่ใช้ Cygwin นั้นใช้ได้ดี โดยสงวนข้อคัดค้านไว้สำหรับการทดสอบเปรียบเทียบในห้องแล็บและการจำลองพฤติกรรมแอปพลิเคชันเนทีฟ
ในทางปฏิบัติมากกว่านั้น iperf2 และ iPerf3 เป็นโปรโตคอลที่แยกกันและเข้ากันไม่ได้ และระบบเซิร์ฟเวอร์สาธารณะกับเครื่องมือสมัยใหม่ส่วนใหญ่ใช้มาตรฐาน iPerf3 ดังนั้นหากสิ่งที่กำลังทดสอบด้วยรัน iPerf3 ไคลเอนต์ iperf2 ก็ใช้ไม่ได้ เช่นเดียวกับทางเลือกที่ Microsoft แนะนำ ntttcp และ ctsTraffic: ทั้งคู่ต้องการเครื่องมือของตัวเองที่ปลายทางแต่ละด้านและไม่สามารถสื่อสารกับเซิร์ฟเวอร์ iPerf ได้ ซึ่งทำให้พวกมันเป็นเครื่องมือห้องแล็บสำหรับปลายทางที่ควบคุมเอง ไม่ใช่เครื่องมือภาคสนามสำหรับทดสอบกับปลายทาง iPerf3 จริง
ใช้บิลด์ปัจจุบัน ทดสอบกับเซิร์ฟเวอร์ที่ควบคุมเอง แล้ว iPerf3 บน Windows จะวัดได้อย่างซื่อสัตย์
ติดตั้งด้วยตนเองได้อย่างไร?
ดาวน์โหลดไฟล์ zip ของ Windows จากแหล่งที่ได้รับการดูแลและแตกไฟล์ไปที่ไหนสักที่ที่สมเหตุสมผล เช่น C:\Tools\iperf3 นั่นคือการติดตั้งทั้งหมด เปิด Terminal หรือ PowerShell เปลี่ยนไปยังโฟลเดอร์นั้น และยืนยันว่ามันรันได้:
cd C:\Tools\iperf3
.\iperf3.exe --version
การรันมันจากโฟลเดอร์ของตัวเองใช้ได้สำหรับการใช้งานในเทอร์มินัลครั้งเดียว แต่หากต้องการรัน iperf3 จากที่ไหนก็ได้ ต้องมีโฟลเดอร์อยู่ใน PATH: Start พิมพ์ "environment variables" แก้ไข Path ภายใต้ตัวแปรผู้ใช้ เพิ่มโฟลเดอร์ iperf3 แล้วเปิดเทอร์มินัลใหม่ Nexus Telemetry Pro ค้นหา iperf3 ด้วยวิธีเดียวกัน ผ่าน PATH ดังนั้นหากติดตั้งด้วยตนเองและต้องการให้ไคลเอนต์ iPerf ของ Pro ทำงาน ขั้นตอนนี้จำเป็น นี่เป็นสิ่งเดียวที่ winget ทำให้ แต่ไฟล์ zip ไม่ทำ
ติดตั้งด้วยตัวจัดการแพ็กเกจได้อย่างไร?
เส้นทางที่ใช้งานได้ง่ายที่สุดบนเครื่อง Windows ปัจจุบันคือ winget ซึ่งมีมาในตัว ดึงบิลด์ของชุมชนที่ได้รับการดูแล และจัดการ PATH ให้ด้วย:
winget install -e --id ar51an.iPerf3
เปิดเทอร์มินัลใหม่หลังจากนั้น แล้วยืนยัน ตรวจสอบ หรือลบมันด้วย:
iperf3 --version # confirm it works
winget list iperf3 # see what is installed
winget uninstall --id ar51an.iPerf3 # remove it cleanly
หากใช้ Chocolatey แทน choco install iperf3 จากเทอร์มินัลที่ยกระดับสิทธิ์ก็ได้เครื่องมือบรรทัดคำสั่งตัวเดียวกัน
รันการทดสอบได้อย่างไร?
iPerf ต้องการสองปลาย: เซิร์ฟเวอร์และไคลเอนต์ บนเครื่องที่ทำหน้าที่เป็นเซิร์ฟเวอร์:
iperf3 -s
ครั้งแรกที่ทำเช่นนี้ Windows Defender Firewall จะถาม หรือการเชื่อมต่อจะล้มเหลวเงียบๆ หากพลาดการถาม โหมดเซิร์ฟเวอร์ฟังบน TCP พอร์ต 5201 โดยค่าเริ่มต้น ดังนั้นอนุญาตให้ iperf3 ผ่านไฟร์วอลล์สำหรับเครือข่ายส่วนตัว หรือเพิ่มกฎขาเข้าสำหรับพอร์ต 5201 นี่เป็นเหตุผลที่พบบ่อยที่สุดเพียงข้อเดียวที่การทดสอบ iPerf "ไม่ทำงาน" บน Windows
บนเครื่องไคลเอนต์ ให้ชี้ไปที่ IP address ของเซิร์ฟเวอร์:
iperf3 -c 192.168.1.50
นั่นรันการทดสอบอัปโหลดสิบวินาทีจากไคลเอนต์ไปยังเซิร์ฟเวอร์ เพิ่ม -R เพื่อกลับทิศทางและทดสอบดาวน์โหลด และ -t 30 สำหรับการทดสอบที่ยาวนานกว่า การทดสอบทั้งสองทิศทางสำคัญบน Starlink ที่ดาวน์โหลดและอัปโหลดเป็นคนละเรื่องกันมาก
แล้วเซิร์ฟเวอร์ iPerf สาธารณะล่ะ?
มันมีอยู่ และเป็นส่วนที่เชื่อถือได้น้อยที่สุดของระบบ เซิร์ฟเวอร์สาธารณะมักยุ่ง ถูกจำกัดอัตรา หรือเข้าถึงไม่ได้ ดังนั้นการทดสอบที่ล้มเหลวกับมันไม่ได้พิสูจน์อะไรเกี่ยวกับการเชื่อมต่อที่ใช้อยู่ ให้ถือว่าเซิร์ฟเวอร์สาธารณะเป็นความสะดวกเมื่อมันทำงาน และถือว่าเซิร์ฟเวอร์ที่ควบคุมเอง (เครื่องที่สำนักงาน VPS หรือ Raspberry Pi ที่ปลายอีกด้านของการเชื่อมต่อ) เป็นการวัดที่แท้จริง
เส้นทางที่ง่ายกว่าสำหรับการทดสอบ Starlink
หากเหตุผลที่ต้องการ iPerf คือการทดสอบการเชื่อมต่อ Starlink Nexus Telemetry Pro มีไคลเอนต์ iPerf ในตัวในเครื่องมือวินิจฉัย: เลือกเซิร์ฟเวอร์ ตั้งพอร์ต ระยะเวลา และทิศทาง แล้วรันมันควบคู่ไปกับ ping, traceroute, DNS และการตรวจสอบพอร์ต โดยเก็บผลลัพธ์ล่าสุดไว้เปรียบเทียบ Pro ขับ iperf3 ที่ติดตั้งอยู่ในระบบ ดังนั้นให้ติดตั้งก่อนและตรวจให้แน่ใจว่าอยู่ใน PATH คำสั่ง winget ด้านบนทำทั้งสองอย่างในขั้นตอนเดียว จากนั้นผลลัพธ์จะลงในที่เดียวกับเทเลเมทรีที่เหลือของการเชื่อมต่อ เครื่องมือบรรทัดคำสั่งยังคงเป็นตัวเลือกที่เหมาะสมเมื่อควบคุมทั้งสองปลายเองและต้องการการรันที่เขียนสคริปต์และทำซ้ำได้
การเพิ่มเซิร์ฟเวอร์ iPerf ของตัวเอง
เพราะเซิร์ฟเวอร์สาธารณะเป็นส่วนที่เชื่อถือไม่ได้ Pro จึงให้เก็บรายการเซิร์ฟเวอร์ของตัวเองไว้ได้ เปิด Manage iPerf Servers และภายใต้ My Servers เพิ่มเซิร์ฟเวอร์หนึ่งพร้อมชื่อ โฮสต์ และพอร์ต เซิร์ฟเวอร์นั้นจะอยู่ในเมนูดรอปดาวน์สำหรับการทดสอบทุกครั้งในอนาคต เซิร์ฟเวอร์สาธารณะที่คัดสรรอยู่ด้านล่าง หลังสวิตช์และมีป้ายชัดเจนแสดงขีดจำกัด 60 วินาที ดังนั้นผลลัพธ์ที่ถูกจำกัดจึงไม่ถูกเข้าใจผิดว่าเป็นการเชื่อมต่อที่ช้า
จุดสำคัญหนึ่งที่กล่องโต้ตอบเตือน: iPerf รันโดยไม่มีการยืนยันตัวตนตามค่าเริ่มต้น ดังนั้นเซิร์ฟเวอร์ที่ปล่อยให้เข้าถึงได้บนอินเทอร์เน็ตแบบเปิดคือเซิร์ฟเวอร์ที่ใครก็ตามสามารถรันทราฟฟิกใส่ได้ ให้ตั้งไว้บน Tailscale (100.x.x.x) หรือ VPN แทน เพื่อให้เครือข่ายซ้อนทับจำกัดการเข้าถึงเฉพาะอุปกรณ์ของตัวเอง แล้วให้ที่อยู่นั้นกับ Pro แทนที่อยู่สาธารณะ
สรุปสั้นๆ
ดาวน์โหลดบิลด์จากบุคคลที่สามที่ได้รับการดูแลเป็นไฟล์ zip แตกไฟล์ไปยังโฟลเดอร์ และรัน iperf3 จากเทอร์มินัลในโฟลเดอร์นั้น โดยเพิ่มโฟลเดอร์ลงใน PATH เพื่อให้ทำงานได้ทุกที่ (และเพื่อให้ Nexus Telemetry Pro ค้นหาเจอ) ง่ายยิ่งกว่านั้น คำสั่งเดียวทำงานทั้งหมด รวมถึง PATH:
winget install -e --id ar51an.iPerf3
อนุญาตให้ผ่านไฟร์วอลล์ก่อนรันเป็นเซิร์ฟเวอร์ เก็บ DLL ไว้ข้างไฟล์ exe หลีกเลี่ยงการดาวน์โหลดที่ล้าสมัย และอย่าไว้ใจเซิร์ฟเวอร์สาธารณะ สำหรับการวินิจฉัย Starlink Pro ห่อ iperf3 เดียวกันไว้ในไคลเอนต์พร้อมตัวเลือกเซิร์ฟเวอร์และประวัติผลลัพธ์
ส่วนหนึ่งของ Starlink สำหรับช่างติดตั้งและมืออาชีพ Nexus Telemetry สร้างโดย Liquidbinary Ltd ทีมงานเบื้องหลังแพลตฟอร์มการจัดการ Starlink Enterprise ตัวแรก Pro ทำงานแบบเนทีฟบน Windows, macOS และ Linux พร้อมการทดลองใช้ฟรี