Wireshark เป็นเครื่องวิเคราะห์การรับส่งข้อมูลเครือข่ายหรือ "ดมกลิ่น" สำหรับ Linux, MacOS, *BSD และระบบปฏิบัติการ UNIX และ UNIX อื่น ๆ และสำหรับ Windows มันใช้ QT ซึ่งเป็นไลบรารีส่วนต่อประสานผู้ใช้กราฟิกและ LIBPCAP และ NPCAP เป็นการจับแพ็คเก็ตและไลบรารีการกรอง
การกระจาย Wireshark ยังมาพร้อมกับ Tshark ซึ่งเป็นดมานที่มุ่งเน้นเส้น (คล้ายกับ Sun's Snoop หรือ TCPDump) ที่ใช้การผ่าเดียวกัน โปรแกรมในการอ่านไฟล์จับภาพและเขียนแพ็คเก็ตจากไฟล์จับภาพนั้นอาจอยู่ในรูปแบบไฟล์จับภาพที่แตกต่างกันและด้วยแพ็กเก็ตบางตัวอาจถูกลบออกจากการจับภาพ
บ้านอย่างเป็นทางการของ Wireshark คือ https://www.wireshark.org
การกระจายล่าสุดสามารถพบได้ในไดเรกทอรีย่อย https://www.wireshark.org/download
โครงการ Wireshark สร้างและทดสอบเป็นประจำบนแพลตฟอร์มต่อไปนี้:
แพ็คเกจการติดตั้งอย่างเป็นทางการมีให้สำหรับ Microsoft Windows และ MacOS
มันมีให้เลือกทั้งแพ็คเกจมาตรฐานหรือเสริมสำหรับระบบปฏิบัติการยอดนิยมและการแจกแจง Linux รวมถึง Debian, Ubuntu, Fedora, Centos, Rhel, Arch, Gentoo, OpenSuse, FreeBSD, Dragonfly BSD, NetBSD และ OpenBSD
นอกจากนี้ยังมีให้บริการผ่านระบบบรรจุภัณฑ์ของบุคคลที่สามหลายระบบเช่น PKGSRC, OpenCSW, Homebrew และ MacPorts
มันควรทำงานบนระบบ UNIX-ISH อื่น ๆ โดยไม่มีปัญหามากเกินไป
ในบางกรณี Wireshark เวอร์ชันปัจจุบันอาจไม่รองรับระบบปฏิบัติการของคุณ นี่เป็นกรณีของ Windows XP ซึ่งรองรับโดย Wireshark 1.10 และก่อนหน้านี้ ในกรณีอื่น ๆ แพ็คเกจมาตรฐานสำหรับ Wireshark อาจจะเก่า นี่เป็นกรณีของ Solaris และ HP-UX
Python 3 เป็นสิ่งจำเป็นในการสร้าง Wireshark Asciidoctor จำเป็นต้องสร้างเอกสารรวมถึงหน้าผู้ชาย ต้องใช้ Perl และ Flex เพื่อสร้างซอร์สโค้ดบางส่วน
ดังนั้นคุณต้องติดตั้ง Python 3, Asciidoctor และ GNU "Flex" (Vanilla "Lex" จะไม่ทำงาน) ในระบบที่ขาดพวกเขา คุณอาจต้องติดตั้ง Perl เช่นกัน
คำแนะนำการติดตั้งแบบเต็มสามารถพบได้ในไฟล์ติดตั้งและในคู่มือนักพัฒนา
ดู Readme ที่เหมาะสม ไฟล์ OS สำหรับคำแนะนำการติดตั้งเฉพาะระบบปฏิบัติการ
ในการจับแพ็คเก็ตจากเครือข่ายคุณต้องทำให้โปรแกรม dumpcap set-uid เป็นรูทหรือคุณจำเป็นต้องเข้าถึงรายการที่เหมาะสมภายใต้ /dev
หากระบบของคุณมีความโน้มเอียง (ระบบที่ได้รับ BSD และระบบเช่น Solaris และ HP-UX ที่รองรับ DLPI โดยทั่วไปจะตกอยู่ในหมวดหมู่นี้) แม้ว่ามันอาจจะเป็นการล่อลวงที่จะทำให้ Wireshark และ Tshark Executables Root Setuid Root หรือเรียกใช้เป็นรูทโปรดอย่า กระบวนการจับภาพได้ถูกแยกใน dumpcap; โปรแกรมง่าย ๆ นี้มีโอกาสน้อยที่จะมีช่องโหว่ความปลอดภัยและปลอดภัยกว่าที่จะทำงานเป็นราก
โปรดปรึกษาหน้า MAN สำหรับคำอธิบายของแต่ละตัวเลือกบรรทัดคำสั่งและคุณสมบัติอินเตอร์เฟส
Wireshark สามารถอ่านแพ็กเก็ตจากจำนวนไฟล์ที่แตกต่างกัน ดูหน้า Wireshark Man หรือคู่มือผู้ใช้ Wireshark สำหรับรายการรูปแบบไฟล์ที่รองรับ
Wireshark สามารถอ่านไฟล์ใด ๆ ที่ถูกบีบอัดได้อย่างโปร่งใสหากมีการรวบรวมไลบรารีการบีบอัดที่ต้องการเมื่อ Wireshark ถูกรวบรวม รูปแบบการบีบอัดที่รองรับในปัจจุบันคือ:
GZIP และ LZ4 (เมื่อใช้บล็อกอิสระซึ่งเป็นค่าเริ่มต้น) รองรับการหาแบบสุ่มอย่างรวดเร็วซึ่งให้ประสิทธิภาพ GUI ที่ดีกว่ามากในไฟล์ขนาดใหญ่ รูปแบบการบีบอัดใด ๆ เหล่านี้สามารถปิดใช้งานได้ในเวลาที่รวบรวมโดยส่งตัวเลือกที่สอดคล้องกันไปยัง cmake, เช่น, cmake -DENABLE_ZLIB=OFF
, cmake -DENABLE_LZ4=OFF
, หรือ cmake -DENABLE_ZSTD=OFF
แม้ว่า Wireshark สามารถอ่านไฟล์ AIX iptrace ได้ แต่เอกสารเกี่ยวกับคำสั่ง iptrace Packet-Trace ของ AIX นั้นกระจัดกระจาย คำสั่ง iptrace
เริ่ม daemon ซึ่งคุณต้องฆ่าเพื่อหยุดการติดตาม จากการทดลองปรากฏว่าการส่งสัญญาณ HUP ไปยัง iptrace daemon นั้นทำให้เกิดการปิดตัวลงอย่างสง่างามและแพ็คเก็ตที่สมบูรณ์ถูกเขียนลงในไฟล์ Trace หากบันทึกแพ็คเก็ตบางส่วนในตอนท้าย Wireshark จะบ่นเมื่ออ่านไฟล์นั้น แต่คุณจะสามารถอ่านแพ็กเก็ตอื่น ๆ ทั้งหมดได้ หากสิ่งนี้เกิดขึ้นโปรดแจ้งให้ผู้พัฒนา Wireshark ทราบที่ [email protected]; ตรวจสอบให้แน่ใจว่าได้ส่งสำเนาไฟล์ติดตามนั้นมาให้เราหากมีขนาดเล็กและมีข้อมูลที่ไม่ไวต่อความรู้สึก
การสนับสนุนผลิตภัณฑ์ Lucent/Ascend นั้น จำกัด เฉพาะเอาต์พุต Debug Trace ที่สร้างขึ้นโดยผลิตภัณฑ์ Max และ Pipline Wireshark สามารถอ่านเอาต์พุตของ wandsession
, wandisplay
, wannext
และคำสั่ง wdd
Wireshark ยังสามารถอ่านเอาท์พุทการถ่ายโอนข้อมูลการถ่ายโอนข้อมูลจากสายเราเตอร์ "เราเตอร์ขนาดกะทัดรัด" ของเราเตอร์ ISDN (TR-600 และ TR-650) คุณสามารถ telnet ไปที่เราเตอร์และเริ่มเซสชันการถ่ายโอนข้อมูลด้วย snoop dump
Cosine L2 Debug สามารถอ่านได้โดย Wireshark ในการรับเอาต์พุต DEBUG L2 เข้าสู่โหมด Diags ก่อนจากนั้นใช้ create-pkt-log-profile
และคำ apply-pkt-lozg-profile
ภายใต้หมวดหมู่ Layer-2 สำหรับรายละเอียดเพิ่มเติมว่าจะใช้คำสั่งเหล่านี้ได้อย่างไรคุณควรตรวจสอบคำสั่งช่วยเหลือโดย layer-2 create ?
หรือ layer-2 apply ?
-
ในการใช้ Lucent/Ascend, Toshiba และ Cosine Traces กับ Wireshark คุณต้องจับภาพร่องรอยไปยังไฟล์บนดิสก์ การติดตามกำลังเกิดขึ้นภายในเราเตอร์และเราเตอร์ไม่มีวิธีบันทึกการติดตามไปยังไฟล์สำหรับคุณ วิธีที่ง่ายในการทำสิ่งนี้ภายใต้ UNIX คือการเรียกใช้ telnet <ascend> | tee <outfile>
หรือหากระบบของคุณติดตั้งคำสั่ง "สคริปต์" คุณสามารถบันทึกเซสชันเชลล์รวมถึง telnet ไปยังไฟล์ ตัวอย่างเช่นการบันทึกไปยังไฟล์ชื่อ TraceFile.out:
$ script tracefile.out
Script started on <date/time>
$ telnet router
..... do your trace, then exit from the router's telnet session.
$ exit
Script done on <date/time>
Wireshark จะพยายามใช้ความสามารถในการแก้ไขชื่อย้อนกลับเมื่อถอดรหัสแพ็คเก็ต IPv4 และ IPv6
หากคุณต้องการปิดความละเอียดของชื่อในขณะที่ใช้ Wireshark ให้เริ่ม Wireshark ด้วยตัวเลือก -n
เพื่อปิดการแก้ไขชื่อทั้งหมด (รวมถึงความละเอียดของที่อยู่ MAC และหมายเลขพอร์ต TCP/UDP/SMTP เป็นชื่อ) หรือกับตัวเลือก -N mt
ถึง ปิดการแก้ไขชื่อสำหรับที่อยู่เครือข่ายเลเยอร์ทั้งหมด (IPv4, IPv6, IPX)
คุณสามารถทำให้การตั้งค่าเริ่มต้นโดยการเปิดกล่องโต้ตอบการตั้งค่าโดยใช้รายการการตั้งค่าในเมนูแก้ไขเลือก "ความละเอียดชื่อ" ปิดตัวเลือกความละเอียดชื่อที่เหมาะสมและคลิก "ตกลง"
Wireshark สามารถทำการถอดรหัสแพ็คเก็ต SNMP ขั้นพื้นฐานได้ นอกจากนี้ยังสามารถใช้ไลบรารี LIBSMI เพื่อทำการถอดรหัสที่ซับซ้อนมากขึ้นโดยการอ่านไฟล์ MIB และใช้ข้อมูลในไฟล์เหล่านั้นเพื่อแสดง OIDs และค่าที่มีผลผูกพันตัวแปรในแฟชั่นที่เป็นมิตร CMAKE จะพิจารณาโดยอัตโนมัติว่าคุณมีไลบรารี LIBSMI ในระบบของคุณหรือไม่ หากคุณมีไลบรารี libsmi แต่ ไม่ ต้องการให้ Wireshark ใช้งานคุณสามารถเรียกใช้ cmake ด้วยตัวเลือก -DENABLE_SMI=OFF
Wireshark อยู่ระหว่างการพัฒนาอย่างต่อเนื่องดังนั้นจึงเป็นไปได้ที่คุณจะพบข้อผิดพลาดในขณะที่ใช้งาน โปรดรายงานข้อบกพร่องที่ https://gitlab.com/wireshark/wireshark/-/issues ให้แน่ใจว่าคุณเข้าสู่ข้อผิดพลาด:
ข้อมูลการสร้างที่สมบูรณ์จากรายการ "เกี่ยวกับ wireshark" ในเมนูช่วยเหลือหรือผลลัพธ์ของ wireshark -v
สำหรับข้อบกพร่อง wireshark และผลลัพธ์ของ tshark -v
สำหรับข้อบกพร่อง tshark;
หากข้อผิดพลาดเกิดขึ้นบน Linux การแจกแจง Linux ที่คุณใช้และเวอร์ชันของการแจกแจงนั้น
คำสั่งที่คุณใช้ในการเรียกใช้ Wireshark ถ้าคุณวิ่ง Wireshark จากบรรทัดคำสั่งหรือ tshark ถ้าคุณวิ่ง tshark และลำดับการดำเนินการที่คุณทำซึ่งทำให้เกิดข้อผิดพลาดปรากฏขึ้น
หากข้อผิดพลาดถูกสร้างขึ้นโดยไฟล์ร่องรอยเฉพาะโปรดระบุให้แน่ใจว่าได้แนบไปกับไฟล์ Bug A Trace พร้อมกับคำอธิบายข้อผิดพลาดของคุณ หากไฟล์ติดตามมีข้อมูลที่ละเอียดอ่อน (เช่นรหัสผ่าน) โปรดอย่าส่ง
หาก Wireshark เสียชีวิตกับคุณด้วย 'การละเมิดการแบ่งส่วน', 'ข้อผิดพลาดของรถบัส', 'ยกเลิก' หรือข้อผิดพลาดอื่น ๆ ที่สร้างไฟล์ Unix Core Dump คุณสามารถช่วยนักพัฒนาได้มากหากคุณติดตั้งดีบักเกอร์ สามารถติดตามสแต็กได้โดยใช้ดีบักเกอร์ของคุณ ('GDB' ในตัวอย่างนี้), ไบนารี Wireshark และไฟล์หลักที่เกิดขึ้น นี่คือตัวอย่างของวิธีการใช้คำสั่ง gdb 'backtrace' เพื่อทำเช่นนั้น
$ gdb wireshark core
(gdb) backtrace
..... prints the stack trace
(gdb) quit
$
ไฟล์ Core Dump อาจมีชื่อว่า "wireshark.core" มากกว่า "core" ในบางแพลตฟอร์ม (เช่นระบบ BSD) หากคุณมีการถ่ายโอนข้อมูลหลักกับ tshark มากกว่า wireshark ให้ใช้ "tshark" เป็นอาร์กิวเมนต์แรกของดีบักเกอร์; การถ่ายโอนข้อมูลหลักอาจมีชื่อว่า "tshark.core"
Wireshark กระจายอยู่ภายใต้ GNU GPLV2 ดูไฟล์คัดลอกสำหรับข้อความเต็มของใบอนุญาต เมื่อมีข้อสงสัยข้อความเต็มคือส่วนที่มีผลผูกพันตามกฎหมาย บันทึกเหล่านี้เป็นเพียงเพื่อให้ง่ายขึ้นสำหรับคนที่ไม่คุ้นเคยกับ GPLV2
ไม่มีข้อ จำกัด ในการใช้งาน มีข้อ จำกัด เกี่ยวกับการกระจายในรูปแบบแหล่งที่มาหรือไบนารี
ส่วนใหญ่ของ Wireshark ได้รับการคุ้มครองโดยใบอนุญาต "GPL เวอร์ชัน 2 หรือใหม่กว่า" ไฟล์บางไฟล์ถูกปกคลุมด้วยใบอนุญาตที่แตกต่างกันซึ่งเข้ากันได้กับ GPLV2
เป็นข้อยกเว้นที่น่าสังเกตสาธารณูปโภคบางแห่งที่แจกจ่ายด้วยแหล่ง Wireshark ได้รับการคุ้มครองโดยใบอนุญาตอื่น ๆ ที่ไม่เข้ากันได้โดยตรงกับ GPLV2 นี่ก็โอเคเนื่องจากมีเพียงเครื่องมือเท่านั้นที่ได้รับใบอนุญาตด้วยวิธีนี้ผลผลิตของเครื่องมือจึงไม่ถือว่าเป็นงานที่ได้รับและสามารถได้รับใบอนุญาตอย่างปลอดภัยสำหรับการใช้งานของ Wireshark การเลือกเครื่องมือเหล่านี้ไม่สมบูรณ์รวมถึง:
บางส่วนของ Wireshark สามารถสร้างและแจกจ่ายเป็นห้องสมุด ชิ้นส่วนเหล่านี้ยังคงครอบคลุมโดย GPL และไม่ใช่ใบอนุญาตสาธารณะทั่วไปที่น้อยกว่าหรือใบอนุญาตอื่น ๆ
หากคุณรวม Wireshark ทั้งหมดหรือบางส่วนลงในแอปพลิเคชันของคุณเองและคุณเลือกที่จะเผยแพร่หรือปล่อยมันจากนั้นงานรวมจะต้องได้รับการปล่อยตัวภายใต้ข้อกำหนดของ GPLV2
ไม่มีการรับประกันแสดงหรือบอกเป็นนัยเกี่ยวข้องกับผลิตภัณฑ์นี้ ใช้ความเสี่ยงของคุณเอง
Gerald Combs [email protected]
gilbert ramirez [email protected]
Guy Harris [email protected]