ฉันใช้ OSX Mountain Lion 10.8.3 และฉันได้รีบูตเครื่อง Mac ใหม่
ฉันต้องการเริ่มบริการ (เช่น Apache บนพอร์ต 80) แต่มีบางอย่างเกิดขึ้นกับพอร์ต 80:
telnet localhost 80
Trying ::1...
Connected to localhost.
Escape character is '^]'.
เดี๋ยวก่อนฉันได้ยินคุณพูดแล้วคุณจะพบว่าด้วย lsof หรือ netstat ยกเว้นว่าไม่มีอะไรอยู่ที่นั่น
netstat -an | grep LISTEN | grep '\.80'
*comes back blank*
lsof -i :80 | grep LISTEN
*comes back blank
ดังนั้นจากสิ่งที่ฉันรู้เกี่ยวกับระบบยูนิกซ์ฉันคิดว่านี่ต้องเป็นกฎการส่งต่อแพ็คเก็ตหรือไม่ แพ็คเก็ต Ie กำลังถูกส่งต่อจากพอร์ตขาเข้า 80 ไปยังสิ่งอื่นซึ่งกำลังฟังบนบริการนั้น
ipfw show
65535 0 0 allow ip from any to any
อืมไม่มีอะไรผิดปกติที่นั่น
pfctl -s nat
No ALTQ support in kernel
ALTQ related functions disabled
ไม่มีอะไรผิดปกติที่นั่น
คำถามของฉันคือฉันจะแสดงกฎการส่งต่อแพ็คเก็ตได้อย่างไร ... บน Linux ฉันอาจทำ iptables -L -t NAT หรือ iptables -L หรืออีกวิธีหนึ่งผู้เชี่ยวชาญ OSX สามารถช่วยฉันวินิจฉัยปัญหานี้ได้หรือไม่
lsof
grep ที่คุณใช้จะมาว่างเปล่ากลับ หมายเลขพอร์ตถูกแมปกับ/etc/services
ชื่อ ลองlsof -i | grep http
...
-i :port
รูปแบบเฉพาะในกรณีที่คุณ grep สิ่งที่จะเป็นปัญหาคือlsof
ต้องใช้รูทส่วนตัวเพื่อดูกระบวนการของผู้ใช้คนอื่นดังนั้นคุณควรใช้sudo lsof -i :80
(และฉันจะลองโดยไม่ต้องgrep
ทำเพื่อให้แน่ใจว่า ... )
lsof -i :80
ขณะที่ยังเชื่อมต่ออยู่ในเซสชัน Telnet หรือไม่? และนอกเหนือจากการลองhttp: // localhost /แล้วอาจพิมพ์บางอย่างที่ Telnet prompt แสดงบางสิ่ง ... (อีกครั้งฉันรู้: แม้ว่าคุณจะคิดออกวิธีการที่มันจะไม่เป็นคำตอบให้กับคำถามของคุณ ... )