GNU/Linux >> Linux の 問題 >  >> Ubuntu

WPAサプリカントを使用してUbuntu18.04/20.04のターミナルからWi-Fiに接続します

このチュートリアルでは、 wpa_supplicant を使用して、Ubuntu 18.04/20.04サーバーとデスクトップのコマンドラインからWi-Fiネットワークに接続する方法を学習します。 。最新の家庭用ワイヤレスネットワークでは、エンタープライズネットワーク用に設計されたWPA-Enterpriseとは対照的に、通信はWPA-PSK(事前共有キー)で保護されています。 WPA-PSKはWPA-Personalとも呼ばれます。 wpa_supplicant WPAサプリカントコンポーネントの実装です。無線LANのサプリカントは、エンドユーザーのコンピューターにインストールされているクライアントソフトウェアであり、ネットワークに参加するには認証が必要です。

wpa_supplicantをインストールする必要があることに注意してください Wi-Fiに接続する前にソフトウェアを使用するため、最初に有線イーサネットに接続する必要があります。これは1回だけ行われます。この方法が気に入らなくても、私に腹を立てないでください。たぶんいつかUbuntuはwpa_supplicantを出荷するでしょう クリーンインストールで。

ステップ1:ワイヤレスインターフェイスとワイヤレスネットワークの名前を見つける

iwconfigを実行します ワイヤレスインターフェイスの名前を検索するコマンド。

iwconfig

wlan0 Systemdを使用しないLinuxシステムでのワイヤレスネットワークインターフェイスの一般名でした。 UbuntuはSystemdを使用しているため、ワイヤレスネットワークインターフェイスの名前はwlp4s0のようになります。 。現在、どのアクセスポイントにも関連付けられていないこともわかります。

ワイヤレスインターフェイスが表示されない場合は、次のコマンドを使用してワイヤレスインターフェイスを起動する必要があります。

sudo ifconfig wlp4s0 up

次に、以下のコマンドを使用して近くのネットワークをスキャンし、ワイヤレスネットワーク名を見つけます。 wlp4s0を置き換えます 独自のワイヤレスインターフェイス名を使用します。 ESSIDはネットワーク名の識別子です。

sudo iwlist wlp4s0 scan | grep ESSID

ステップ2:WPA_Supplicantを使用してWi-Fiネットワークに接続する

次に、wpa_supplicantをインストールします デフォルトのソフトウェアリポジトリからのUbuntu18.04/20.04で。

sudo apt install wpasupplicant

wpa_supplicant.confという名前のファイルを作成する必要があります wpa_passphraseを使用する 効用。 wpa_supplicant.conf は、ユーザーがコンピューターに接続するすべてのネットワークを記述した構成ファイルです。次のコマンドを実行して、このファイルを作成します。 ESSIDとWi-Fiパスフレーズを独自のものに置き換えます。

wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee /etc/wpa_supplicant.conf

上のスクリーンショットでは、ESSIDに空白が含まれているため、ESSIDを二重引用符で囲んでいることに注意してください。

wpa_passphraseの出力 コマンドはteeにパイプされます 、次に/etc/wpa_supplicant.confに書き込まれます ファイル。次に、次のコマンドを使用して、ワイヤレスカードをワイヤレスアクセスポイントに接続します。

sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlp4s0

次の出力は、ワイヤレスカードがアクセスポイントに正常に接続されていることを示しています。

Successfully initialized wpa_supplicant
wlp4s0: SME: Trying to authenticate with c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)
wlp4s0: Trying to associate with c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)
wlp4s0: Associated with c5:4a:21:53:ac:eb
wlp4s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
wlp4s0: WPA: Key negotiation completed with c5:4a:21:53:ac:eb [PTK=CCMP GTK=CCMP]
wlp4s0: CTRL-EVENT-CONNECTED - Connection to c5:4a:21:53:ac:eb completed [id=0 id_str=]

Ubuntuデスクトップ版を使用している場合は、次のコマンドでNetwork Managerを停止する必要があります。そうしないと、 wpa_supplicantを使用するときに接続の問題が発生します。 。

sudo systemctl stop NetworkManager

また、次のコマンドを実行して、起動時にNetworkManagerの自動起動を無効にします。

sudo systemctl disable NetworkManager-wait-online NetworkManager-dispatcher NetworkManager

デフォルトでは、wpa_supplicantはフォアグラウンドで実行されます。接続が完了したら、別のターミナルウィンドウを開いて実行します

iwconfig

ワイヤレスインターフェイスがアクセスポイントに関連付けられていることがわかります。

CTRL+Cを押すことができます 現在のwpa_supplicantを停止します -Bを追加して、バックグラウンドで処理および実行します フラグ。

sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlp4s0

認証されてワイヤレスネットワークに接続されていますが、まだIPアドレスを持っていません。 DHCPサーバーからプライベートIPアドレスを取得するには、次のコマンドを使用します。

sudo dhclient wlp4s0

