Saya menggunakan OSX Mountain Lion 10.8.3, dan saya baru saja mem-boot ulang Mac saya.
Saya ingin memulai layanan (seperti Apache pada port 80), tetapi sudah ada sesuatu yang terjadi dengan port 80:
telnet localhost 80
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Tunggu, saya mendengar Anda berkata, Anda dapat menemukannya dengan lsof atau netstat. Kecuali tidak ada apa pun di sana
netstat -an | grep LISTEN | grep '\.80'
*comes back blank*
lsof -i :80 | grep LISTEN
*comes back blank
Jadi dari apa yang saya ketahui tentang sistem unix, saya pikir ini harus menjadi aturan penerusan paket? Yaitu paket sedang diteruskan dari port masuk 80 ke sesuatu yang lain, yang mendengarkan layanan itu.
ipfw show
65535 0 0 allow ip from any to any
Hmm, tidak ada yang aneh di sana
pfctl -s nat
No ALTQ support in kernel
ALTQ related functions disabled
Tidak ada yang aneh di sana
Pertanyaan saya adalah, bagaimana saya bisa menampilkan aturan penerusan paket ... Di Linux saya mungkin hanya melakukan iptables -L -t NAT, atau iptables -L. Atau sebagai alternatif, dapatkah pakar OSX membantu saya mendiagnosis masalah ini?
lsof
grep Anda digunakan akan datang kosong kembali; nomor port dipetakan ke /etc/services
nama. Coba lsof -i | grep http
...
-i :port
format, hanya jika Anda mau. Apa yang akan menjadi masalah adalah yang lsof
membutuhkan root privs untuk melihat proses pengguna lain, jadi Anda harus menggunakan sudo lsof -i :80
(dan saya akan mencobanya tanpa grep
, hanya untuk memastikan ...)
lsof -i :80
saat masih terhubung di sesi Telnet itu? Dan selain mencoba http: // localhost / , mungkin mengetik sesuatu di prompt Telnet itu mengungkapkan sesuatu ...? (Sekali lagi, saya tahu: bahkan jika Anda mengetahuinya seperti itu, itu tidak akan menjadi jawaban untuk pertanyaan Anda ...)