DNS設定をnmcliコマンドで変更

設定済みのDNS設定を変更したい場合、nmcliコマンドで変更する場合はどうすればよかったか。
/etc/resolv.conf はNetworkManager管理となっているため、そちらを修正して反映するのはよろしくないというか恥ずかしいかな。
なので、恥ずかしい思いをしないために備忘録を残しておきます。

実行するnmcliコマンド

・ネットワークインターフェース名を確認
nmcli d
・現在のDNS設定を確認
nmcli –fields ipv4 con show [インターフェイス名]
・DNS設定を変更
nmcli con mod [インターフェイス名] ipv4.dns “[DNS のIP アドレス(複数指定する場合はスペース区切りで指定)]”
・(現在のDNS設定に追加したい場合)
nmcli con mod [インターフェイス名] +ipv4.dns “[追加するDNS のIP アドレス]”
・(現在のDNS設定から削除したい場合)
nmcli con mod [インターフェイス名] -ipv4.dns “[削除するDNS のIP アドレス]”
・設定を反映
nmcli con down [インターフェイス名] ; nmcli con up [インターフェイス名]
・設定変更後のDNS設定を確認
nmcli –fields ipv4 con show [インターフェイス名]

参考コマンド

インターフェイス名が「enp0s3」、変更前のDNS設定「8.8.8.8」を「1.1.1.1」および「1.0.0.1」に変更する場合は以下になります。

・変更前のresolv.conf設定
# cat /etc/resolv.conf
# Generated by NetworkManager
search test.intra
nameserver 8.8.8.8

・インターフェイス名を確認
# nmcli d
DEVICE  TYPE      STATE     CONNECTION
enp0s3  ethernet  接続済み  enp0s3
lo      loopback  管理無し  --

・変更前のenp0s3の設定
# nmcli --fields ipv4 con show enp0s3
ipv4.method:                            manual
ipv4.dns:                               8.8.8.8
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         192.168.10.20/24
ipv4.gateway:                           192.168.10.254
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                いいえ
ipv4.ignore-auto-dns:                   いいえ
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                はい
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.dhcp-hostname-flags:               0x0 (none)
ipv4.never-default:                     いいえ
ipv4.may-fail:                          はい
ipv4.required-timeout:                  -1 (default)
ipv4.dad-timeout:                       -1 (default)
ipv4.dhcp-vendor-class-identifier:      --
ipv4.link-local:                        0 (default)
ipv4.dhcp-reject-servers:               --

・設定変更
# nmcli con mod enp0s3 ipv4.dns "1.1.1.1 1.0.0.1"

・設定を反映
# nmcli con down enp0s3 ; nmcli con up enp0s3
接続 'enp0s3' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/6)
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/7)

・変更後のresolv.conf設定
# cat /etc/resolv.conf
# Generated by NetworkManager
search test.intra
nameserver 1.1.1.1
nameserver 1.0.0.1

・変更後のenp0s3の設定
# nmcli --fields ipv4 con show enp0s3
ipv4.method:                            manual
ipv4.dns:                               1.1.1.1,1.0.0.1
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         192.168.10.20/24
ipv4.gateway:                           192.168.10.254
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                いいえ
ipv4.ignore-auto-dns:                   いいえ
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                はい
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.dhcp-hostname-flags:               0x0 (none)
ipv4.never-default:                     いいえ
ipv4.may-fail:                          はい
ipv4.required-timeout:                  -1 (default)
ipv4.dad-timeout:                       -1 (default)
ipv4.dhcp-vendor-class-identifier:      --
ipv4.link-local:                        0 (default)
ipv4.dhcp-reject-servers:               --

コメントは受け付けていません。