開発環境として、自分はvirtual boxを使っている。
よくdockerとか聞くけど、インフラ周りのエンジニアとして「サーバを管理している」という状況が重要で、得た知識をなるべく忘れないために頻繁にサーバに触っていたいと思う。
(でも、いつかはdockerについても調べてみないと。。。そして、触り始めると「今更virtual boxって」と思ってしまうかも。。。)
で、新しく環境を作ったのだが、その作った環境にsshアクセスしたいが、起動しても、IPがわからない。
今後のために、それを調査しておく。
Virtual Boxのマネージャー画面を見てみる
サーバを起動したら、マネージャー画面のどこかにIPアドレスの記載があるのではないかと調べてみる。
とはいえ、「設定」→「ネットワーク」を見てみたが、それっぽい情報はなかった。
マネージャー画面で起動したホストを右クリックすると、いくつかメニューがあり「ログ」というのがあった。
すると起動時のサーバのログが表示された。
もしかしたら、ここにIPが表示されてるかも?
IPは環境設定時にサブネットワークを定めており、「192.168.56.xx」としていた。
これは「ツール」をクリックすると確認できる。
ということをはログを「192.168.56.」で検索すると出てくるのでは?
検索してみると、あった。
このIPでsshアクセスできるかやってみたが、だめだった。。。
arpテーブルを見てみたが、「192.168.56.201」はなかった。違うのかなぁ。
あー。
たまたまpingしたのが、通ってしまいわかっちゃった。
>ping 192.168.56.104
192.168.56.104 に ping を送信しています 32 バイトのデータ:
192.168.56.104 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.56.104 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.56.104 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.56.104 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.56.104 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 0ms、平均 = 0ms
その後arpテーブルを調べると表示された。
>arp -a
(略)
インターフェイス: 192.168.56.1 --- 0xd
インターネット アドレス 物理アドレス 種類
192.168.56.104 08-00-27-5a-5a-48 動的
192.168.56.255 ff-ff-ff-ff-ff-ff 静的
やろうとしていた仕事は進むけど、ちょっともやっとする。。。
なんか方法はないんかなぁ。
と思ったら、方法はあった。力技だけど。
要はpingで反応が返ってきたらOKということなので、192.168.56.xx全部にpingを投げてやればよい。
ということで、以下のfor文を実行するバッチファイルを作った。
for /l %%i in (101,1,254) do ping -w 1 -n 1 192.168.56.%%i && arp -a 192.168.56.%%i
「なんで101?1じゃないの?」と言われるかもだが、上の画像のように、DHCPで配布するIPのレンジが以下のようになっていたため。
これで、起動しているサーバのIPアドレスがarpテーブルに表示されるので、上のスクリプトを実行した後に、「arp -a」とすると、起動したサーバのIPアドレスが分かる。
インターフェイス: 192.168.56.1 --- 0xd
インターネット アドレス 物理アドレス 種類
192.168.56.104 08-00-27-5a-5a-48 動的
いったんこれで良しとする。