Ubuntu
Ubuntu16.04LTS

Ubuntu Server 16.04 LTS でネットワーク内でSSHで接続できる自作サーバーを構築する

自作サーバーの構築はSSHで接続できさえすれば後は慣れた環境からサクサクできるので、今回はSSHで接続できるサーバーを構築するまでをまとめたいと思います。

Ubuntu Serverのインストールディスクの作成

Download Ubuntu ServerよりUbuntu Server 16.04.4 LTSのisoをダウンロードし、ディスクイメージに変換する。

hdiutil convert -format UDRW -o ~/Downloads/ubuntu.img ~/Downloads/ubuntu-16.04.4-server-amd64.iso

dmgという拡張子になるのでubuntu.imgにする。

mv ubuntu.img.dmg ubuntu.img

その後適当なUSBメモリかディスクなどをMacに繋いでdiskutil listで確認する。

$ diskutil list

/dev/disk0 (internal):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                         500.3 GB   disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                 Apple_APFS Container disk1         500.0 GB   disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +500.0 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD            203.5 GB   disk1s1
   2:                APFS Volume Preboot                 25.0 MB    disk1s2
   3:                APFS Volume Recovery                509.8 MB   disk1s3
   4:                APFS Volume VM                      7.9 GB     disk1s4

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *251.0 GB   disk2
   1:        Apple_partition_map                         4.1 KB     disk2s1
   2:                  Apple_HFS                         2.4 MB     disk2s2

/dev/disk2が先程接続したディスクだとわかったのでアンマウントする。

diskutil unMountDisk /dev/disk2

/dev/disk2にイメージを作成する。

sudo dd if=~/Downloads/ubuntu.img of=/dev/rdisk2 bs=1m

4秒で完了

$ sudo dd if=~/Downloads/ubuntu.img of=/dev/rdisk2 bs=1m
Password:
848+0 records in
848+0 records out
889192448 bytes transferred in 4.066715 secs (218651282 bytes/sec)

インストールメディアをCD-ROMとして認識させる

組み上げたマシンにUSBでインストールメディアを接続してブートで起動しUbuntuのインストールを開始する。この時下記のような画面になりインストールができなくなる。 CD-ROMでインストールしてないのだが、/cdrom を参照したいみたいなので、インストールメディアをマウントする必要がある。

IMG_1438.jpg

まず、Alt+F2でコンソールを開きログを流れるようにする。

tail -f /var/log/syslog

この状態でインストールメディアを外してから再接続するとなんていう名前でマウントされるか分かると思う。私の場合は[sdc]というメッセージが出てきたので/dev/sdcだということがわかったので、下記のようにして/dev/sdc1/cdromにマウントする。

mount -tiso9660 /dev/sdc1 /cdrom

これで再度CDの認識を行うとインストールが進められるようになる。ちなみに優先LANで繋いだ状態でインストールを行えばネットワークの設定をある程度やってくれるのでおすすめ。

文字化けを解消する

日本語でインストールした影響か、インストール直後は文字化けして何も見えないので、下記のような記述を.bashrcに行います。

case $TERM in
    linux) LANG=C ;;
    *) LANG=ja_JP.UTF-8 ;;
esac

編集が完了したら.bashrcを再読込みする。

source ~/.bashrc

apt install できるようにする

sudo apt install ssh-serverとかしてさっさと終わらせたい所だが、多分やると下記のようなエラーが出ると思う。

in the drive '/media/cdrom/' and press enter

これはリポジトリが設定されていないからなので設定する。

sudo vi /etc/apt/sources.list

下記のようにcdromから読み込もうとしていると思うので

deb cdrom:[Ubuntu-Server 16.04.4 LTS _Xenial Xerus_ - Release amd64 (20180228)]/ xenial main restricted

下記のようにインターネットに接続して取ってくるようにする。

# deb cdrom:[Ubuntu-Server 16.04.4 LTS _Xenial Xerus_ - Release amd64 (20180228)]/ xenial main restricted

deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu xenial main restricted
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu xenial main restricted

こうすれば後はsudo apt updateとかしてインストールしてこれるようになる。

SSHサーバーを立ち上げる

SSHサーバーを立ち上げるにはインストールするだけで良い。

sudo apt install ssh-server

ポート変更するなど鍵などいろいろやりたいことはあるかもしれないけど、こんなのはSSHで接続して外部からやるほうがよっぽど早いので後回し。

Avahiで名前解決できるようにする

このままではシャットダウンして棚の上とかに持っていって再度ネットワークに接続する時にDHCPでIPアドレスが変わって面倒くさい(かといって固定IPにするのもIPの管理が面倒くさい)ので、Avahiで名前解決をしてコンピューター名で接続できるようにする。

sudo apt-get install avahi-daemon

avahi-deamonを起動する

sudo service start avahi-deamon

これでcomputername.localとかで接続できるようになった。これでリビングの机の上にあったコードだらけのサーバーをささっと自室のどこかに移動しちゃって、後はおしゃれなMacとかからSSHで接続してまったりと設定をしていけばOK。

おわり

外出先からの接続

あとは自宅からポートを開放して外から繋げるようにしてもいいだろうけど、そこに関してはここでは書かず別記事で書こうかなと思います。

電気代

自作サーバーは計測したところ一ヶ月電気代で500円くらい。あとは初期費用が8万。スペック的にはさくらのVPS 8G相当?

HDD 1TBとSSD 256GBを2枚積んでいる。HDDを外したら1W程度節電できた。SSDも1W程度だった。ただ2W節約したところで数十円だったので、それ払うだけで大容量のデータを保存できるなら別にいいかなってことで接続しっぱなし。

単純に楽しいからコスパはそこまで気にしなくてもOK

3年持てば良いとして、さくらのVPS 8Gクラスのサーバーが月々2700円くらいで使えるとすると嬉しい。加えてハードウェアについて学べたり、単純に趣味としてめちゃくちゃ楽しめる面もあるので、価格以上の価値があるのではないかと思う。(ちなみに今回はもともとあったデスクトップマシンを分解してパーツを流用しているので実費は2万くらいでした。)

停電時の対応

停電時はサーバーの起動が必要なんで、ずっと可動していてほしいような処理を行わせるマシンならUPSを付けてもいいかもしれない。安いのだと6,000円のがあった。3年使うとして月166円くらいコスト増しな感じ。長期出張とか旅行がある時は買ってもいいかもしれない。

参考