พอร์ตเครือข่ายเปิด แต่ไม่มีกระบวนการเชื่อมต่อหรือไม่


22

ฉันมีสถานการณ์แปลก ๆ เกิดขึ้นกับพอร์ตเครือข่ายเปิด คำถามหลักของฉันคือทำไมจะไม่มีโปรแกรมที่เกี่ยวข้องกับพอร์ต TCP ที่เปิดอยู่:

netstat -ln --program
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      -  

สำหรับกรณีเฉพาะของฉันควรจะมีฟังก์ชั่น nrpe daemon (ติดตั้ง opsview) ที่พอร์ต 5666 แต่ไม่มี nrpe daemon กำลังทำงานอยู่ ถ้าฉันพยายามที่จะเริ่มมันออกทันที

lsof -i :5666ไม่แสดงผลลัพธ์ใด ๆ ไม่มี (x) inetd กำลังทำงานบนระบบของฉัน

UPDATE

ใช่ฉันใช้คำสั่งเหล่านั้นเป็นรูท Telnet สามารถทำได้ แต่ไม่เคยมีการตอบสนองใด ๆ

หลังจากการตรวจสอบเพิ่มเติมฉันพบข้อผิดพลาดของเคอร์เนลในdmesg: นี่เป็นอินสแตนซ์ของ EC2 (อันที่จริงหลายคน) ที่ใช้เคอร์เนลเก่า (2.6.16 เห็นได้ชัดว่าไม่แน่นอน) การแก้ไขที่จะหยุดความผิดพลาดคือการอัพเกรดเมล็ด

ดูเหมือนว่าเคอร์เนลที่ขัดข้องทำให้กระบวนการหายไปและเปิดพอร์ตทิ้งไว้


2
ผลลัพธ์ของ: lsof -i tcp: 5666 คืออะไร พอร์ตอยู่ที่นั่นเมื่อคุณรีบูตหรือไม่
Dave Drager

นี่เป็นการติดตั้งใหม่ของ NRPE หรือไม่
fpmurphy

คุณจำเป็นต้องเรียกใช้ netstat ในฐานะรูทเพื่อดูรายละเอียดของโปรแกรม
เริ่ม

อย่าลังเลที่จะเพิ่มคำตอบสำหรับคำถามของคุณเอง ...
rogerdpack

คำตอบ:


6

พอร์ตที่เปิดโดยเคอร์เนลจะไม่แสดงพร้อมชื่อโปรแกรม บางสิ่งที่ NFS และ OCFS อยู่ในใจ บางทีมันเป็นอย่างนั้น?

หรืออาจเป็นข้อผิดพลาดเคอร์เนล ตรวจสอบล็อกเคอร์เนลสำหรับ OOPS และ BUG


24

คุณใช้ netstat และ lsof เป็น root หรือ sudo หรือไม่? สังเกตเห็นคอลัมน์สุดท้าย:

netstat -ln --program
tcp        0      0 192.168.21.1:53         0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -

sudo netstat -ln --program
tcp        0      0 192.168.21.1:53         0.0.0.0:*               LISTEN      2566/named      
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      2566/named      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3125/sshd

จากหน้า netstat:

คุณจะต้องมีสิทธิ์ superuser เพื่อดูข้อมูลนี้ในซ็อกเก็ตที่คุณไม่ได้เป็นเจ้าของ

คุณจะรู้ได้อย่างไรว่าไม่มีคนวิ่ง? หากมีการใช้งานพอร์ตจะทำให้รู้สึกว่าจะออกทันทีโดยมีข้อผิดพลาด 'ซ็อกเก็ตที่ใช้งานอยู่' จะเกิดอะไรขึ้นเมื่อคุณเทลเน็ตไปยังพอร์ต

telnet localhost 5666

4

ดำเนินการ 'netstat --tcp --udp - listening - โปรแกรม' เป็นผู้ใช้รูท ฉลาดอื่น ๆ คุณมันจะไม่ให้ชื่อ PID / โปรแกรม

จากนั้นใช้คำสั่ง kill -9 PID


3

จริง ๆ แล้วฉันเขียนเชลล์สคริปต์ขนาดเล็กเพื่อช่วยให้ id คำถามเหล่านี้เป็นครั้งคราว:

#! /bin/bash
([ "$1" = "" ] || [ "$2" = "" ]) && echo "Usage: tracer <space> <port>" && exit 0
for i in `fuser -n $1 $2`
 do
  ps aux | grep $i | grep -v 'grep'
 done

บันทึกเป็น / usr / local / bin / tracer; เอาท์พุท:

root@mo-log:/usr/flows# tracer tcp 80
80/tcp:             
root     27904  0.0  0.0 111668  3292 ?        Ss   Aug04   0:03 /usr/sbin/apache2 -k start
www-data 32324  0.0  0.0 335332  3560 ?        Sl   Aug05   0:00 /usr/sbin/apache2 -k start
www-data 32327  0.0  0.0 335324  3560 ?        Sl   Aug05   0:00 /usr/sbin/apache2 -k start

คุณจะต้องมีสิทธิ์ใช้งานรูทเพื่อใช้งาน


ดี แต่ฉันต้องการมากกว่านี้ฉันต้องใช้มันสำหรับการเชื่อมต่อแต่ละครั้งใน netstat จากนั้นฉันสามารถระบุได้ว่าโปรแกรมใดกำลังทำอยู่ มันเป็นกล่องที่ไม่มี lsof / fstat หรือยูทิลิตี้ที่ดีอื่น ๆ และในฐานะที่เป็น root ฉันไม่สามารถติดตั้งได้เนื่องจากปัญหาอื่น ๆ
Aki

3

ฉันสามารถติดตามกระบวนการโดยใช้ inode ผ่านทาง netstat และใช้ inode นั้นด้วย lsof ดูรายละเอียดเพิ่มเติมคำตอบของฉันใน/server//a/847910/94376


2

บางครั้งโปรแกรมที่เกี่ยวข้องกับ NFS ไม่สามารถมองเห็นได้ในรายการโปรแกรม

นอกจากนี้โมดูล LDAP pam และการเชื่อมต่อแบบเปิด libnss_ldap ไปยังเซิร์ฟเวอร์ ldap แต่ไม่มีกระบวนการจริงที่เปิดการเชื่อมต่อไว้ดังนั้น netstat -tnp จะแสดงการเชื่อมต่อที่ใช้งานอยู่โดยไม่มีกระบวนการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.