用途
サーバを構築した後の初期設定時の自分なりのTipsを纏めました。
新しいことが分かり次第追記していきます
構築メモ
VirtualBox を使って、Ubuntu Server を作る記事を下記にて公開しています。
- Windows 7にVirtualBox 5.2.12を入れてUbuntu 18.04を入れる(2018/07) 前篇
- Windows 7にVirtualBox 5.2.12を入れてUbuntu 18.04を入れる(2018/07) 後編
初期設定
作業時
rootになって行います。誤作業に注意してください。
sudo su -
アップデート
まずは最新のパッケージを入手しましょう
- パッケージ情報の更新
apt update
- パッケージの更新
apt upgrade -y
時刻設定
デフォルトだと UTC
になっているかと思うので、 JST
に変更しましょう
- デフォルトを確認
# date
Wed Jul 4 08:37:58 UTC 2018
-
zoneinfo
のリンクを入れ替えることで、 時刻設定を修正
rm -rfv /etc/localtime &&\
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
- 修正を確認
# date
Wed Jul 4 17:41:36 JST 2018
locate を日本語に設定
echo 'LANG="en_US.UTF-8"' > /etc/default/locale
- 参考資料
デフォルトのエディターの設定をVimに変更する ①
昔からの習わしなのか、デフォルトのエディターが未だに nano
なので、これを Vim
に変更します。
まずはインタラクティブに変更するやり方です
- 現在のデフォルトのエディタの設定の確認
# ls -la /usr/bin/editor
lrwxrwxrwx 1 root root 24 Apr 27 04:08 /usr/bin/editor -> /etc/alternatives/editor
# ls -la /etc/alternatives/editor
lrwxrwxrwx 1 root root 9 Apr 27 04:09 /etc/alternatives/editor -> /bin/nano
-
Vim
がインストールされているか確認
# apt list --installed | grep vim
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
vim/bionic,now 2:8.0.1453-1ubuntu1 amd64 [installed]
vim-common/bionic,now 2:8.0.1453-1ubuntu1 all [installed]
vim-runtime/bionic,now 2:8.0.1453-1ubuntu1 all [installed]
vim-tiny/bionic,now 2:8.0.1453-1ubuntu1 amd64 [installed]
- デフォルトのエディターを変更する(
nano
--->Vim
)- 3の
vim.basic
を選択する
- 3の
# update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode
Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode
- 現在のデフォルトのエディタの設定の再確認
# ls -la /usr/bin/editor
lrwxrwxrwx 1 root root 24 Apr 27 04:08 /usr/bin/editor -> /etc/alternatives/editor
# ls -la /etc/alternatives/editor
lrwxrwxrwx 1 root root 18 Jul 24 09:13 /etc/alternatives/editor -> /usr/bin/vim.basic
- 参考記事
デフォルトのエディターの設定をVimに変更する ②
- シンボリックリンクを変更する方法
unlink /etc/alternatives/editor
ln -s /usr/bin/vim.basic /etc/alternatives/editor
apt remove --purge nano
ネットワークの設定
OpenSSH のインストール
初期設定だと OpenSSH がインストールしてない(もしくは起動していない)可能性があります。
リモートからログイン出来るよう、設定していきます
- openssh-server のパッケージをインストール
apt install openssh-server
- SSH の Service が起動しているか確認
systemctl status ssh
### Ex.
# systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-01-14 01:50:42 UTC; 3min 42s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 21510 (sshd)
Tasks: 1 (limit: 1074)
Memory: 4.1M
CGroup: /system.slice/ssh.service
└─21510 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
Jan 14 01:50:42 hejda-ingraf systemd[1]: Starting OpenBSD Secure Shell server...
Jan 14 01:50:42 hejda-ingraf sshd[21510]: Server listening on 0.0.0.0 port 22.
Jan 14 01:50:42 hejda-ingraf sshd[21510]: Server listening on :: port 22.
Jan 14 01:50:42 hejda-ingraf systemd[1]: Started OpenBSD Secure Shell server.
Jan 14 01:54:05 hejda-ingraf sshd[21713]: Accepted password for iganari from 192.168.202.104 port 62099 ssh2
Jan 14 01:54:05 hejda-ingraf sshd[21713]: pam_unix(sshd:session): session opened for user iganari by (uid=0)
- ssh.service をサーバの起動時に自動で起動するように設定
- 上記の出力では既に自動起動の設定になっているので、この作業は不要
systemctl enable ssh
IP アドレスの設定について
18.04から設定ファイルが変更したようです。
- 16.04 まで
/etc/network/interfaces
- 18.04 以降
-
/etc/netplan/50-cloud-init.yaml
や/etc/netplan/00-installer-config.yaml
などの YAML ファイルが存在 - 今記事は
50-cloud-init.yaml
で統一していきます
-
/etc/netplan/00-installer-config.yaml
network:
ethernets:
enp0s3:
dhcp4: true
version: 2
/etc/netplan/50-cloud-init.yaml
network:
ethernets:
enp0s3:
addresses: []
dhcp4: true
optional: true
enp0s8:
addresses: []
dhcp4: true
optional: true
version: 2
設定例①
設定内容: ホストマシンからのみ SSH 接続できる仮想マシンなどの場合の設定
ethernets | 設定項目 |
---|---|
enp0s3 | DHCP |
enp0s8 | 固定IPアドレス(Ex. 192.168.50.22) |
/etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
enp0s3:
addresses: []
dhcp4: true
optional: true
enp0s8:
dhcp4: no
# IP address / Subnet mask
addresses:
- 192.168.50.22/24
# Default gateway
# gateway4: 192.168.50.1
nameservers:
addresses:
- 192.168.50.1
dhcp6: no
設定例②
設定内容: ホストマシン以外からも SSH 接続できる仮想マシンなどの場合の設定
ethernets | 設定項目 |
---|---|
enp0s3 | 固定IPアドレス(Ex. 192.168.100.22) |
/etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
enp0s3:
dhcp4: no
# IP address / Subnet mask
addresses:
- 192.168.100.22/24
# Default gateway
gateway4: 192.168.100.1
nameservers:
addresses:
- 192.168.100.1
dhcp6: no
設定の反映・確認
意図した設定ファイルが作成できたのでその設定を反映し確認します
- 設定の反映コマンド
sudo netplan apply
- IP アドレスの確認
ip addr
### Ex.
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:3e:c7:01 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.40/24 brd 192.168.100.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 2400:2410:b123:ed00:a00:27ff:fe3e:c701/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 2591906sec preferred_lft 604706sec
inet6 fe80::a00:27ff:fe3e:c701/64 scope link
valid_lft forever preferred_lft forever
- ルーティングの確認
route -n
- DNS設定の確認
systemd-resolve --status
- 外部への疎通が出来るか確認
ping 8.8.8.8 -c 5
参考資料
[WIP] カーネルチューニング
ネットワークのスループットを向上させる
以下を追記する
/etc/sysctl.conf
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_moderate_rcvbuf = 1
net.core.netdev_max_backlog = 5000
システムリソースの上限の設定
以下のファイルを作成
/etc/security/limits.d/20-nproc.conf
#<domain> <type> <item> <value>
* hard nproc 8192
* soft nproc 8192
root hard nproc 8192
root soft nproc 8192
/etc/security/limits.d/30-nofile.conf
#<domain> <type> <item> <value>
* hard nofile 65536
* soft nofile 65536
root hard nofile 65536
root soft nofile 65536
設定反映
shutdown -r now
確認
root
# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 3708
max locked memory (kbytes, -l) 16384
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 8192
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
root以外
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 3708
max locked memory (kbytes, -l) 16384
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 8192
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
参考記事