Network, Serverの設定


On this page

IPの固定

ネットワークの設定はOS、ディストリビューションによってかなり違うため、 ここでは主なディストリビューションで採用されている設定方法を紹介する。

Ubuntu系(netplan)の場合

Ubuntu系はnetplanという管理補助アプリケーション(こいつが実際に設定しているわけではない)が使われている。

netplanは/etc/netplanの下にあるyaml形式のファイルを読み込み設定する。

network: 
  version: 2
  ethernets:
    eth0: # ネットワークのインターフェイス名、wifi、有線で異なる
      dhcp4: false # DHCPを無効化
      addresses: [192.168.1.5/24] # 固定したいIPアドレス/サブネット長
      routes:
        - to: default
          via: 192.168.1.1 # デフォルトゲートウェイ(家庭では普通ルーターのアドレス)
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8] # DNSサーバーのアドレス
        search: [sample.com] # サーチドメインの設定(option)

設定の反映はrootユーザーになるかsudo権限でnetplan applyを実行する。

反映されたかどうかはip a等で確認する。

Debian系の場合

Debian系は/etc/network/interfacesに書いてあることが多い

#iface <インターフェイス名(例: eth0)> inet dhcp  # ここでDHCPを無効化
iface eth0 inet static # 固定IP
address 192.168.1.5 # 固定したいIPアドレス
netmask 255.255.255.0 # サブネットマスク
gateway 192.168.1.1 # デフォルトゲートウェイ
dns-nameservers 192.168.1.1 # DNSサーバーのアドレス

設定の反映はrootユーザーになるかsudo権限でsystemctl restart network.serviceを実行する。

反映されたかどうかはip a等で確認する。

RHEL系(NetworkManager)の場合

systemd-networkdの場合

systemdを採用したlinux系にはデフォルトで入っている。

設定は/etc/systemd/network以下の<任意のファイル名>.confファイルに書く。

[Match]
Name=eth0 # インターフェイス名

[Network]
Address=192.168.1.5/24 # 固定したいIPアドレス/サブネット長
Gateway=192.168.1.1 # デフォルトゲートウェイ
DNS=192.168.1.1 # DNSサーバー(systemd-resolvedも使う場合は書かなくて良い)

設定の反映はrootユーザーになるかsudo権限でsystemctl restart systemd-networkd.serviceを実行する。

反映されたかどうかはip a等で確認する。

Raspi OS(dhcpcd)の場合

/etc/dhcpcd.confに以下を追記する。

(中略)
interface eth0 #ネットワークのインターフェイス名、wifi、有線で異なる
static ip_address=<固定したいIPアドレス(使われていない任意)>/24
static routers=<ルーターのIPアドレス>
static domain_name_servers=[<ルーターのIPアドレス> or <DNSサーバーのIPアドレス>]

ドメインの設定

Ubuntu系の場合

netplanで設定するため上の項目を参照のこと。

Debian系、Raspi OSの場合

DNSサーバーが存在し、ドメイン・ネームサーバーの設定をする場合、debian, raspbian 11なら以下を/etc/resolvconf.confに以下を追記する。
/etc/resolv.confではないこと、文法が若干異なることに注意。

(中略)
name_servers=<Name サーバーのアドレス>
search_domains=<ドメイン名>

RHEL系(NetworkManager)の場合

NetworkManagerで設定できるので、上の項目を参照のこと。

systemd-resolvedの場合

systemdを採用したlinux系にはデフォルトで入っている。

設定は/etc/systemd/resolved.confを編集する。

(中略)
DNS=192.168.1.1 8.8.8.8 # 頭に#がついているので外してDNSサーバーのアドレスを=以降に書く
Domains=<ドメイン名> # コメントの#を外し=以降にドメインの設定をする

DNSサーバーの構築

ここからは全て、Debian, Raspbian 11で確認している。

自身のローカル(自宅等)ネットワーク(LAN)内でIPを打たずにホスト名で接続できるようにしたい場合、DNSサーバーを構築する。 まずはサーバー機を用意する。そのサーバー機にBindをインストールする。

参考 : 内部向け DNS サーバの構築

$ sudo apt install bind

次に、Bindの設定、名前解決の「正引き」、「逆引き」関係の設定をしていく。 まずは/etc/bind/named.conf.localにBindの設定をしていく

(中略)
zone "<ドメイン名>" {
  type master;
  file "/etc/bind/<正引き設定ファイル名(任意)>";
};
      
zone "0.168.192.in-addr.arpa" { //192.168.0.*のような場合
  type master;
  file "/etc/bind/<逆引き設定ファイル名(任意)>";
};

正引き設定をする。先程の<正引き設定ファイル名(任意)>を設定する。 localネットワークに接続しているPCのホスト名とIPアドレスを調べておく。
linuxならホスト名はhostnameで、IPはifconfigまたはip aで見ることができる。

;
; BIND data file for local loopback interface
;
$TTL 604800 ; このファイルの情報は、他の DNS に 604800の間キャッシュされる
@ IN SOA <サーバーのホスト名>.<ドメイン名>. root.<ドメイン名>. (
<シリアル番号 (任意)> ; Serial
<リフレッシュレート> ; Refresh
<情報更新に失敗した際の時間> ; Retry
<失敗した時間がこの時間経過すると更新しなくなる> ; Expire
<他のDNSがクエリに失敗した時、 この間失敗したことがキャッシュされる> ) ; Negative Cache TTL
;
IN NS <DNSサーバーのホスト名>.<ドメイン名>.
IN MX 10 <DNSサーバーのホスト名>.<ドメイン名>.
IN A <DNSサーバーのIP>
<他PCのホスト名> IN A <ホスト名に紐付いているIP> ;他PCが複数の場合この行をそれぞれ追加
逆引きの設定もする。
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA <サーバーのホスト名>.<ドメイン名>. root.<ドメイン名>. (
<シリアル番号 (任意)> ; Serial
<リフレッシュレート> ; Refresh
<情報更新に失敗した際の時間> ; Retry
<失敗した時間がこの時間経過すると更新しなくなる> ; Expire
<他のDNSがクエリに失敗した時、 この間失敗したことがキャッシュされる> ) ; Negative Cache TTL
;
IN NS <サーバーのホスト名>.<ドメイン名>.
IN PTR <ドメイン名>.
IN A 255.255.255.0 ; サブネットマスク この場合は末尾のIPアドレスが異なるPCを管理
<他PCの末尾のIP> IN PTR <サーバーのホスト名>.<ドメイン名>.

/etc/hosts、/etc/resolvconf.confの設定をする。/etc/hostsはDNS サーバの情報と hosts の情報が不整合を起こさない為に localhost 以外はコメントアウト。 /etc/resolvconf.confはドメインの設定を参照のこと。 sudo systemctl restart namedでbindを再起動する。nslookupping等で名前解決できることを確認する。