LoginSignup
15
5

More than 1 year has passed since last update.

M1MacでLinux環境を構築する〜サーバー構築編

Last updated at Posted at 2021-11-23

今回のお題

本記事は、M1MacでLinux環境を構築するの一部です。

前回まででLinuxOSの仮想マシンを作成し、デスクトップとしても扱えるようにしました。

今回は最終章として、いよいよサーバーを立ち上げます。

本記事のゴール

  • 仮想マシン上にnginxおよびapache2のローカルサーバーを立ち上げる
  • 立ち上げたサーバーにMacOSおよびに他の(同一ネットワーク上の)デバイスからもアクセスできるようにする。

注意点

各作業を仮想マシンとMacOSのどちらで行っているのかを間違えないようにしてください。

今回は仮想マシン外部からもサーバーにアクセスする都合上、サーバー構築そのものの作業も途中からは仮想マシンではなくMacOS上で行います。

そのため、この作業を行っているのが仮想マシンとMacOSのどちらなのかを意識して作業にあたるようにしてください。

手順

ポートの追加

まずは、作成した仮想マシンにサーバー用のポート番号を追加していきます。

電源ボタンを押して仮想マシンを停止させた後、UTMの最初の画面に戻って仮想マシンを右クリックし、editを選択します。

Image from Gyazo

上部のメニューから、今回はNetworkを選択します。

Image from Gyazo

最初は上記のような画面になっていると思います。

Network ModeをShared NetwokからEmulated VLANに変更すると右下にNewボタンが出てくるので、そちらをクリックします。

Image from Gyazo

Newボタンの下に以下のような窓が出てくるので、Guest AddressHost Addressは空欄のまま、Guest PortHost Portにはそれぞれ80と入力してSaveします。

Image from Gyazo

先ほど80と入力した部分を22443に変更して同じ作業を合計3回繰り返すと、以下の画面になるかと思います。

Image from Gyazo

この状態になっていれば、そのままsaveします。

ファイアウォールとポートの接続設定

ポートの追加ができたので、再び仮想マシンを立ち上げてターミナルに入ります。

まずは以下のコマンドで、ファイアウォールの状態を確認します。

$ sudo ufw status

おそらく状態:非アクティブと出たと思います。

なので以下のコマンドを打ってアクティベートします。

$ sudo ufw enable

ファイアウォールはアクティブかつシステムの起動時に有効化されます。と表示されれば成功です。

これで、サーバーへの接続に対してファイアウォールが有効になりました。

次に、以下のコマンドを用いて特定のポートへの接続を許可していきます。

$ sudo ufw allow 80
$ sudo ufw allow 22
$ sudo ufw allow 443

ルールを追加しましたと表示されれば成功です。

これで80, 22, 443番ポートにはアクセス可能、それ以外へのアクセスはファイアウォールにガードされてるという状態になりました。

sshの導入

sshとは、コンピュータを外部から操作するための仕組みです。

これを用いることで、MacOS上から仮想マシンを操作したり、他の端末から仮想マシンのサーバー上にアクセスしたりできるようになります。

以下のコマンドを用いて、sshの導入とsshdの立ち上げを行います(sshdはsshで操作される側のコンピュータのことです)。

$ sudo apt install ssh
$ systemctl start sshd

上記のコマンドを入力するとパスワードを求められます。

パスワード入力後は画面に何も表示されませんが問題ありません。

ここまで完了したら一旦仮想マシンはそのままにして、MacOSのターミナルに移ります。

サーバー構築

いよいよサーバーを構築します。

前項で触れたように、ここから先の作業はMacOSのターミナルで行います。

具体的にはMacOSのターミナルの中から仮想マシンのシェルに入り、仮想マシンの操作をするという形です。

まずは以下のコマンドで仮想マシンのシェルに入ります。

% ssh "仮想マシンのユーザー名"@127.0.0.1
# 以下でもOK
% ssh "仮想マシンのユーザー名"@localhost

成功すると、プロンプト前のユーザー名@サーバー名がMacのものから仮想マシンのものに変化します。

注意

もし

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

のようなアラートが表示された場合には、

$ ssh-keygen -R 127.0.0.1

と一度入力してから再度接続を試してください。

サーバーの立ち上げ

仮想マシンのシェルに入れたので、いよいよサーバーを立ち上げます。

今回はnginxを例に取りますが、nginxの部分をapache2に読み替えていただければapacheサーバーの立ち上げも同じ手順で可能です。

まずは、サーバー用のソフトをインストールします。

$ sudo apt install nginx

これでnginxサーバーが使えるようになりました。

サーバーが起動しているかどうかの確認は、以下のコマンドで可能です。

$ systemctl status nginx.service

結果(緑の部分がactiveなら起動中)
Image from Gyazo

また、上記の画面から出るにはCtrl+Cを押してください。

サーバーの起動状態については、

$ systemctl start nginx.service
$ systemctl stop nginx.service

で可能です。

サーバーへの接続

サーバーが立ち上がっていることが確認できたら、実際に接続してみましょう。

macでブラウザを立ち上げて127.0.0.1と入力するか、他のデバイス(同一のwifiにつながっていることが条件)でM1MacのIPアドレスを入力してください。

nginxとapache2それぞれで以下のような画面が表示されれば成功です。

Image from Gyazo

Image from Gyazo

ログアウト

仮想マシンのシェルから抜けてMacのシェルに戻る際にはexitコマンドを用います。

終わりに

以上でM1Mac上にLinuxサーバーを構築することができました。

同じような境遇の方のお役に立てれば幸いです。

15
5
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
15
5