ทั่วไป:
หลังจากค้นหาสองวันฉันได้ค้นหาเกี่ยวกับปัญหา ฉันพบเช่น Michael Hampton และ Peter Zhabin ว่าไม่มีวิธีแก้ปัญหาใดที่แสดงรหัสกระบวนการเคอร์เนลผ่านพอร์ตการฟัง
นอกจากนี้ในช่วงสองวันนั้นฉันค้นหาบางอย่างด้วย คำสั่ง
ชุดค่าผสมที่สามารถให้คำตอบที่ต้องการได้ และไม่พบวิธีที่ง่ายหรือสะดวกในการทำเช่นนี้
โซลูชันที่ฉันสร้างขึ้นเป็นโซลูชันเบื้องต้น และฉันมั่นใจว่าสมาชิกในชุมชนสามารถปรับปรุงได้
ส่วนลดสำหรับการค้นหากระบวนการ
- กระบวนการทำงานในระดับเคอร์เนลหรือระดับอื่น ๆ ที่หลีกเลี่ยงไม่ให้กระบวนการมีรหัส (PID)
- ไม่พบรหัสกระบวนการหรือโปรแกรมกระบวนการโดยเอาต์พุตของคำสั่งที่กำหนด:
ลซ
, เน็ตสแตท
, เอสเอส
, ฟิวเซอร์
.
- เราพบพอร์ตการฟังจากเอาต์พุตของคำสั่งด้านบน - แต่เราไม่สามารถกำหนดค่าโปรแกรมหรือ pid ที่ทำให้เกิดการฟังได้
เกี่ยวกับ เกรป
:
เราจะใช้ เกรป
เพื่อค้นหาข้อมูลเพิ่มเติมเกี่ยวกับพอร์ตที่เปิดอยู่
เกรป
- เส้นพิมพ์ที่ตรงกับรูปแบบ
จาก เกรป
เพจคนผ่านทาง ผู้ชายเกรป
สั่งการ.
คำอธิบาย
grep ค้นหารูปแบบในแต่ละไฟล์ รูปแบบเป็นหนึ่งหรือมากกว่า
รูปแบบที่คั่นด้วยอักขระขึ้นบรรทัดใหม่ และ grep จะพิมพ์แต่ละบรรทัด
ที่ตรงกับรูปแบบ โดยทั่วไปควรอ้างอิงรูปแบบเมื่อ grep
ใช้ในคำสั่งเชลล์
- ที่นี่ เป็นหัวข้อที่ดีในการใช้คำสั่งอย่างถูกต้องและมีประสิทธิภาพ
วิธีค้นหา PID หรือโปรแกรมที่ใช้พอร์ตที่กำหนดผ่านทาง เกรป
:
ในกรณีของฉันกำลังดำเนินการ sudo grep --exclude-dir={sys,proc} -rnw / -e 51820 | grep -i พอร์ต
แก้ไขปัญหาและแสดงข้อมูลการจัดสรรเกี่ยวกับโปรแกรมที่ใช้พอร์ต
ผลลัพธ์ที่กำหนด:
iptables.service:6:ExecStart=/usr/sbin/iptables -I INPUT -p udp --dport 51820 -j ยอมรับ
/home/username/wireguard-install.sh:238: read -p "พอร์ต [51820]:" พอร์ต
/home/username/wireguard-install.sh:241: read -p "พอร์ต [51820]:"
/home/username/wireguard-install.sh:243: [[ -z "$port" ]] && port="51820"
/usr/share/doc/netplan/examples/wireguard.yaml:9: พอร์ต: 51820
/etc/wireguard/wg0.conf:8:ListenPort = 51820
/etc/systemd/system/wg-iptables.service:6:ExecStart=/usr/sbin/iptables -I INPUT -p udp --dport 51820 -j ACCEPT
/etc/systemd/system/wg-iptables.service:10:ExecStop=/usr/sbin/iptables -D INPUT -p udp --dport 51820 -j ACCEPT
เหตุผลของการแฟล็กจำนวนมากคือชุดค่าผสมอื่น ๆ ที่ฉันได้ลองมีผลลัพธ์ที่ไม่ต้องการจำนวนมาก
ข้อโต้แย้งของอะไร เกรป
คำสั่งย่อมาจาก:
--exclude-ผบ
- ข้ามไดเร็กทอรีบรรทัดคำสั่งใด ๆ ที่มีคำต่อท้ายชื่อที่ตรงกัน
รูปแบบ.
และการเพิกเฉยอย่างเฉพาะเจาะจง ระบบ
และ โพรซี
ไดเรกทอรี ในกรณีเฉพาะของเรา คือการหลีกเลี่ยงเอาต์พุตที่ไม่ต้องการ
ตัวอย่าง: grep --exclude-dir={dir1,dir2}
จะหลีกเลี่ยง dir1 และ dir2 ระหว่างการค้นหา
-ร
หรือ -ร
เป็นแบบเรียกซ้ำ
-น
เป็นหมายเลขบรรทัด
-ว
ย่อมาจาก ตรงกันทั้งคำ
/
ย่อมาจากไดเร็กทอรี "สูงสุด" เพื่อเริ่มการค้นหาจากบนลงล่าง
-e
- เป็นรูปแบบที่ใช้ในการค้นหา
51820
ในกรณีเฉพาะของเราคือหมายเลขพอร์ตที่พบโดยหนึ่งในคำสั่งการตรวจสอบเครือข่ายด้านบน
|
- เป็นไพพ์สำหรับเปลี่ยนเส้นทางเอาต์พุตของส่วนคำสั่งแรกไปยังส่วนที่สอง
ในกรณีของเรา: การเปลี่ยนเส้นทาง sudo grep --exclude-dir={sys,proc} -rnw / -e 51820
ส่งออกไปยังคำสั่งถัดไป grep -i พอร์ต
-ผม
- ละเว้นความแตกต่างกรณีในรูปแบบและข้อมูลอินพุตเพื่อให้
ตัวอักษรที่แตกต่างกันเฉพาะในกรณีที่ตรงกัน
ท่า
- พบเพื่อจำกัดผลลัพธ์ให้แคบลงตามวัตถุประสงค์ที่เราดำเนินการค้นหา ค้นหาข้อมูลเพิ่มเติมเกี่ยวกับพอร์ตเฉพาะที่กำหนดไว้หลัง -e
ธง.
เคล็ดลับ:
- ทำการสแกนให้ใหญ่ที่สุดเท่าที่จะเป็นไปได้ในขั้นตอนแรกโดยเริ่มจาก
/
ไดเร็กทอรีและใช้แฟล็กขั้นต่ำเพื่อกรองเอาต์พุต เพื่อให้แน่ใจว่าคุณจะไม่พลาดรายละเอียดใดๆ ที่เราสามารถทำได้
- หลังจากค้นหาเอาต์พุตที่ต้องการหรือมีปัญหาในการค้นหาเอาต์พุตที่ต้องการซึ่งเกิดจากการจัดสรรเอาต์พุตที่ไม่ต้องการ ให้เริ่มเพิ่มแฟล็กทีละรายการ
- ระบุหมายเลขพอร์ตเป็นรูปแบบ หลังจากทั้งหมดนี้คือจุดเริ่มต้นและเป้าหมายสุดท้ายของเรา
- ใช้คู่
เกรป
คำสั่งเปลี่ยนทิศทางการสแกนครั้งแรกเป็น ท่า
ตัวกรองรูปแบบ มันสามารถระบุเราและเร่งการแก้ปัญหา หลังจากที่เรากำลังมองหาตัวเลขเป็นรูปแบบ ซึ่งอาจนำไปสู่ผลลัพธ์ที่ไม่ต้องการมากมาย
- หากคุณไม่สามารถหาข้อสรุปจากผลลัพธ์ที่กำหนดได้ ให้ค้นหาทางเว็บด้วยคำหลักที่คุณพบ