ปัญหา: มีบางอย่างกำลังฟังบนพอร์ต 8080
- หากฉันโหลดหน้าเว็บด้วย Safari ฉันจะได้หน้าว่าง (หน้าเป็นสีขาว แต่ "พัฒนา→แสดงที่มาของหน้า" เป็นสีเทา)
ถ้าฉันโทรไปที่พอร์ต 8080 ฉันจะได้รับคำตอบบางอย่าง
$ telnet 127.0.0.1 8080 Trying 127.0.0.1... Connected to localhost (127.0.0.1). Escape character is '^]'.
แต่
lsof
ไม่แสดงการรับฟังกระบวนการใด ๆ บนพอร์ต 8080$ sudo lsof -iTCP -sTCP:LISTEN -P -n | grep 8080 $
netstat
ไม่แสดงกระบวนการใด ๆ โดยใช้พอร์ต 8080$ netstat -n | grep 8080 $
ฉันสามารถเปิดพอร์ต 8080 โดยทางโปรแกรม (เช่นกับเว็บเซิร์ฟเวอร์) โดยไม่มีข้อผิดพลาดเกี่ยวกับพอร์ตที่ใช้งานอยู่
nmap
ไม่แสดงรายการพอร์ตตามที่ใช้sudo nmap 127.0.0.1 Starting Nmap 6.01 ( http://nmap.org ) at 2012-10-03 16:16 CEST Nmap scan report for localhost (127.0.0.1) Host is up (0.000081s latency). Not shown: 990 closed ports PORT STATE SERVICE 22/tcp open ssh 631/tcp open ipp 1023/tcp open netvenuechat 3283/tcp open netassistant 3306/tcp open mysql 3689/tcp open rendezvous 5001/tcp open commplex-link 5003/tcp open filemaker 5432/tcp open postgresql 50003/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 10.92 seconds
สิ่งเดียวกันนี้เกิดขึ้นกับพอร์ต 80 แต่ไม่ใช่สำหรับพอร์ตอื่น (เช่น 81 หรือ 8081)
คำถามกระบวนการใดที่ตอบพอร์ตนี้เมื่อไม่มีกระบวนการอื่นเปิดอยู่ จุดประสงค์ของพฤติกรรมนี้คืออะไร
แก้ไข
ถ้าฉันเปิดพอร์ตด้วยโปรแกรมพอร์ตนั้นจะสามารถใช้งานได้ตามปกติ เมื่อพอร์ตถูกปิดพฤติกรรมที่แปลกประหลาดจะปรากฏขึ้นอีกครั้ง ตัวอย่าง:
- การเข้าถึงพอร์ต 8080 ให้การเชื่อมต่อกับกระบวนการที่ไม่รู้จัก
- ฉันเปิดพอร์ตด้วยโพง
- เข้าถึงพอร์ต 8080 ไปที่โพงและทุกอย่างก็โอเค
- ฉันปิดพอร์ต (ออกจาก tomcat)
- พอร์ตถูกแสดงรายการเป็นไม่ได้ใช้ (ดูด้านบน)
- การเข้าถึงพอร์ต 8080 ให้การเชื่อมต่อกับกระบวนการที่ไม่รู้จัก
กฎไฟร์วอลล์แสดงให้เห็นว่าพอร์ตไม่ได้ถูกบล็อก
$ sudo ipfw show 00001 926004 100891783 allow ip from me to any dst-port 80,8080,3128,5001,5003,443 65535 125057043 94341114828 allow ip from any to any
แก้ไข 2
- โปรแกรมฟังไม่ใช่เซิร์ฟเวอร์ HTTP (เช่นไม่ตอบสนองต่อ
GET index.html HTTP/1.0
คำขอ