# lsof -n -itcp | wc
92 919 10212
# lsof -n | grep TCP | wc
2482 27222 373861
สิ่งที่ฉันทำผิดพลาดกับlsof -itcp
? การโทรดังกล่าวกำลังข้ามส่วนหนึ่งของการเชื่อมต่อดูเหมือนว่านี่เป็นการเชื่อมต่อของเธรด
# lsof -n -itcp | wc
92 919 10212
# lsof -n | grep TCP | wc
2482 27222 373861
สิ่งที่ฉันทำผิดพลาดกับlsof -itcp
? การโทรดังกล่าวกำลังข้ามส่วนหนึ่งของการเชื่อมต่อดูเหมือนว่านี่เป็นการเชื่อมต่อของเธรด
คำตอบ:
ไวยากรณ์ที่ถูกต้องคือ:
lsof -a -i4 -i6 -itcp
ค่านี้เลือกซ็อกเก็ต TCP ที่เป็น IPv4 หรือ IPv6
ลองดูที่เอาต์พุตทั้งสอง นี่คือตัวอย่างจากระบบของฉัน
lsof -n -itcp | head -4
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rpcbind 1509 root 8u IPv4 9013 0t0 TCP *:sunrpc (LISTEN)
rpcbind 1509 root 11u IPv6 9016 0t0 TCP *:sunrpc (LISTEN)
rpc.statd 1537 statd 8u IPv4 10059 0t0 TCP *:36035 (LISTEN)
lsof -n | grep TCP | head -4
rpcbind 1509 root 8u IPv4 9013 0t0 TCP *:sunrpc (LISTEN)
rpcbind 1509 root 11u IPv6 9016 0t0 TCP *:sunrpc (LISTEN)
rpc.statd 1537 statd 8u IPv4 10059 0t0 TCP *:36035 (LISTEN)
rpc.statd 1537 statd 10u IPv6 10063 0t0 TCP *:45203 (LISTEN)
การตรวจอย่างรวดเร็วแสดงให้เห็นว่ามีความแตกต่างที่ชัดเจนเพียงอย่างเดียวคือช่องว่าง สามารถเปรียบเทียบได้ง่ายพอที่จะค้นหาความแตกต่างที่แท้จริง:
lsof -n -itcp | sort >1
lsof -n | grep TCP | sort >2
diff -wu 1 2 | grep '^[+-]'
--- 1 2015-10-13 20:43:12.588658249 +0100
+++ 2 2015-10-13 20:43:18.272678740 +0100
-COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
+dconf 3618 3634 roaima 11u IPv6 12705 0t0 TCP [::1]:45177->[::1]:6010 (ESTABLISHED)
+gdbus 3632 3633 roaima 5u IPv6 14008 0t0 TCP [::1]:45179->[::1]:6010 (ESTABLISHED)
+virt-mana 3618 3636 roaima 11u IPv6 12705 0t0 TCP [::1]:45177->[::1]:6010 (ESTABLISHED)
+virt-mana 3618 3645 roaima 11u IPv6 12705 0t0 TCP [::1]:45177->[::1]:6010 (ESTABLISHED)
จากผลลัพธ์นี้ฉันขอแนะนำว่าความแตกต่างในกรณีของฉันคือปริมาณการใช้งาน IPv6 คุณอาจต้องการตรวจสอบสถานการณ์ของคุณเอง แต่ฉันคิดว่ามันเหมือนกัน
-a
สิ่งนี้ลงในและพวกเขา