ローカルネットワーク
macOSのファイアウォールが受信接続をブロックする
macOSのファイアウォールは、他のコンピュータからMacに対して開始される接続を制御します。アプリが開始する接続は制御しません。
症状
- 他のデバイスから、Mac上のサーバ、ゲーム、共有サービスに接続できない。
- 他のデバイスからのpingにMacが応答しない。
- 開発用サーバがMacでは動くのに、同じWi-Fiにつないだスマートフォンからは接続できない。
- アプリが受信ネットワーク接続を受け付けてよいか、macOSが確認してくる。
考えられる原因
- 「外部からの接続をすべてブロック」。Appleによると、このオプションは、必須ではないサービスと、その他すべての共有サービスへの接続をブロックします。
- 拒否されたアプリ。以前の確認で「拒否」をクリックしたか、ファイアウォールのオプションでそのアプリがブロックに設定されています。
- ステルスモード。Macはpingなどの探査要求に応答しません。
- サーバが127.0.0.1で待ち受けている。この場合、ファイアウォールの設定に関係なく、Mac自身からしか接続できません。
確認方法
アップルメニュー >「システム設定」>「ネットワーク」>「ファイアウォール」を選択します。ファイアウォールがオンかどうかを確認します。
「オプション」をクリックします。アプリの設定と「外部からの接続をすべてブロック」を確認します。
ターミナルでファイアウォールの状態を表示します。
/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate /usr/libexec/ApplicationFirewall/socketfilterfw --getblockall /usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmodeサーバが127.0.0.1だけでなく、すべてのアドレスで待ち受けていることを確認します。
lsof -nP -iTCP:8000 -sTCP:LISTEN
解決方法
共有やサーバが必要な場合は、ファイアウォールのオプションで「外部からの接続をすべてブロック」をオフにします。
追加ボタンをクリックしてアプリを選択し、受信接続を許可するように設定します。
「OK」をクリックします。もう一度、他のデバイスから接続をテストします。
ターミナルからアプリを許可することもできます。パスは対象のアプリに置き換えてください。
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/Example.app管理者パスワードが必要です。
ファイアウォールはオンのままにして、接続を受け付ける必要があるアプリだけを許可します。
Kilobatを使う場合
Kilobatのフィルタは、アプリが開始する接続を制御します。受信接続に対するmacOSのファイアウォールの代わりにはなりません。
サーバプロセスが開いているソケットを確認するには、destinationsコマンドを使います。
kilobat destinations --pid 12345
よくある質問
macOSのファイアウォールは送信接続をブロックしますか?
いいえ。Appleはこれを、他のコンピュータが開始する接続からの保護として説明しています。送信接続にはフィルタアプリを使ってください。
ステルスモードとは何ですか?
不明な送信元からのpingなどの探査要求に、Macが応答しなくなります。許可されたアプリへの要求は引き続き届きます。
出典
- Appleサポート:Macでファイアウォール設定を変更する
- Appleサポート:ファイアウォールを使ってMacへの接続をブロックする
- Appleプラットフォームのセキュリティ:アプリケーションファイアウォール
- socketfilterfw(8)、macOS 27.2に付属のmanページ
出典は2026年10月29日に確認しました。manページはmacOSに付属のものです。「ターミナル」でman <name>を実行すると開けます。