Netplan +Networkmanagerを使用して、Ubuntu20.04のWifi設定をコマンドライン行った。使用しているのは20.04だが、18.04でも可能。
準備
対象PCにNetplanをインストールする。おそらく標準でインストールされているので必要ないかもしれない。
$ sudo apt update $ sudo apt install netplan.io network-manager
Netplanについて
Ubuntuにおいてsystemd-networkdかnetwork-managerがNetworkの設定や管理などなどを行っている。ただ、もっとわかりやすく設定をおこないたい、ということでNetplanが生まれた。注意点としてはNetplanはsystemd-networkdかnetwork-managerの設定ファイルを生成するのみで、実際に仕事をしているのはsystemd-networkdかnetwork-managerである。
Netplanでの設定はyamlファイルで書き、それを/etc/netplanディレクトリにおいて、netplan applyコマンドで適用する。
設定
今回は以下のような設定を行う。
wifiデバイスが接続されていることの確認
下記コマンドを行う。wl…というような名前のデバイスが見つかればOK。このデバイス名はのちほど使用する。 (命名はudevというデーモンが行っている。環境によって名前は異なってくる。)
$ ip a ~~~~ 7: wlan0:mtu 1500 qdisc mq state UP group default qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
アクセスポイントの検出
下記コマンドでアクセスポイントを検出する。目的としているものが見つかればOK。
$ nmcli d wifi list IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY * XXXXXXXXXXX Infra 6 16 Mbit/s 100 ▂▄▆█ WPA1 WPA2
Netplan用yamlファイルの記述
下記のようにファイルを記載する。内容は次のように変更する。
- "wlan0"を自分のWifiデバイス名に置き換える。
- DHCPを使用しない場合は"dhcp4: false"とする。
- addresses: は設定したい固定IPアドレスにする。下記だと"192.168.11.101/24"に設定される。
- XXXXXXXXXXXは自分のSSIDに変更する。
- xxxxxxxxxxxは自分のパスワードに変更する。
$ sudo vim /etc/netplan/99-manual.yaml
network: version: 2 renderer: NetworkManager wifis: wlan0: dhcp4: true addresses: [192.168.11.101/24] access-points: XXXXXXXXXXX: password: "xxxxxxxxxxx"
設定の適用
下記コマンドで適用する。再起動は必要ない。(ただし、設定をやり直したりすると再起動が必要な場合がある。)
$ sudo netplan apply
確認
下記コマンドでIPが振られていることを確認する。(192.168.11.6/24はDHCPで振られたもの。)
ちなみにSSHでは6でも101でもどちらでもアクセスできる。
$ ip a ~~~~ 7: wlan0:mtu 1500 qdisc mq state UP group default qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.11.6/24 brd 192.168.11.255 scope global dynamic noprefixroute wlan0 valid_lft 169127sec preferred_lft 169127sec inet 192.168.11.101/24 brd 192.168.11.255 scope global secondary noprefixroute wlan0 valid_lft forever preferred_lft forever
外部ネットワークに接続されているかはpingとばしたり、apt updateしてみると良い。