Ubuntuで自宅向けサーバーを構築してみた。
Ubuntuで自宅向けサーバーを構築してみた
TL;DR
- パッケージ更新を行う。
- headless化する。
- SSH接続できるようにする。
- sambaでファイル共有
対象
- こんなページを見に来るような人
- 筆者当時高校2年生と同程度の知識の人
- Windowsに飽きた人
セットアップ
筆者環境を以下に示します。
- CPU: Intel(R) Core(TM) i5-10400 CPU @ 2.90GHz, 2900 MHz
- LAN-board: Gigabyte Onboard Ethernet
- HDD: WDC WD10EZRZ-22H
- RAM: CORSAIR 4GB 2
パッケージ更新
たとえば、Ubuntuの日本語パッケージはデフォルトでは追加できません。そのため、下記のコマンドでリポジトリを新規追加してやる必要があります。
wget https://launchpad.net/~sicklylife/+archive/ubuntu/fonts-ja/+files/fonts-nt-ui-jp_2_all.deb
sudo apt upgrade
sudo apt update
sudo apt install ubuntu-restricted-extras
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/focal.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo add-apt-repository -n ppa:libreoffice/ppa
sudo apt update
sudo apt dist-upgrade
基本アプリ群インストール
sudo apt install vim git net-tools ubuntu-defaults-ja ubuntu-restricted-extras zsh mlocate
sudo apt-get update --fix-missing
# zsh
echo '/bin/usr/zsh' >> /etc/shells
sudo chsh -s /bin/usr/zsh
curl -sL --proto-redir -all,https https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zsh
-
vim
text editor 必須 -
git
バージョン管理システム 必須級 -
net-tools
ネットワーク周りの旧式ツール ないと困る場面がある -
ubuntu-defaults-ja
日本語周りを完成させる 必須 -
ubuntu-restricted-extras
著作権の関係でデフォルトで入らないやつ 必須 -
zsh
shell 保管してくれたり多機能 これ前提で進めていきます - 'mlocate' ファイル検索を容易に これ前提で進めていきます
~/.zshrc
# zplug
source ~/.zplug/init.zsh
if ! zplug check --verbose; then
printf "Install? [y/N]: "
if read -q; then
echo; zplug install
fi
fi
zplug 'zplug/zplug', hook-build:'zplug --self-manage'
zplug "mafredri/zsh-async"
zplug "sindresorhus/pure"
zplug "zsh-users/zsh-syntax-highlighting"
zplug "zsh-users/zsh-autosuggestions"
zplug "zsh-users/zsh-completions"
zplug "chrissicool/zsh-256color"
HISTFILE=$HOME/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
zplug load
LANG=C xdg-user-dirs-gtk-update # home以下を英語名にする
ip周り
ip addr | grep 192 # ローカルipの取得
# 以下 net-tools
sudo apt install -y networkd-dispatcher #フック機能を追加
sudo mv ap_start.sh /etc/networkd-dispatcher/routable.d/
sudo mv ap_stop.sh /etc/networkd-dispatcher/off.d/
# 以上
sudo netplan apply #変更適用
ヘッドレス化
やはりGUIが欲しいときはあると思いますので、ヘッドレス・VNCでGUI制御ができるようにします。
前処理
sudo apt install x11vnc
sudo x11vnc -storepasswd /etc/.vncpwd
#以下自動起動する場合
sudo systemctl daemon-reload
sudo systemctl enable x11vnc
sudo systemctl start x11vnc
/etc/systemd/system/x11vnc.service
[Unit]
Description=x11vnc (Remote access)
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -display :0 -rfbauth /etc/.vncpwd -rfbport 5900 -forever -loop -noxdamage -repeat -shared
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
KillMode=control-group
Restart=on-failure
[Install]
WantedBy=graphical.target
/etc/X11/xorg.conf.d
Section "Device"
Identifier "GPU"
Driver "intel" # [intel/nvidia/amdgpu/radeon/...]
BusID "PCI:2:0:0" # lspci | grep VGAから指定してください
EndSection
Section "Monitor"
Identifier "DummyMonitor0"
EndSection
Section "Screen"
Identifier "Screen0"
DefaultDepth 24
Device "GPU"
Monitor "DummyMonitor0"
SubSection "Display"
Depth 24
# 仮想スクリーンサイズ。
Virtual 1280 720
EndSubSection
EndSection
後処理
sudo systemctl set-default multi-user
echo "alias activate_lightdm='sudo systemctl start lightdm'" >> .zshrc
echo "alias activate_vnc='sudo x11vnc -auth guess -display :0 -rfbauth /etc/.vncpwd -rfbport 5900 -forever -loop -noxdamage -repeat -shared'" >> .zshrc
Windowsとファイル共有
sambaを利用します。
[user_name][group_name]は各個人で定義してください。
sudo apt install samba
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.default # コンフィグのバックアップ
sudo adduser [user_name] # sambaユーザーは既存のユーザー名じゃないと作れません
sudo pdbedit -a [user_name] # sambaログインユーザー
sudo mkdir /share/
sudo chmod 770 /share/
sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd
/etc/samba/smb.conf
#20行目当たりglobal項に追記
[global]
dos charset = CP932
unix charset = UTF-8
workgroup = WORKGROUP
#40行目当たりNetwroking項の;を外して編集
interfaces = 192.168.1.0/24 eth0 #interfacesにネットワークアドレスとネットマスク、インターフェイス名を
#ip addrで出てきます。bind interfaces only = yes
map to guest = bad User
bind interfaces only = yes
#末尾に追加
[share]
path = /share
writeable = yes
create mode = 0770
directory mode = 0770
guest ok = no
valid users = @[group_name]
#以下minecraft用 、というかこんな感じに追記していきます。
[minecraft]
path = /server/minecraft
writable = yes
create mode = 0770
directory mode = 0770
guest ok = no
valid users = @[users]
最後に再起動
sudo systemctl reload nmbd.service smbd.service
**user周りについては、こと公開する場合にはもう少し細かい設定が必要でしょう。詳細は参考文献やらsudoersやらから調べてみてください。
注釈
vncについて
- VNC周りを頭に置いていますが、優先度が高い物ではありません。私はこれのインストールに5度失敗してクリーンインストールし直す羽目になりました。グラフィック周りはハマるポイントが多いように思われたので、先に処理してしまうといいでしょう。
- そもそも初学者はダミープラグを購入するべきだと、筆者は考えています。VGAやD-subならば電子工作の知識があれば100円以内に作れるでしょうし、Amazonでも500円程度で購入できることを確認しました。
構成について
- 最低限構成にしないとセキュリティ上の問題があるという意見があると思いますが、今回は考慮しません。そもそもこのような初心者が書いた記事を見に来る人など初心者であるでしょうし、私はセキュリティはセキュリティで勉強するべきだと思っています。過不足なくより不自由なく、をモットーにしないと初学者は離れるでしょう。
参考文献
- Ubuntu 20.04 LTS をインストールした後やること13選 - Qiita
- Ubuntu18.04でモニターレスVNC
- headless & x11vncを自動起動にしてリモートPCにする - いさぽん部屋(isapon.com)
- 開発メモ その162 Ubuntu 18.04でVINOをコマンドラインから有効化する · A certain engineer "COMPLEX"
- Ubuntu 20.04 LTSの自宅サーバーを建てた時のメモ | つくみ島だより
- Ubuntu 18.04 LTSのVPSを建てたときのメモ | つくみ島だより
- 初心者でもできる!zsh+zplugの導入 - Qiita
- Ubuntu 20.04 LTSで固定IPアドレスの設定 - Qiita
- 開発メモ その141 x11vncを使う for Ubuntu and Fedora · A certain engineer "COMPLEX"
- 【Ubuntu】ユーザ管理の方法について、ちゃんと調べてみた - とーますメモ
- sudoers は編集せずに sudoers.d の中に設定を書こう - Qiita
- sudoersを変更する、よく使う設定例 - それマグで!
- 【初心者向け】minecraft serverをLinuxのCUI環境で建てる - Qiita
- Tutorials/Server startup script – Minecraft Wiki
- Minecraftサーバをscreenとcronでプラグインを使わずに自動再起動する | 純規の暇人趣味ブログ
- Linuxユーザーのグループを追加するにはgpasswd - vorfee's Tech Blog
- Ubuntu 20.04でサーバー構築 9:FTPサーバーの設定 | Cut and Try
Author And Source
この問題について(Ubuntuで自宅向けサーバーを構築してみた。), 我々は、より多くの情報をここで見つけました https://qiita.com/tea-create/items/635a978aac93bd4a1ac6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .