このチュートリアルでは、Debian11/10のコマンドラインからWi-Fiネットワークに接続する方法を紹介します。 wpa_supplicantを使用するサーバーとデスクトップ 、これはWPAプロトコルのサプリカントコンポーネントの実装です。無線LANのサプリカントは、エンドユーザーのコンピューターにインストールされているクライアントソフトウェアであり、ネットワークに参加するには認証が必要です。
wpa_supplicantをインストールする必要があることに注意してください Wi-Fiに接続する前にソフトウェアを使用するため、最初に有線イーサネットに接続する必要があります。これは1回だけ行われます。この方法が気に入らなくても、私に腹を立てないでください。たぶんいつかDebianはwpa_supplicantを出荷するでしょう クリーンインストールで。
ステップ1:ワイヤレスインターフェイスとワイヤレスネットワークの名前を見つける
iwconfigを実行します ワイヤレスインターフェイスの名前を検索するコマンド。
iwconfig
wlan0 Linuxシステムでのワイヤレスネットワークインターフェイスの一般名です。 systemdベースのLinuxディストリビューションでは、wlp4s0という名前のワイヤレスインターフェイスがある場合があります 。
ご覧のとおり、現在、ワイヤレスインターフェイスはどのアクセスポイントにも関連付けられていません。次に、次のコマンドを実行してワイヤレスインターフェイスを起動します。
sudo ip link set dev wlp4s0 up
次のエラーが発生した場合
RTNETLINK answers: Operation not possible due to RF-kill
次のコマンドでWi-Fiのブロックを解除する必要があります。
sudo rfkill unblock wifi
次に、以下のコマンドで近くのネットワークをスキャンして、ワイヤレスネットワーク名を見つけます。 wlp4s0を置き換えます 独自のワイヤレスインターフェイス名を使用します。 ESSIDはネットワーク名の識別子です。
sudo iwlist wlp4s0 scan | grep ESSID
ステップ2:WPA_Supplicantを使用してWi-Fiネットワークに接続する
次に、wpa_supplicantをインストールします デフォルトのソフトウェアリポジトリからDebian11/10で。
sudo apt install wpasupplicant
wpa_supplicant.confという名前のファイルを作成する必要があります wpa_passphraseを使用する 効用。 wpa_supplicant.conf は、ユーザーがコンピューターに接続するすべてのネットワークを記述した構成ファイルです。次のコマンドを実行して、このファイルを作成します。 ESSID(ネットワーク名)とWi-Fiパスフレーズを独自のものに置き換えます。
wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf
ESSIDに(linuxbabe WiFiなどの空白が含まれている場合 )、ESSIDを二重引用符で囲む必要があります("linuxbabe WiFi" )上記のコマンドで。
wpa_passphraseの出力 コマンドはteeにパイプされます 、次に/etc/wpa_supplicant/wpa_supplicant.confに書き込まれます ファイル。次に、次のコマンドを使用して、ワイヤレスカードをワイヤレスアクセスポイントに接続します。
sudo wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlp4s0
次の出力は、ワイヤレスカードがアクセスポイントに正常に接続されていることを示しています。
Successfully initialized wpa_supplicant wlp4s0: SME: Trying to authenticate with c5:4a:21:53:ac:eb (SSID='CMCC-11802' freq=2437 MHz) wlp4s0: Trying to associate with c5:4a:21:53:ac:eb (SSID='CMCC-11802' 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=]
Debianデスクトップ版を使用している場合は、次のコマンドで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/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/wpa_supplicant.conf -i wlp4s0
障害が検出された場合は、常にwpa_supplicantの再起動を試みることをお勧めします。 ExecStartのすぐ下に次を追加します 行。
Restart=always
ファイルを保存して閉じます。 (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
ネットワーク構成ファイルを作成します。
sudo nano /etc/systemd/network/static.network
次の行を追加します。
[Match] Name=wlp4s0 [Network] Address=192.168.1.8/24 Gateway=192.168.1.1
ファイルを保存して閉じます。次に、.linkを作成します ワイヤレスインターフェイスのファイル。
sudo nano /etc/systemd/network/10-wifi.link
このファイルに次の行を追加します。独自のMACアドレスとワイヤレスインターフェイス名を使用する必要があります。これは、システムがワイヤレスインターフェイス名を変更しないようにするためです。
[Match] MACAddress=a8:4b:05:2b:e8:54 [Link] NamePolicy= Name=wlp4s0
ファイルを保存して閉じます。次に、networking.serviceを無効にします systemd-networkd.serviceを有効にします 、ネットワーキングを担当します。
sudo systemctl disable networking sudo systemctl enable systemd-networkd
これで、systemd-networkdを再起動できます 構成が機能するかどうかを確認します。
sudo systemctl restart systemd-networkd
静的IPアドレスを取得する別の方法は、ルーターの管理インターフェースにログインし、ルーターがこの機能をサポートしている場合は、ワイヤレスカードのMACアドレスに静的IPを割り当てることです。
推奨読書
- 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/wpa_supplicant.conf
-aを使用する必要があることに注意してください teeのオプション コマンド。元のコンテンツを削除する代わりに、新しいWifiネットワークをファイルに追加します。
Wi-Fiセキュリティ
WPA2 TKIPは使用しないでください またはWPA2TKIP + AES Wi-Fiルーターの暗号化方式として。 TKIPはもはや安全とは見なされません。 WPA2-AESを使用できます 暗号化方式として。