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を変えれば同じでしょう。
満足。