Raspberry Piでは無線LANの再接続対応のためにNetworkManagerを使ってましたが、NetworkManagerが入ってて有線LANのIPアドレスを固定したい時の設定を今までしてなくて、しようと思ったのでやり方をメモ。
こちらの記事が参考になりました。
Vagrantのprivate_networkをCentOS7.0で設定 - Qiita
デフォルトでは"Wired Connection 1"が有線LANの設定としてnmcli conコマンドの一覧で確認できますが、設定ファイルが見当たりません。
pi@ejebian:~ $ nmcli con
NAME UUID TYPE DEVICE
Wired connection 1 8658065d-21ef-426f-ac48-a1b8725eec46 802-3-ethernet eth0
pi@ejebian:~ $ ls /etc/NetworkManager/system-connections/
pi@ejebian:~ $
それはさておき設定。
$ sudo nmcli con mod "Wired connection 1" ipv4.addresses "192.168.29.89/24 192.168.29.1"
$ sudo nmcli con mod "Wired connection 1" ipv4.dns "192.168.29.39"
$ sudo nmcli con mod "Wired connection 1" ipv4.method "manual"
意味は以下の様になります。
$ sudo nmcli con mod "Wired connection 1" ipv4.addresses "IP/prefix DefaultGateway"
$ sudo nmcli con mod "Wired connection 1" ipv4.dns "DNS"
$ sudo nmcli con mod "Wired connection 1" ipv4.method "manual"
ヘルプを見るとつなげてかけるようなので、こういう書き方もできるみたいです。
$ sudo nmcli con mod "Wired connection 1" ipv4.addresses "192.168.29.89/24 192.168.29.1" ipv4.dns "192.168.29.39" ipv4.method "manual"
あとIPv6を切りたい方はこれ。
$ sudo nmcli con mod "Wired connection 1" ipv6.method "ignore"
設定内容を確認するには以下のコマンドを実行します。
pi@ejebian:~ $ nmcli con show "Wired connection 1"
connection.id: Wired connection 1
connection.uuid: 8658065d-21ef-426f-ac48-a1b8725eec46
connection.interface-name: --
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.timestamp: 1450881021
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: --
connection.slave-type: --
connection.secondaries:
connection.gateway-ping-timeout: 0
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mac-address: (略)
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu: auto
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options:
ipv4.method: manual
ipv4.dns: 192.168.29.39
ipv4.dns-search:
ipv4.addresses: { ip = 192.168.29.89/24, gw = 192.168.29.1 }
ipv4.routes:
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.never-default: no
ipv4.may-fail: yes
ipv6.method: ignore
ipv6.dns:
ipv6.dns-search:
ipv6.addresses:
ipv6.routes:
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.ip6-privacy: -1 (unknown)
ipv6.dhcp-hostname: --
GENERAL.NAME: Wired connection 1
GENERAL.UUID: 8658065d-21ef-426f-ac48-a1b8725eec46
GENERAL.DEVICES: eth0
GENERAL.STATE: activated
GENERAL.DEFAULT: yes
GENERAL.DEFAULT6: no
GENERAL.VPN: no
GENERAL.ZONE: --
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/0
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/6
GENERAL.SPEC-OBJECT: --
GENERAL.MASTER-PATH: --
IP4.ADDRESS[1]: ip = 192.168.29.89/24, gw = 192.168.29.1
IP4.DNS[1]: 192.168.29.39
IP6.ADDRESS[1]: ip = (略…あれ、無効化してるけど出るのか?)
IP6.ADDRESS[2]: ip = (略…これはLinkLocalのぶん)
設定が終わると、さっきはなかった設定ファイルができてたりします。設定の拍子で生成されるようです。内容も割とシンプルでした。
pi@ejebian:~ $ ls /etc/NetworkManager/system-connections/
Wired connection 1
pi@ejebian:~ $ sudo cat /etc/NetworkManager/system-connections/Wired\ connection\ 1
[ethernet]
mac-address=(略)
[connection]
id=Wired connection 1
uuid=8658065d-21ef-426f-ac48-a1b8725eec46
type=ethernet
timestamp=1450881021
[ipv6]
method=ignore
[ipv4]
method=manual
dns=192.168.29.39;
address1=192.168.29.89/24,192.168.29.1
無線LANの場合も、IDを変えれば同じでしょう。
満足。