私は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
私がUNIXシステムについて知っていることからすると、これはパケット転送のルールに違いないと思いますか?つまり、パケットはインバウンドポート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の専門家はこの問題を診断するのに役立ちますか?
36 geoff 2013-05-19
これらのコマンドをroot
として実行して、例えば他のユーザのプロセスを表示する必要があります
sudo lsof -i ':80'
Mac OS Xには、apachectl
とroot
で制御できるApacheのWebサーバが含まれています。通常は launchd
で起動され、対応する設定ファイルは /System/Library/LaunchAgents/org.apache.httpd.plist
です。80番ポートで動いているのがこのApacheでなければ、おそらくlaunchdであり、Appleが実装したデーモンマネージャである。Wikipediaによると
launchd が起動時にジョブのplistをスキャンすると、それらのジョブによって要求された全てのポートを予約してリッスンします。plist に “OnDemand” キーが指定されている場合、デーモンは実際にはロードされません。むしろ、 launchd はポートをリッスンし、必要な時にはデーモンを起動し、必要でない時にはシャットダウンします。デーモンがロードされた後、 launchd はそれを追跡し、必要に応じて実行中であることを確認します
48 Daniel Beck 2013-05-21
ユーザーがこれを探している場合に備えて、実際の答えを明確にするためだけに
launchd は起動時に
/System/Library/LaunchDaemons/
をスキャンし、org.apache.httpd.plist
から apache の起動時に 80 番ポートを転送する必要があることを調べますsudo apachectl start
が行われましたしかし、
apachectl
コマンドでは報告されませんでしたが、httpd.conf
ファイルに誤りがありましたLaunchd は apache が起動していると思ったので、ポート 80 で聞くことにしました
しかし、任意のHTTPリクエストの内容は、直ちに接続を閉じる結果となりました
sudo lsof -i :80
は何の答えも出なかったsudo netstat -an | grep LISTEN
ではポート80に対する回答は得られませんでしたポート80が使用中またはリスニング中であることを示す診断ツールには、私が知る限りでは情報がありませんでした
apache の httpd.conf を修正し、httpd が ps テーブルにあるように apache を再起動すると、HTTP リクエストが成功するようになりました
そのため、apacheのconf自体が原因ではなく、ポート80で既に何かがリスニングしていたためにapacheを実行できなかったと勘違いしていました
8 geoff 2013-05-22
OSX El Capitan と Avast アンチウイルスで同じ問題に遭遇しました。sudo lsof -i ':80'
は avast.com への接続を示しました
me@destop ~|master$ sudo lsof -i ':80'
Password:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
com.avast 7964 root 58u IPv4 0xc4c1bba31fcc2c7f 0t0 TCP 192.168.100.111:52381->mia04-004.ff.avast.com:http (ESTABLISHED)
私がしなければならなかったことは
/Applications/Uninstall Avast.app
でAvastをアンインストールしますsudo rm -rf "/Library/Application Support/Avast" "/Applications/Avast Business Security.app" "/Applications/Uninstall Avast.app"
- restart
を使用して、ポート80を使用しないようにします
0 spyle 2017-08-04