MacのFirewallがデスクトップ共有をブロックしてしまったときの対処法
Mac OSXにはWindowsと同様、標準でFirewallが搭載されていて、基本的に全ての外部からの接続を拒否します。
ただ、sshやデスクトップ共有などのサービスを有効にすると、それに必要なポートは自動的に開けてくれます。
自動的に開けてくれるはずなのですが、デスクトップ共有については非常に怪しい挙動をします。
サービスは有効にしているのに、ポートはブロックされたままで接続できないことがよく発生します。
そんな時にはまらないための対処法を紹介します。
前置き
まず、別に接続できなくなっても直接操作すればいいじゃない、という突っ込みの言い訳をしておきます。
自分は、Mac miniをサーバ(このblogをホスティングしている)として運用しています。
このMac miniには、ディスプレイもキーボードもマウスもつないでいません。
なので、操作するときは基本的にsshで接続しています。
ただ、OSのアップデート作業などはデスクトップ接続せざるを得ないので、その時デスクトップ共有が必要になります。
仕掛け
要は、sshでFirewallを一時的に無効にするだけです。
Firewallを無効にするにはsshで接続して、以下のコマンドを実行します。
[code]
sudo /usr/libexec/ApplicationFirewall/socketfilterfw –setglobalstate off
[/code]
逆に有効に戻す時は以下のコマンドオプションになります。
[code]
sudo /usr/libexec/ApplicationFirewall/socketfilterfw –setglobalstate on
[/code]
また、以下のように -l オブションをつけると、現在のアクセス制御設定などが表示されます。
[code]
sudo /usr/libexec/ApplicationFirewall/socketfilterfw -l
[/code]
これで確認すると、
[code]
TRUSTEDAPPS AppleVNCServer
[/code]
と、デスクトップ共有のためのVNCサーバが信頼するアプリとして登録されているんですがね。
なんで接続できなくなるのか。
まとめ
- Firewallは、socketfilterfwコマンドで操作できる
- Appleさん、この怪しい挙動早くなんとかして
Leave a comment