これで、ワイヤレスインターフェイスにプライベートIPアドレスが割り当てられ、次のように表示できます。

ip addr show wlp4s0

これで、インターネットにアクセスできます。プライベートIPアドレスを解放するには、

を実行します。
sudo dhclient wlp4s0 -r

隠しワイヤレスネットワークへの接続

ワイヤレスルーターがESSIDをブロードキャストしない場合は、/etc/wpa_supplicant.confに次の行を追加する必要があります ファイル。

scan_ssid=1

以下のように:

network={
        ssid="LinuxBabe.Com Network"
        #psk="12345qwert"
        psk=68add4c5fee7dc3d0dac810f89b805d6d147c01e281f07f475a3e0195
        scan_ssid=1
}

ステップ3:起動時に自動接続

起動時にワイヤレスネットワークに自動的に接続するには、wpa_supplicant.serviceを編集する必要があります ファイル。 /lib/systemd/system/からファイルをコピーすることをお勧めします /etc/systemd/system/へのディレクトリ 新しいバージョンのwpa_supplicantは必要ないため、ディレクトリからファイルの内容を編集します 変更を上書きします。

sudo cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.service

Nanoなどのコマンドラインテキストエディタを使用してファイルを編集します。

sudo nano /etc/systemd/system/wpa_supplicant.service

次の行を見つけます。

ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant

次のように変更します。ここでは、構成ファイルとワイヤレスインターフェイス名をExecStartに追加しました。 コマンド。

ExecStart=/sbin/wpa_supplicant -u -s -c /etc/wpa_supplicant.conf -i wlp4s0

障害が検出された場合は、常にwpa_supplicantの再起動を試みることをお勧めします。 ExecStartのすぐ下に次を追加します 行。

Restart=always

