このチュートリアルでは、Ubuntuのターミナルからワイヤレスネットワークに接続する方法を学習します。これは、通常のデスクトップ環境にアクセスできないUbuntuサーバーを使用している場合に特に役立ちます。
私は主に自宅のコンピューターでデスクトップLinuxを使用しています。また、FOSSや関連するウェブサイトをホストするための複数のLinuxサーバーと、Nextcloud、Discourse、Ghost、RocketChatなどのオープンソースソフトウェアもあります。
私はLinodeを使用して、Linuxサーバーをクラウドに数分ですばやくデプロイします。しかし最近、RaspberryPiにUbuntuサーバーをインストールしました。物理デバイスにサーバーをインストールするのはこれが初めてで、コマンドラインを介してUbuntuサーバーをWiFiに接続するために追加の作業を行う必要がありました。
このチュートリアルでは、UbuntuLinuxでターミナルを使用してWiFiに接続する手順を示します。すべきです
- ターミナルを使用してファイルを編集することを恐れないでください
- Wi-Fiアクセスポイント名(SSID)とパスワードを知っている
UbuntuのターミナルからWiFiに接続する
Ubuntuデスクトップを使用している場合は、GUIを使用して簡単に実行できるため、簡単です。 Ubuntuサーバーを使用していて、コマンドラインに制限されている場合は同じではありません。
UbuntuはNetplanユーティリティを使用してネットワークを簡単に構成します。 Netplanでは、ネットワークインターフェイスの説明を含むYAMLファイルを作成し、netplanコマンドラインツールを使用して、必要なすべての構成を生成します。
Netplanを使用して端末からワイヤレスネットワークに接続する方法を見てみましょう。
ステップ1:ワイヤレスネットワークインターフェイス名を特定する
ネットワークインターフェイス名を識別する方法はいくつかあります。 ipコマンド、非推奨のipconfigコマンドを使用するか、次のファイルを確認できます。
ls /sys/class/net
これにより、利用可能なすべてのネットワークインターフェイス(イーサネット、wifi、ループバック)が提供されます。ワイヤレスネットワークインターフェイスの名前は「w」で始まり、通常はwlanX、wlpxyzのように名前が付けられます。
[email protected]:~$ ls /sys/class/net
eth0 lo wlan0
このインターフェース名をメモしてください。次のステップで使用します。
ステップ2:Wi-Fiインターフェースの詳細を使用してNetplan構成ファイルを編集します
Netplan構成ファイルは/etc/netplanディレクトリにあります。このディレクトリの内容を確認すると、01-network-manager-all.ymlや50-cloud-init.yamlなどのファイルが表示されます。
Ubuntuサーバーの場合は、cloud-initファイルが必要です。デスクトップの場合は、network-managerファイルである必要があります。これは、UbuntuデスクトップがUbuntuサーバーと異なるいくつかの点の1つです。
LinuxデスクトップのNetworkManagerを使用すると、ワイヤレスネットワークを選択できます。 Wi-Fiアクセスポイントをその構成にハードコーディングすることができます。これは、接続が自動的に切断される場合(サスペンドなど)に役立つ可能性があります。
どちらのファイルでも、編集のために開きます。 UbuntuにはNanoエディターがプリインストールされているので、Nanoエディターに少し慣れているといいのですが。
sudo nano /etc/netplan/50-cloud-init.yaml
YAMLファイルは、スペース、インデント、配置に非常に敏感です。インデントが表示される場所では、タブを使用せず、代わりに4つ(またはYAMLファイルですでに使用されている2つ)のスペースを使用してください。
基本的に、アクセスポイント名(SSID)とそのパスワード(通常)を引用符で囲んだ次の行を追加する必要があります。
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"SSID_name":
password: "WiFi_password"
繰り返しますが、私が示したように配置を維持してください。そうしないと、YAMLファイルが解析されず、エラーがスローされます。
完全な構成ファイルは次のようになります。
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"SSID_name":
password: "WiFi_password"
インスタンスを再起動しても変更が持続しないというメッセージにもかかわらず、それが機能するのは奇妙だと思います。
とにかく、次のコマンドを使用して構成を生成します:
sudo netplan generate
そして今これを適用します:
sudo netplan apply
運が良ければ、ネットワークに接続する必要があります。 Webサイトにpingを実行するか、aptupdateコマンドを実行してみてください。
ただし、状況がスムーズに進まず、エラーが発生する場合があります。その場合は、いくつかの追加手順を試してください。
考えられるトラブルシューティング
netplan applyコマンドを使用すると、次のようなエラーが出力に表示される可能性があります。
Failed to start netplan-wpa-wlan0.service: Unit netplan-wpa-wlan0.service not found.
Traceback (most recent call last):
File "/usr/sbin/netplan", line 23, in <module>
netplan.main()
File "/usr/share/netplan/netplan/cli/core.py", line 50, in main
self.run_command()
File "/usr/share/netplan/netplan/cli/utils.py", line 179, in run_command
self.func()
File "/usr/share/netplan/netplan/cli/commands/apply.py", line 46, in run
self.run_command()
File "/usr/share/netplan/netplan/cli/utils.py", line 179, in run_command
self.func()
File "/usr/share/netplan/netplan/cli/commands/apply.py", line 173, in command_apply
utils.systemctl_networkd('start', sync=sync, extra_services=netplan_wpa)
File "/usr/share/netplan/netplan/cli/utils.py", line 86, in systemctl_networkd
subprocess.check_call(command)
File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['systemctl', 'start', '--no-block', 'systemd-networkd.service', 'netplan-wpa-wlan0.service']' returned non-zero exit status 5.
wpa_supplicantサービスが実行されていない可能性があります。次のコマンドを実行します:
sudo systemctl start wpa_supplicant
netplanapplyをもう一度実行します。それが問題をうまく解決するなら。それ以外の場合は、以下を使用してUbuntuシステムをシャットダウンします。
shutdown now
Ubuntuシステムを再起動し、ログインしてネットプランを生成して適用します。
sudo netplan generate
sudo netplan apply
現在、(エラーではなく)警告が表示される場合があります。これは警告であり、エラーではありません。実行中のsystemdサービスを確認したところ、netplan-wpa-wlan0.serviceがすでに実行されていることがわかりました。おそらく、すでに実行されていて、「netplan apply」が構成ファイルを更新したため(変更がなくても)、警告が表示されました。
Warning: The unit file, source configuration file or drop-ins of netplan-wpa-wlan0.service changed on disk. Run 'systemctl daemon-reload' to reload units.
これは重要ではなく、apt updateを実行して、インターネットがすでに機能していることを確認できます。
このチュートリアルの助けを借りて、Ubuntuのコマンドラインを使用してwifiに接続できたと思います。それでも問題が解決しない場合は、コメントセクションでお知らせください。