コミュニティでの投票について

コミュニティでの投票について解説した記事を公開しました。

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

画面共有でスリープが解除されない

mbp から iMac に対して画面共有を仕掛ける際、 iMac がスリープをしていても

解除されて繋がっていたのが、解除されないようになりました。

どなたか似た症状の方はみえますでしょうか?


iMac : Leopard から Snow Leopard に upgrade

mbp : Snow Leopard


システム設定の共有設定にて[画面共有]にチェックを入れ、

省エネルギー設定にて[ネットワークアクセスによってスリープを解除]に

チェックを入れてあります。


当初はスリープが解除されていたので重宝していたのですが、暫くぶりに

使ってみたら解除されない様になっていました。設定を解除してから再度

チェックを入れて実行してみたり、 Command + Option + P + R で再起動してみたり

したのですが、改善していません。


スリープさえしていなければ画面共有自体は問題なく行えます。

また別環境の iMac ( Snow Leopard ) に対しては巧く作用しています。

( 正常にスリープが解除されます )


この症状になる前に設定をいじったかどうかについては定かではないのですが、

何か他の設定などが関係するものでしょうか?

何かご存じの方がみえればご教授下さい。

iMac, Mac OS X (10.6.8)

投稿日 2011/09/03 19:03

返信
返信: 21

2011/09/04 00:19 ni_ki への返信

失礼しました。漏れていましたが、IPは固定にしてあります。

iMac 側は有線で、 mbp 側は無線 / 有線、共に試行しましたが駄目でした。

IP を一時的にずらしても駄目、起きている時に接続する事は再度確認しましたが、そこからキーボードでスリープに入ってしまうとやはり接続できません。

ネットワークセグメントは単一です。


ソフトウェアアップデートはそれなりに当てているので、問題の起きない iMac との差異はさほどないと思っています。ハードウェアとしては世代が異なるのですが。


先ほどスイッチも疑って再起動してみましたが、やはり駄目でした。

別端末より magic packet を送ってみたところ復帰しましたので、 iMac 側のネットワーク関連での起動周りが全く駄目という訳ではない様です。


Mac での packet capture のスキルがないので、どういった流れで端末がスリープから復帰するのか把握できていないのですが、接続する mbp 側の問題なのでしょうか?

一度別の端末を用意して問題のある iMac に繋げないかは確認してみます。

2011/09/04 01:00 sgr への返信

こんにちは。


省エネルギー設定にて[ネットワークアクセスによってスリープを解除]の設定って、magic_packetでのdeep_sleep解除ですよね。


だからvncで単にアクセスしてもsleep解除はしないのが普通じゃないですか。


私はLeopardを入れたiBookG4(液晶レス、キーボードレス)をサーバにしてますが、deep_sleepしてた時はMagic_packetで起こしてからでないとvncで接続はできません。昔からそうです。


単に画面やHDDだけがsleepしててもCPUは動いているのであれば、vncでアクセスしたときにsleep解除したかのように見えるだけだと思いますが・・・・・「コンピュータがスリープするまでの待機時間」を「しない」にしてある場合だけだと思います。「しない」になってますか?



まぁ、、私もなんか勘違いしてるかもしれませんが・・・・・


ではでは。

2011/09/04 03:00 亀どん への返信

ありがとうございます。


Leopard までは wol をしなければならなかったのが Snow Leopard で改良された様です。

http://milhachi.blogspot.com/2009/09/snow-leopard.html


一定時間でスリープになる様になっておりますし、いつもキーボードでスリープ状態にしています。元々この状態でも問題なく解除されてたんですが、何がどうなったのやら。


iPhone で remote を導入してみて当該 iMac への接続も試した所、問題なくスリープが解除されました。

どうやって実現しているのか気になりますが、パケット取る為のリピータハブの持ち合わせがなく、分かりません。


packet capture について情報があったので一度取ってみましたが、あまりにも妙な結果となったところで電池切れに。また仕切り直して差異などあれば報告させていただきます。

http://support.apple.com/kb/HT3994

2011/09/04 23:40 sgr への返信

試してみました。


他の端末 : やはり問題の起きる端末では復帰してこず、他の端末については大丈夫でした。

パケット : Bonjour の関係で multicast packet が流れる以外は、一秒間隔で SYN 投げてるだけですね。


という所で、やはり接続側の問題ではなく、受け手の端末側に支障が起きているのかなと推測するのですが、行き詰まってしまいました。

他に情報があれば御願い致します。

2011/09/04 23:49 sgr への返信

スリープ解除したいiMacは有線ですよね。Magic Packetをスリープ解除行為のできないMacBook Proから送るとどうなるでしょうか。

