ในการทำงานประจำวันของฉัน ฉันจำเป็นต้องเรียกใช้ tcpdump บนเซิร์ฟเวอร์ระยะไกลอยู่บ่อยครั้ง และการบันทึกเอาต์พุตลงในไฟล์ก็เป็นเรื่องยุ่งยาก และจากนั้นก็ต้องย้ายไฟล์ไปยังแล็ปท็อปเพื่อวิเคราะห์บน wireshark
ฉันกำลังสำรวจคำสั่งด้านล่างและใช้งานได้ดีใน linux
ssh <remote_host> sudo tcpdump -vv -i eth0 -U -w - | ไวร์ชาร์ค -k -i -
แต่น่าเสียดายที่แล็ปท็อปสำหรับทำงานของฉันที่บริษัทจัดหาให้นั้นมีหน้าต่างอยู่ และพวกเขาไม่อนุญาตให้ฉันเปลี่ยนไปใช้ระบบปฏิบัติการอื่น ด้วยข้อจำกัดนี้ ฉันพยายามเพื่อให้ได้ผลลัพธ์เดียวกัน แต่ใน windows...
ถ้าฉันรันคำสั่งต่อไปนี้ใน windows ใน powershell
ssh <remote_host> sudo tcpdump -vv -i eth0 -U -w - | 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -
ฉันได้รับข้อผิดพลาดนี้
ที่บรรทัด:1 อักขระ:87
+ ... -i eth0 -U -w - | 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -
+ ~~
โทเค็น '-k' ที่ไม่คาดคิดในนิพจน์หรือคำสั่ง
ที่บรรทัด:1 อักขระ:44
+ ... -i eth0 -U -w - | 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
อนุญาตให้ใช้นิพจน์เป็นองค์ประกอบแรกของไปป์ไลน์เท่านั้น
ที่บรรทัด:1 อักขระ:90
+ ... -i eth0 -U -w - | 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -
+ ~~
โทเค็น '-i' ที่ไม่คาดคิดในนิพจน์หรือคำสั่ง
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : โทเค็นที่ไม่คาดคิด
หากฉันดำเนินการคำสั่ง wireshark โดยไม่มีส่วน ssh ฉันจะได้รับข้อผิดพลาดเดียวกัน แต่ถ้าฉันดำเนินการเช่นนี้
& 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -
มันเปิด wireshark และรอการป้อนข้อมูล ด้วยเหตุนี้ฉันจึงพยายามเปลี่ยนคำสั่งเป็น
ssh <remote_host> sudo tcpdump -vv -i eth0 -U -w - | & 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -
ด้วยวิธีนี้คำสั่ง ssh จะถูกดำเนินการและ tcpdump จะเริ่มต้นในรีโมตโฮสต์ wireshark จะไม่เริ่มทำงาน ผมทำอะไรผิดหรือเปล่า? เหตุใดคำสั่งไพพ์ที่คล้ายกับคำสั่งใน linux มากที่สุดจึงไม่ทำงานใน windows การไพพ์แตกต่างกันหรือไม่