Ubuntu20.04 Wifi設定(コマンドラインから)

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を接続する。
  • 固定IP&DHCPを設定する。

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してみると良い。