Wake on Demamndの関係で無線LANだとOS Xが何を送るのか不明なので、可能で有ればWakeonLanなどのフリーウエアでMagic Packetを送ってみて下さい。


余談ですが、私のところではOS X Lionを唯一インストールしたMacBook Pro(Mid 2009)がMagic Packetでのスリープ解除が出来ませんでした。無線LANなので機種のせいなのかOSのせいなのか不明です。

2011/09/05 01:15 ni_ki への返信

ありがとうございます。


iMac が操作される側で、有線接続で固定 IP で、スリープすると解除されません。


mbp 側に MacPorts と wakeonlan 導入して、試してみました。問題のある iMac のスリープが解除されました。

今までの結果、画面共有.app が対象端末のスリープを解いている、という風ではなく、スリープをしている端末側の仕組みで起きるようになっている印象を受けます。この辺りを確かめるなら Snow Leopard 以降の画面共有をオンにしている端末に対して Leopard の画面共有.app で接続を試みた時にスリープが解除されるかを知りたいですが、現時点で Leopard の端末の手持ちがなく。


無線でのスリープ解除は最近の機能の様ですね。ハードウェア的な対応が必要の様で、対応の可否はシステムプロファイラで AirMac の項目に「ワイヤレス時にスリープを解除: 対応」となっているかで確認できるようですが、如何でしょう?

http://support.apple.com/kb/HT3774?viewlocale=ja_JP

2011/09/05 22:25 sgr への返信

こんにちは。


スリープをしている端末側の仕組みで起きるようになっている印象を受けます。


うーん、、、Wake on Demand、これってAirMacBasestationとの連携でやってるんじゃないですか? AirMac上で動いているBonjour Sleep Proxy がなんらかの方法で該当マシンをsleep解除するんじゃないですか?


私はふるいExpressなので、この機能は使えてないようです。(なので自分でMagicPacket出して意図的に起こすしかない)


なので、、もしかしたら端末の設定ではなく、AirMacBasestationの設定に関係があるような気がします、、がどうでしょう?


ではでは。

2011/09/05 22:33 sgr への返信

sgr さんによる書き込み:


mbp 側に MacPorts と wakeonlan 導入して、試してみました。問題のある iMac のスリープが解除されました。

今までの結果、画面共有.app が対象端末のスリープを解いている、という風ではなく、スリープをしている端末側の仕組みで起きるようになっている印象を受けます。

私のところでパケットをちらっとみると結局、ブロードキャストのパケットを送信しているようです。通常のWake on Lanとそれほど変わらないと思われます。ルータの方は動作が違うとは思いますが。

亀どん さんによる書き込み:


なので、、もしかしたら端末の設定ではなく、AirMacBasestationの設定に関係があるような気がします、、がどうでしょう?

Bonjour Sleep Proxyに直接関係がありそうな設定はないようです。

2011/09/06 09:43 ni_ki への返信

亀どんさん、ni_kiさん、ありがとうございます。


Wake on Demand の詳細が分かっていませんでした。AirMac Base Station か Time Capsule と連動して動くんですね。自分の周りには両方とも存在しません。

そんな環境でも一時期解除されていた事や、別ネットワーク ( こちらにも前述の二つは存在しない ) で解除される事については腑に落ちませんけれど。


私のところでパケットをちらっとみると結局、ブロードキャストのパケットを送信しているようです。通常のWake on Lanとそれほど変わらないと思われます。ルータの方は動作が違うとは思いますが。


そうですか。この違いはなんでしょうね?

こちらではパケットは画面共有.app を起動する mbp で取得しており、

sudo tcpdump -i en1 -s 0 -B 524288 -w ~/(以降path)

で仕掛けていますが、正常に解除・接続できるフローとしては


  1. 接続先 IP に関する ARP を実施。
  2. 何故か寝ている筈の iMac が ARP に応答。( この段階ではまだ起きてなさそう )
  3. 対象 IP ( & MAC address ) へ SYN 一秒間隔で 5 回以上送信。
  4. Multicast DNS で mbp 、 iMac がそれぞれ送り合う。
  5. その内 iMac が SYN + ACK


みたいな形で処理されてます。 mbp 側のキャプチャでも、他の端末でのキャプチャでも Magic Packet 的なものが捕捉できないのですが、 ni_ki さんの所では Magic Packet が捕捉できているという事ですね?


他の端末で取れないのは arp のキャッシュが影響して broadcast されないとかありうるのかな?と迷っているのですが、どうやって packet 見られてるか教えていただければ幸いです。


確かに Apple Sleep Proxy Service の wikipedia を見てみると sends (略) "magic packet" という箇所がありますし、何か存在しなければ起きないという事でしょうか。

http://en.wikipedia.org/wiki/Apple_Sleep_Proxy_Service_%28Bonjour_Sleep_Proxy%29

