ทั่วไป:
หลังจากค้นหาสองวันฉันได้ค้นหาเกี่ยวกับปัญหา ฉันพบเช่น 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 ธง.
เคล็ดลับ:
- ทำการสแกนให้ใหญ่ที่สุดเท่าที่จะเป็นไปได้ในขั้นตอนแรกโดยเริ่มจาก
/ ไดเร็กทอรีและใช้แฟล็กขั้นต่ำเพื่อกรองเอาต์พุต เพื่อให้แน่ใจว่าคุณจะไม่พลาดรายละเอียดใดๆ ที่เราสามารถทำได้
- หลังจากค้นหาเอาต์พุตที่ต้องการหรือมีปัญหาในการค้นหาเอาต์พุตที่ต้องการซึ่งเกิดจากการจัดสรรเอาต์พุตที่ไม่ต้องการ ให้เริ่มเพิ่มแฟล็กทีละรายการ
- ระบุหมายเลขพอร์ตเป็นรูปแบบ หลังจากทั้งหมดนี้คือจุดเริ่มต้นและเป้าหมายสุดท้ายของเรา
- ใช้คู่
เกรป คำสั่งเปลี่ยนทิศทางการสแกนครั้งแรกเป็น ท่า ตัวกรองรูปแบบ มันสามารถระบุเราและเร่งการแก้ปัญหา หลังจากที่เรากำลังมองหาตัวเลขเป็นรูปแบบ ซึ่งอาจนำไปสู่ผลลัพธ์ที่ไม่ต้องการมากมาย
- หากคุณไม่สามารถหาข้อสรุปจากผลลัพธ์ที่กำหนดได้ ให้ค้นหาทางเว็บด้วยคำหลักที่คุณพบ