Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Ubuntu 18.04の初期設定をしてみた

用途

サーバを構築した後の初期設定時の自分なりのTipsを纏めました。

新しいことが分かり次第追記していきます :tools:

構築メモ

VirtualBox を使って、Ubuntu Server を作る記事を下記にて公開しています。

初期設定

作業時

:warning: rootになって行います。誤作業に注意してください。 :warning:

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
  • 参考資料

https://jyn.jp/ubuntu-localip-static/

デフォルトのエディターの設定を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 を選択する
# 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

参考資料

https://jyn.jp/ubuntu-localip-static/

[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

参考記事

http://netbuffalo.doorblog.jp/archives/4048147.html

iganari
Why don't you do your best ?
http://iganari.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away