でもネットワーク構成上 Sleep Proxy Server を提供するデバイスが存在しない環境でもちゃんと起きる iMac が存在する経緯がどうにも分からず混乱してます。


再セットアップのスキルもないので、この機会に入れ直してみて復旧経験を得つつ、状況が変わるかどうかを確かめるのも手かと思うのですが。その場合、改善しちゃうと原因も分からず仕舞いですし、それ自体はもう少し先の方策かなと思ってます。

2011/09/06 21:55 sgr への返信

パケットキャプチャは不慣れなので、イマイチ自身がありませんが^^;

sgr さんによる書き込み:


Magic Packet が捕捉できているという事ですね?

スリープを解除したいMacのMACアドレスが16個並んでいるパケットがブロードキャストで送信されているようなので、それがMagic Packetかと思っております。


コマンドはsgr さんとまったく同じ

sudo tcpdump -i en1 -s 0 -B 524288 -w ~/(以降path)

これです。


WakeOnLanというフリーウェアと画面共有.appでスリープ解除を試したのですが、Magic Packetの送信元が微妙に違いました。WakeOnLanだとMacからMagic Packet送信して、先方をたたき起こすようですが、画面共有.appだとAirMac ExtremeがMagic Packetを送信しているようです。


MacBook Pro(Mid 2009)OS X10.7.1

Mac mini Server(Mid 2010)OS X10.6.8これがスリープ解除対象機。

AirMac Extreme(4th 世代)7.5.2

WakeOnLan(1.00ReadPixel)

2011/09/06 22:19 ni_ki への返信

> パケットキャプチャは不慣れなので、イマイチ自身がありませんが^^;


パケットキャプチャーの定番はWireShark です。MacOSX版もあります。これだと、キャプチャーしたパケットの簡潔な説明までしてくれますので分かり易いです。多分、magic packet ならそういう説明が入るのではないかと思います。


> WakeOnLanというフリーウェアと画面共有.appでスリープ解除を試したのですが、Magic Packetの送信元が微妙に違いました。、、、


画面共有で書かれてることは、まさに、Wake on Demand ですね。

2011/09/06 22:25 はに への返信

はに さんによる書き込み:


パケットキャプチャーの定番はWireShark です。MacOSX版もあります。これだと、キャプチャーしたパケットの簡潔な説明までしてくれますので分かり易いです。多分、magic packet ならそういう説明が入るのではないかと思います。

情報ありがとうございます。WireSharkは2回ほど過去に試したのですが、何故か運悪く稼働せずで、それ以来、鬼門あつかいです^^(恐らく試すタイミングが悪かった。)

> WakeOnLanというフリーウェアと画面共有.appでスリープ解除を試したのですが、Magic Packetの送信元が微妙に違いました。、、、


画面共有で書かれてることは、まさに、Wake on Demand ですね。

おお! なるほど、これがWake on Demandなのですね。初めてその動作を、この目で見た気がいたします^^

2011/09/07 00:43 ni_ki への返信

ni_kiさん、はにさん、ありがとうございました。


スリープを解除したいMacのMACアドレスが16個並んでいるパケットがブロードキャストで送信されているようなので、それがMagic Packetかと思っております。


間違いなく magic packet ですね。


パケットキャプチャーの定番はWireShark です。MacOSX版もあります。


あるんですね。ありがとうございます。tcpdumpで取ってwindows環境に持ってってwiresharkで見てました。早速導入してみます。


詰まるところ、


  • Wake on Demand でないと起きるのおかしい。
  • その為には MacAir Base Station or TimeCapsule が必要。


という所でしょうか。

でも昔は起きてたんですよ。もうそこだけに引き摺られてます。今でも起きる奴を孤立させて閉じた環境作って起きるかどうか&packet調査でもするしかないですかね。

2011/09/07 09:34 sgr への返信

> WireSharkは2回ほど過去に試したのですが、何故か運悪く稼働せずで、


X11上で動くので、X11がインストールされてないと動かないです。うちでは、10.6.8 上で WireShark 1.60 が動いてます。


> 今でも起きる奴を孤立させて閉じた環境作って起きるかどうか&packet調査でもするしかないですかね。


packet 調査をする時は、注意しないと、packet を取り込めないことがあります。ミラーポートを設定できるスイッチングハブもありますが、ポートを通過するpacket のうち、in/out どちらかのpacket しか取り込めないことがありますので、場合によっては刺し方を逆にする(packet の通る向きが逆になるようにさす)などしないと、全部のパケットをキャプチャーできません。調べたいホスト上でpacket キャプチャーをすればどちら向きのpacketでも捕捉できます。といっても、スリープしているホストでパケットキャプチャーは無理ですけど。

画面共有でスリープが解除されない

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。