【画面共有】imacに外部からアクセス

f:id:yafiiiii:20190627115149p:plain
家にあるimacをどうにか出先でも使えたらなと思い画面共有を用いてクラウド化した。 スリープ状態から復帰させるところでちょっと詰まった。

目次

ゴール

外出先のmacbookから家のimacの画面を共有する。

環境

ネック

調べた結果ネックになるのは、

  • ローカルエリア内ではないのでアクセスが難しい。
  • macがスリープ状態の場合の画面共有できない。
    の2点。
    解決方法としては、

  • ルーターの設定をする。

  • wol(wake on lan )を使ってmacのスリープを解除する。
    というのが良さそうだった。

実践

実際の手順

localエリア内で画面共有してみよう!

macには画面共有という機能があって、localエリア内であればなんとなくでもできると思うので以下のページを参考にやってみる。

pc-karuma.net

参考通りにやってみると普通にできると思う。
そこで次のステップとしてimacがスリープ中に画面共有してみると、、できない!
調べてみるとスリープ中に画面共有をするときは省電力メニューから「ネットワークアクセスによるスリープ解除」にチェックをいれるとできるようになるらしいのだけど、全然スリープ解除されない!wolというのを設定しようとしたけど挫折。。仕方がないので省電力の「コンピューターのスリープ」をしない設定にしておく。

ルーターの設定をしよう!

まずはルーターに接続するところから。多くのルーターはネットに繋げた状態で192.168.1.1か192.168.0.1をurl欄に入れると接続できるらしい。そこから後の認証はルーターによるのでメーカーページ参照。ルーターの型番を調べるのが一番早いと思う。 wanから接続するためには以下の二つを設定する。
* ルーターの特定のポートにアクセスがあった場合そのアクセスを特定のlocalのipアドレスに振り分ける。
* ローカルのipアドレスMACアドレスを紐づける。

ポートフォワードを設定する。

この振り分けの設定はルーターの会社?プロバイダ?によってちょこちょこ違うようで混乱した。ポートフォワード、転送設定、ポートマッピングとか。 今回は外部portを9、内部portを5900として設定する。

ポートフォワード
ポートフォワード

ちなみに変なポートを解放しちゃうと玄関あけっぱで泥棒に入られるので危ないかも。詳しくは以下参照。

ポート番号 一覧 危険な ポート番号 閉じておいた方が良い ポート番号 - Windows & IT Tips
内部ポートの5900はmacosで指定されている画面共有用のportらしいけどこれも広まっているようなので心配な人はmac側で5900以外に変更した上で使うと良い。詳しくは以下参照。

www.padmacolors.org

ローカルのipアドレスMACアドレスを紐づける。

これもいくつか名称があった。DHCPスタティックとか静的マスカレードとか。
おもしろインターネット活用講座 <DHCPって何?> DHCPサーバーが動的にipアドレスをハードに割り当てているらしい。よって何かの拍子に、ipアドレスMACアドレスの紐付けが変わってしまうのを防ぐために固定しておく必要がある。

DHCP割り当て
DHCP割り当て
  

外から画面共有してみよう!

画面共有.appをdockに固定しておくと便利。あとはグローバルipアドレスを調べて設定した外部ポートを入れるだけ!ちなみにグローバルipアドレスは以下のリンクで簡単にわかる。

www.cman.jp

000.00.000.00:9

画面共有外からできた!!!

おわり

  • 間違ってる。
  • 解釈違ってる。
  • こうすればいいんじゃないの。
  • セキュリティ的に致命的な部分がある。
  • ここもっと詳しく!
    的なの待ってます。 スリープさせておきたいなぁ。

問題とかメモ

どうにかスリープモードから起動させたい。 * wolwindowsならwol用の設定があってスリープから復帰できるようだった。けどmacにはない。 * macosはwake on demandという独自wol?があるけどそれならスリープから復帰できるみたい。appleTvやAirmacなど中継機が必要。 * 画面共有で使ってるportは5900だけどwakeondemandで使ってるportにpacket送れれば復帰できるかも?そんな簡単な話じゃない気もする。 * ↓このコマンドで電源周りの設定が確認できる。macハイバネーション(スリープのモード?)はあんまり関係なさそう。けどバッテリーが消耗してるときは設定すると良さそう。

 $ pmset -g
  • 今回自分の使用しているルーターは192.168.1.255のブロードキャストが使えなかったけど使えればいける?
  • そもそもwifiが繋がってないからスリープ中にパケットが届いてない?パケット解析ソフトのwiresharkで調べたところlocal環境で実行したwolはブロードキャストはされてるみたい。
    wakeonlan-packet
    wakeonlan-packet

今回は悲しくも動かなかったwakeonlanについて。

wakeonlanを使ってみよう!

wakeonlanとは?

wakeonlanとはほとんどのpcに組み込まれている(らしい)Magic Packetというパケットを固定のMACアドレス(デバイスの識別番号のようなもの)に送ることでpcをスリープから起こすことができる技術!

インストール

このページを見ながら外側のmacbookのターミナルからbrewでインストール。mac以外のlinuxwindowsでは別の設定方法になるため注意。

ruzia.hateblo.jp

wolでスリープ解除してみよう!

 家側imacをスリープ状態にして、外側macのターミナルからwolコマンド! ※00:00:00:00 は家側のimacMACアドレス。今回はlocalエリア内なのでport指定とかのオプションはつけずMACアドレスだけ入れる。

$ wol 00:00:00:00

何秒かかかることもあるけど家側imacがふおーんって起動したらok。画面はスリープしたままだから真っ暗。 起動が確認できたらそのまま画面共有をしてみてできればおっけー。 pcをスリープさせた直後ならできるんだけどなぁ。