このファイルに次の行が見つかった場合は、コメントアウトします(行の先頭に#文字を追加します)。

Alias=dbus-fi.w1.wpa_supplicant1.service

ファイルを保存して閉じます。 (Nanoテキストエディタでファイルを保存するには、Ctrl+Oを押します。 、次にEnterを押します 確認するために。終了するには、Ctrl+Xを押します 。)次にsystemdをリロードします。

sudo systemctl daemon-reload

wpa_supplicantを有効にする 起動時に開始するサービス。

sudo systemctl enable wpa_supplicant.service

また、dhclientを開始する必要があります 起動時にDHCPサーバーからプライベートIPアドレスを取得します。これは、dhclientのsystemdサービスユニットを作成することで実現できます。 。

sudo nano /etc/systemd/system/dhclient.service

次のテキストをファイルに入れます。

[Unit]
Description= DHCP Client
Before=network.target
After=wpa_supplicant.service

[Service]
Type=forking
ExecStart=/sbin/dhclient wlp4s0 -v
ExecStop=/sbin/dhclient wlp4s0 -r
Restart=always
 
[Install]
WantedBy=multi-user.target

ファイルを保存して閉じます。次に、このサービスを有効にします。

sudo systemctl enable dhclient.service

静的IPアドレスを取得する方法

静的IPアドレスを取得する場合は、dhclient.serviceを無効にする必要があります 。

sudo systemctl disable dhclient.service

ネットプランを使用して、Ubuntu 18.04/20.04で静的IPアドレスを構成する必要があります。 /etc/netplan/の下に構成ファイルを作成します 。

sudo nano /etc/netplan/10-wifi.yaml

このファイルに次の行を追加します。 192.168.0.102を置き換えます ご希望のIPアドレスで。インデントに注意してください。余分なスペースがあると、構成が無効になります。

network:
    ethernets:
        wlp4s0:
            dhcp4: no
            addresses: [192.168.0.102/24]
            gateway4: 192.168.0.1
    version: 2

ファイルを保存して閉じます。次に、構成を適用します。

sudo netplan apply

--debugをオンにすることもできます 期待どおりに機能しない場合はオプション。

sudo netplan --debug apply

他に.yamlがある場合 /etc/netplan/の下のファイル ディレクトリ、次にnetplan 異なるファイルの構成を自動的にマージします。 netplan systemd-networkdを使用します バックエンドネットワークレンダラーとして。 wpa_supplicant.serviceを設定することをお勧めします systemd-networkd.serviceの前に実行されます 、したがって、システムは最初にWi-Fiアクセスポイントに関連付けられ、次にプライベートIPアドレスを取得します。

sudo nano /etc/systemd/system/wpa_supplicant.service

次の行を見つけます。

Before=network.target

次のように変更します:

Before=network.target systemd-networkd.service

ファイルを保存して閉じます。

静的IPアドレスを取得する別の方法は、ルーターの管理インターフェースにログインし、ルーターがこの機能をサポートしている場合は、ワイヤレスカードのMACアドレスに静的IPを割り当てることです。

ホスト名を使用してUbuntuのサービスにアクセスする

実際には、Ubuntuボックスの静的IPアドレスを取得する必要はありません。 UbuntuはmDNS(マルチキャストDNS)を使用して、そのホスト名をローカルネットワークにアナウンスでき、クライアントはそのホスト名を使用してUbuntuボックスのサービスにアクセスできます。このホスト名は、IPアドレスが変更された場合でも、UbuntuボックスのIPアドレスにいつでも解決できます。

mDNSを使用するには、mDNS/DNS-SDのオープンソース実装であるavahi-daemonをインストールする必要があります。

sudo apt install avahi-daemon

サービスを開始します。

sudo systemctl start avahi-daemon

起動時に自動起動を有効にします。

sudo systemctl enable avahi-daemon

AvahiデーモンはUDP5353でリッスンするため、ファイアウォールでこのポートを開く必要があります。 UFWを使用する場合は、次のコマンドを実行します。

sudo ufw allow 5353/udp

次に、hostnamectlを使用してUbuntuボックスに一意のホスト名を設定する必要があります 指図。 ubuntuboxを、ローカルネットワーク内の他のデバイスによってすでに使用されていない優先ホスト名に置き換えます。

sudo hostnamectl set-hostname ubuntubox

ここでavahi-daemonを再起動します。

sudo systemctl restart avahi-daemon

でステータスを確認した場合

systemctl status avahi-daemon

.localで終わるmDNSホスト名を確認できます ドメイン。

クライアントコンピュータには、mDNS/DNS-SDソフトウェアもインストールする必要があります。

  • Linuxユーザーはavahi-daemonをインストールする必要があります 。
  • Windowsユーザーは、Bonjour印刷サービスをインストールするかiTunesをインストールして、Bonjourサービスを有効にする必要があります。
  • macOSでは、Bonjourがプリインストールされています。

これで、ubuntubox.localを使用してサービスにアクセスできます ホスト名。IPアドレスを確認して入力する必要がありません。

RaspberryPiでWi-Fiのブロックを解除する

RaspberryPi用のUbuntuARMOSは、デフォルトでワイヤレスインターフェイスをブロックします。次のコマンドでブロックを解除する必要があります:

sudo rfkill unblock wifi

起動時にブロックを解除するには、systemdサービスユニットを作成します。

sudo nano /etc/systemd/system/unblock-wifi.service

次の行を追加します。

[Unit]
Description=RFKill Unblock WiFi Devices
Requires=wpa_supplicant.service
After=wpa_supplicant.service

[Service]
Type=oneshot
ExecStart=/usr/sbin/rfkill unblock wifi
ExecStop=
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

ファイルを保存して閉じます。起動時に自動起動を有効にします。

sudo systemctl enable unblock-wifi

unblock-wifi.service wpa_supplicant.serviceの後に実行する必要があります が起動します。そうしないと、wifiのブロックを解除できません。デスクトップ環境をインストールしている場合は、接続を妨害する可能性のあるネットワークマネージャーが実行されている可能性があることに注意してください。無効にする必要があります。たとえば、Raspberry Piで軽量のLXQTデスクトップ環境を使用しています(sudo apt install lubuntu-desktop )そしてconnman.serviceとNetworkManager.serviceを無効にする必要があります。

sudo systemctl disable connman.service NetworkManager.service

推奨読書

  • LinuxでSystemdを使用する方法–サービス、実行レベル、ログを管理する

複数のWi-Fiネットワーク

/etc/wpa_supplicant.conf 構成ファイルには、複数のWi-Fiネットワークを含めることができます。 wpa_supplicantは、構成ファイル内のネットワークブロックの順序、ネットワークセキュリティレベル、および信号強度に基づいて、最適なネットワークを自動的に選択します。

2つ目のWi-Fiネットワークを追加するには、

を実行します
wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee -a /etc/wpa_supplicant.conf

-aを使用する必要があることに注意してください teeのオプション コマンド。元のコンテンツを削除する代わりに、新しいWifiネットワークをファイルに追加します。

Wi-Fiセキュリティ

WPA2 TKIPは使用しないでください またはWPA2TKIP + AES Wi-Fiルーターの暗号化方式として。 TKIPはもはや安全とは見なされません。 WPA2-AESを使用できます 暗号化方式として。


Ubuntu
  1. Ubuntuでワイヤレスインターフェースをセットアップする

  2. Ubuntu –不要な変更行のある端末から長い1行のテキストをコピーしますか?

  3. Ubuntu 14.04でWpsピンを使用してWifiに接続する方法は?

  1. Ubuntu16.04でターミナルからWiFiを接続する方法

  2. Ubuntu 18.04/20.04でLogrotateを使用してログローテーションを設定する方法

  3. Ubuntu 18.04 / 20.04(ターミナル/ GUI)にDropboxをインストールする方法

  1. Ubuntu20.04のターミナルからWiFiに接続する方法

  2. Ubuntu 18.04/20.04にGIMPをインストールする方法

  3. Ubuntuターミナルからのコントロール画面の明るさ