LoginSignup
0
1

More than 3 years have passed since last update.

【2019年12月版】ラズパイ奮戦記。Macbook経由でネットにつなぐには

Last updated at Posted at 2019-12-19

ラズパイに限ったことではないが、MacとLANケーブルで直接繋いだPCがインターネットに繋がりたい場合の話

まぁ、落ち着いて考えたらLANケーブルで直接、繋がってようがハブ経由で繋がっていようが関係なく、自分をゲートウェイにしたいと思ったら、Macの場合はインターネット共有を使うってことですよね。。。
それに気づくまでの奮戦記をメモとして残しておきます。

スマホのAP作戦はうまくいった。しかし…

前回の記事でラズパイとスマホのWifi-AP経由で接続できましたが、スマホをアクセスポイントにするってことは、スマホのモバイル回線からインターネットに繋ぐ、と言うことで…モバイル回線のデータ量=電話代が増えちゃうじゃないか!そしてapt update && apt upgrade -yするとちょいちょい固まるし…なんだか遅いし不安定なんだよね。。。
(実際、apt upgradeしてみたところ、多分モバイル回線ではとんでもないことになります。Ubuntuでの初回のapt update && apt upgradeを思い出してください。)
と言うわけで急遽、USBのLANアダプタとLANケーブルを調達してまいりました!

LANケーブルで直で繋ぐ

まずは前回の手順でスマホAP経由でssh接続をしておきます。そして、このスマホのAP経由のSSH接続を保持したまま、LANケーブルを直で差して相手のIPアドレスを ip address show してみました。
eth0169.254.xx.xx のようなIPアドレスが設定されていたので、別のターミナルを開いて、ssh pi@169.254.xx.xx で接続いたしました。
もちろん、ログインできます。

すっかり、Mac経由で名前解決できるしインターネットにつながるだろうと思い込んでいた私はここでスマホのテザリングを切りました。
最初の ssh はもちろん切断しておきます。LANケーブル経由のsshで問題なくやり取りはできています。
念の為、curl http://www.google.com とやると…

$ curl http://www.google.com
curl: (6) Could not resolve host: www.google.com

と出て、ホスト名が解決できない、とあります。。。
"ま、まぁアレだよね。急に経路が変わってびっくりしたよね?!"と、意味不明な言い訳を考えて、ラズパイを再起動いたしました。

$ sudo shutdown -r now
Connection to 169.254.xxx.xxx closed by remote host.
Connection to 169.254.xxx.xxx closed.

で…しばらく待ちます。しかしいくら経っても先ほどのIPアドレスでは繋がらないのです。(適当なアドレスだからそりゃそうだろう。)
仕方なくスマホのテザリングをオンにします。
数秒でテザリングには繋がってきます。(ホントこの反応はかなり早いです。)

再び、最初のスマホ経由のIPアドレスにて、ssh pi@192.168.1.xxx で接続し、IPアドレスを取得します。
もちろん、先ほどとは違うアドレスとなっております。別ターミナルを開き、ssh pi@169.254.xxx.xxx で接続いたします。

接続はできましたがさて、ここで curl をやっても先ほどと同じです。ゲートウェイをMac側に強制的に向けるか…? う〜ん。。。

しかしMacのネットワーク設定の画面を見てふと思います。

スクリーンショット 2019-12-20 0.33.48.png

自己割り当てIPアドレスが設定されているためインターネットに接続できません。

いや、そうなんですよね。Macにゲートウェイ向けたところでこのUSBのネットワークアダプタのネットワークは外には出れないのですよ。と言うか…あれ?なんかそういうブリッジ的な機能なかったっけ?

インターネット共有の有効化!

はい、今更のおさらいですが異なる経路でもWAN側に出れる=インターネットに繋がるようにブリッジしてくれる機能がインターネット共有ですよね〜!
今回は以下のように設定いたしました。

スクリーンショット 2019-12-20 0.06.02.png

ラズパイが繋がっているUSBアダプタのネットワークを、MacのWifi経由してインターネットに繋ぎます。

これで無事にラズパイからインターネットに繋がる〜!とcurlしてみようとしたら…

ターミナルから応答がない。。。

えっと、もしかして、インターネット共有入れたらIPアドレス変わった?

再び、スマホのテザリングをオンにします。数秒でラズパイは繋がってきます。

MacもWifiのインターネット共有をオンにしたまま、一旦、スマホのWifiに接続します。
sshで、無事にログインできたら先ほどと同様、ip address showでIPアドレスを調べます。

めでたく、192.168.2.xxxという新しいアドレスが割り当てられておりました。。。

別のターミナルを開き、ssh pi@192.168.2.xxx でログインし、MacのWifiを切り替え、スマホのテザリングをオフにして、curlしてみます。

$ curl http://www.google.com
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="ja"><head><meta content="&#19990;&#30028;&#20013;&#12398;&#12354;&#12425;&#12422;&#12427;&#24773;&#22577;&#12434;&#26908;&#32034;&#12377;&#12427;&#12383;&#12417;&#12398;&#12484;&#12540;&#12523;&#12434;&#2...

おホォ〜。。。やっとMacのWifi経由で外に出れたようです。。。(一気に疲れが…)

正しい手順としては?

結局のところ、どうやるのが正しい手順だったのでしょうか?以下にまとめたいと思います。

  1. LANケーブルでラズパイとMacを接続。まだラズパイの電源は入れちゃダメ。
  2. インタネット共有を有効化。USBアダプタから接続してWifiを共有する。
  3. スマホのテザリングをオンにする。
  4. ラズパイの電源を入れる
  5. Macの Wifi をスマホのAPにつなぐ。
  6. スマホのテザリングしたIPアドレスでssh接続。
  7. ip address showeth0のIPアドレスを調べる
  8. 別ターミナルで eth0のIPアドレスに ssh で接続
  9. 元のスマホAP経由のsshは exit して切断
  10. Macの Wifiをインターネットにつながるネットワークにつなぎ変える
  11. スマホのテザリングをOFF

これでLANケーブルで繋がったラズパイが無事に外に出れます。
インターネット共有をあらかじめ仕掛けてからラズパイの電源を入れてIPアドレスが変わらないようにする、と言うのが肝心なポイントですね。

ふぅ〜!それでは早速、apt updateしてみたいと思います!

今回は以上です!

(なぜ、こんなめんどくさい事をするかって?ここがスタバだからなのだよ!)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1