「家の中だけでなくて、外でも開発できるようにしておきたい」
そんなことができるサービス、ありませんか?
…ありました。その名もTailscale。
科学の力ってすげーですね。
Tailscaleとは(超ざっくり)
簡単に言うとVPN接続のサービス。仮想の専用線でマシン同士をつなげて一対一の通信ができるようにする。
「専用線」だから外部から見られることもないから安全。さらに独自ドメインネットワーク内でP2P通信をするからサーバーを介さずマシン同士をつなげられてより安全。ということらしいです。
…専門外なので、もっといろいろ知りたい方はご自身で調べてみてください。
参考
Tailscaleのメリット-どこでも開発できる
そもそもTailscaleを導入しようと決めたのは、家の外にパソコンを持っていったとしても、そこでパソコン内にある仮想マシンに接続して即開発するようにしたかったからです。
自分のマシンの中にあるので一見問題なくできそうなのですが、仮想マシンにアクセスしようとすると結構面倒で…
指定のネットワーク外でもできなくはないが諸々面倒
きっと多くの場合は指定のネットワーク内でIPアドレスを固定してアクセスするようにしていると思います。
ですが、これの問題点は「指定のネットワーク内でないと使えない」ことです。
指定のネットワーク以外で使おうとしたら毎回IPアドレスが変わってしまうので、毎回調べないとならないし、場合によっては仮想マシン側の設定を諸々変更しないとならない可能性も…
たぶんやればできるのですが、外でやろうとしたら毎回設定を変えないとならないし、指定のネットワーク内でやろうとしたらまた使えるように設定し直さなければならない。
正直、かなり面倒です。
設定を戻すのに失敗したら肝心の開発作業が遅れますし、あまりいいとは言えない方法です。
インストールが楽なのが嬉しい
手順を書こうかと思ったのですが、既に上記の参考サイトはもちろん、本家サイトでも紹介されているし特につまずきそうなところもありません。
必要なのはGoogleやGithubなどのアカウント情報です。
入れるマシンのOSに合わせたものをダウンロード、またはコマンド実行していれるだけです。
仮想マシンに入れているLinuxOS側はちょっと古くて別の物も入れたりもありましたが…それも「これ入れてよ」って言われるだけなので大変助かります。
基本は言う通りにぽちぽちしていったらできます。楽です。
仮想マシンがインターネットにつながっているかは要確認
ちょっとハマったポイントといえば、仮想マシンがインターネットに接続しているかどうかです。接続方法をWi-FiからUSBスマホデザリングに変えてテストしたときに起こりました。
私はHyper-Vを使用していますが、いつものWi-Fi使用ではなくUSBスマホデザリングにしたとき、設定している外部スイッチが機能しなくてつながらなくなってしまいました。
スマホデザリング用のスイッチを作って設定し直して解決です。Hyper-Vのスイッチマネージャーで設定できます。
まとめ:Tailscaleは入れるの簡単で便利
便利すぎて、外出先でなくてもTailscaleにあるIPアドレスを使ってアクセス→開発するようになってしまいました。
毎回192から始まるローカルアドレスに設定し直さなくても、100から始まるアドレスが使えるなら使えばいいし、その方がいざ使うときに慣れているので問題は起きない。デメリットは今のところ特にありません。