そよ風情報局 -ネットワークエンジニアがプログラミングを独学で試行錯誤-

プログラミング初心者のネットワークエンジニアが、プログラミングの勉強で苦労したことや学んだ言語について書いてます。たまにゲームのことも。

プログラミング

VirtualBoxを使ってWindows上でCentOSを快適に動かす

更新日:

今までWebページやWebアプリケーションを作ってきましたが、もっとレイヤの低い部分のことがしたいなと。
いわゆるネットワークプログラミングってやつですね。

そもそも私がプログラミングを勉強し始めたきっかけというのが、この本を見つけたからなんですよね。

 

すごく興味あったので、即買って読んでみました。

が、プログラミング初心者の私には内容が難しすぎて2つ目の例くらいから理解が追いつかなくなりました(^_^;)
そのため、この本を理解するためにPythonの勉強を始めたんですよねw

そこから楽しくなっていろいろ勉強してきましたけど、原点はPythonでありネットワークプログラミングなんですよ。

最近全く触れてこずに放置してましたけど、また挑戦したいなと思いまして、改めて環境作りに取り掛かりました。

 

 

仮想環境の構築

今回はサーバのことも学びたいなと思ったので、VirtualBox上にCentOS7を入れてみました。
最小限のインストールにしたので、GUIなしのコマンドのみです。

VirtualBoxを起動して、インストールしたCentOSを起動するとコマンド画面が立ち上がるんですが、わざわざこの2手間かけてコマンド画面を立ち上げるのってとても面倒に感じて、何かしら楽できる方法がないかと調べました。

 

SSHを使う

CentOSについて(というかサーバについて)を調べてると、SSHで接続して操作するのが主流(?)のようだったので、SSHを使えるようにしました。

と言っても、SSH自体はCentOSに元々入ってたので、設定を少しいじるだけ。

/etc/ssh/sshd_configPort 22と書かれた行がコメントアウトされているので、#を消して有効化、
PermitRootLoginがyesになってるのでnoにして保存するだけ。
(PermitRootLoginもコメントアウトされていたら#を消して有効化)

あとはsystemctl start sshd.serviceでSSHを有効化すればOKです。

一応念の為ファイアウォールにSSHの許可も入れておきました。
firewall-cmd --permanent --add-service=sshと入れればいいみたいです。
そもそもファイアウォールが有効化になっているのかわかりませんでしたが、一応ね?

TeraTermを使って無事に接続できました。

でも今のままだとVirtualBoxを起動して、CentOSを起動してからTeraTermで接続ってしないといけないんですよね。
しかもそのVirtualBoxのウィンドウを消しちゃうとSSH接続も切れちゃうという不便っぷり。

でもそれを解決できる方法があります。

 

VirtualBoxをバックグラウンドで動かす

VirtualBoxにはVirtualBoxを起動せずともバックグラウンドで動かすための便利なシステムが存在します。
VBoxManage.exeというものがVirtualBoxをインストールしたフォルダに入ってます。
これを実行することで、VirtualBoxをバックグラウンドで動作させることができます。

具体的には、コマンドプロンプトでVirtualBoxをインストールしたフォルダまで行き、

VBoxManage.exe startvm --type headless 名前

と実行します。
「名前」はVirtualBoxにインストールしたCentOSの名前です。

ちなみに、終了する場合は

VBoxManage.exe controlvm 名前 acpipowerbutton

でできます。

これでわざわざVirtualBoxを起動する手間もなく、ウィンドウを残しておく必要もないので快適です!

 

バッチファイルで更に快適に

コマンドプロンプトでVirtualBoxをインストールしたフォルダまで移動してこの長いコマンド実行ってのも手間ですよね。
それを解決するのがバッチファイル化です。

作り方は簡単!

cd VirtualBoxをインストールしたフォルダ
VBoxManage.exe startvm --type headless 名前

この2行をテキストファイルに書き込んで保存、
そして、その保存したテキストファイルの拡張子を「.bat」にするだけです。
これでこのbatファイルをダブルクリックするだけでVirtualBoxがバックグラウンドで動くようになります。
終了させる方も作っておいた方がいいですね。

 

まとめ

これでダブルクリックするだけでVirtualBox上で動くCentOSの起動・終了ができるようになって、TeraTermでそのCentOSの操作もできるようになるので、CentOS上に開発環境作っていろいろと快適にできるようになりそうです。

まずはgccを入れてソケットプログラミングの基本的なところから勉強し直そうかなと思ってます。

-プログラミング

Copyright© そよ風情報局 -ネットワークエンジニアがプログラミングを独学で試行錯誤- , 2018 All Rights Reserved Powered by STINGER.