<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Relz</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Relz"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Relz"/>
	<updated>2026-06-10T09:09:07Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=NetworkManager&amp;diff=41604</id>
		<title>NetworkManager</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=NetworkManager&amp;diff=41604"/>
		<updated>2026-06-07T11:16:26Z</updated>

		<summary type="html">&lt;p&gt;Relz: AUR から利用できる Wayland 向けの GTK4/libadwaita layer-shell サイドバーとして、nm-sidebar を NetworkManager のフロントエンドセクションに追加しました。これにより、CLI、ホットキー、ランチャー、Waybar のワークフローに適した NetworkManager UI をユーザーが見つけやすくなります。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ネットワークマネージャ]]&lt;br /&gt;
[[Category:DHCP]]&lt;br /&gt;
[[ar:Networkmanager]]&lt;br /&gt;
[[de:Networkmanager]]&lt;br /&gt;
[[en:NetworkManager]]&lt;br /&gt;
[[fr:NetworkManager]]&lt;br /&gt;
[[hu:NetworkManager]]&lt;br /&gt;
[[pt:NetworkManager]]&lt;br /&gt;
[[ru:NetworkManager]]&lt;br /&gt;
[[zh-hans:NetworkManager]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ネットワーク設定}}&lt;br /&gt;
{{Related|ワイヤレスネットワーク設定}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:ja:NetworkManager|NetworkManager]] は、システムがネットワークに自動的に接続できるようにするためにネットワークの検出と設定の機能を提供するプログラムです。&lt;br /&gt;
&lt;br /&gt;
[https://networkmanager.dev/ NetworkManager] は無線ネットワークと有線ネットワークの両方で有用です。無線ネットワークでは、NetworkManager は既知の無線ネットワークを優先するようになっており、最も信頼性のあるネットワークに切り替える機能もあります。NetworkManager 対応のアプリケーションはオンラインモードとオフラインモードの切り替えが可能です。&lt;br /&gt;
&lt;br /&gt;
また、NetworkManager は無線接続よりも有線接続を優先するようになっており、モデム接続と特定の種類の VPN に対応しています。&lt;br /&gt;
&lt;br /&gt;
{{Warning|デフォルトでは、シークレット (Wi-Fi のパスワードなど) は root ユーザからファイルシステムでアクセス可能であり、さらに GUI ([[#nm-applet]] など) を介して設定にアクセスできるユーザからもアクセス可能です。詳細は [[#Wi-Fi パスワードの暗号化]] を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager は {{Pkg|networkmanager}} パッケージで[[インストール]]できます。このパッケージには、デーモン、コマンドラインインターフェイス (&#039;&#039;nmcli&#039;&#039;)、そして curses ベースのインターフェイス (&#039;&#039;nmtui&#039;&#039;) が含まれています。&lt;br /&gt;
&lt;br /&gt;
=== NetworkManager を有効化する ===&lt;br /&gt;
&lt;br /&gt;
インストールしたら、{{ic|NetworkManager.service}} を[[起動/有効化]]する必要があります。NetworkManager デーモンが起動すると、既に構成されている利用可能な &amp;quot;システム接続&amp;quot; に自動的に接続します。&amp;quot;ユーザ接続&amp;quot; や未構成の接続を設定したり接続したりするには、&#039;&#039;nmcli&#039;&#039; やアプレットが必要です。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 各ネットワークインターフェイスは、ただ一つの [[ネットワーク設定#ネットワークマネージャ|DHCP クライアントあるいはネットワークマネージャ]]のみで管理する必要があります。つまり、システム上には複数の DHCP クライアントあるいはネットワークマネージャを動かすべきではありません。現在実行中のサービスのリストを {{ic|1=systemctl --type=service}} で確認し、競合しているサービスを[[停止]]あるいは再設定してください。&lt;br /&gt;
* [[systemd-resolved]] が[[起動]]されていない場合、エラーメッセージがログに溢れ始めます。詳細は [[#Unit dbus-org.freedesktop.resolve1.service not found]] を見てください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 追加のインターフェイス ===&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|nm-connection-editor}}: グラフィカルユーザインターフェイス。&lt;br /&gt;
* {{Pkg|network-manager-applet}}: システムトレイアプレット ([[#nm-applet]] 章を参照)。&lt;br /&gt;
&lt;br /&gt;
=== モバイルブロードバンドサポート ===&lt;br /&gt;
&lt;br /&gt;
NetworkManager はモバイルブロードバンド接続のサポートに [[ModemManager]] を使用します。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|modemmanager}} と {{Pkg|usb_modeswitch}} を[[インストール]]してください。その後、{{ic|ModemManager.service}} を[[有効化]]し、[[起動]]してください。&lt;br /&gt;
&lt;br /&gt;
ModemManager を認識させるために {{ic|NetworkManager.service}} を[[再起動]]する必要がある場合があります。サービスを再起動し、モデムを挿し直せば、認識されるはずです。&lt;br /&gt;
&lt;br /&gt;
フロントエンド (例えば {{Pkg|nm-connection-editor}}) から接続を追加し、接続タイプにモバイルブロードバンドを選択してください。ISP と料金プランを選んだら、[[Wikipedia:ja:APN|APN]] とその他の設定が {{Pkg|mobile-broadband-provider-info}} にある情報で自動的に書き込まれるはずです。&lt;br /&gt;
&lt;br /&gt;
=== PPPoE / DSL サポート ===&lt;br /&gt;
&lt;br /&gt;
PPPoE / DSL サポートに関しては {{Pkg|ppp}} を[[インストール]]してください。PPPoE 接続を追加するには、{{ic|1=nm-connection-editor}} を使って新しい DSL/PPPoE 接続を追加してください。&lt;br /&gt;
&lt;br /&gt;
=== VPN サポート ===&lt;br /&gt;
&lt;br /&gt;
NetworkManager 1.16 から [[WireGuard]] のネイティブなサポートが追加されました。必要なのは {{ic|wireguard}} カーネルモジュールだけです。詳細は [https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/ NetworkManager のブログ記事の WireGuard] を見てください。&lt;br /&gt;
&lt;br /&gt;
その他の VPN タイプに対するサポートはプラグインなシステムをベースとしています。以下のパッケージで提供されています:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|networkmanager-openconnect}}: [[OpenConnect]] 用&lt;br /&gt;
* {{Pkg|networkmanager-openvpn}}: [[OpenVPN]] 用&lt;br /&gt;
* {{Pkg|networkmanager-pptp}}: [[PPTP クライアント]]用&lt;br /&gt;
* {{Pkg|networkmanager-strongswan}}: [[strongSwan]] 用&lt;br /&gt;
* {{Pkg|networkmanager-vpnc}}&lt;br /&gt;
* {{AUR|networkmanager-fortisslvpn}}&lt;br /&gt;
* {{AUR|networkmanager-iodine-git}}&lt;br /&gt;
* {{AUR|networkmanager-libreswan}}&lt;br /&gt;
* {{Pkg|networkmanager-l2tp}}&lt;br /&gt;
* {{AUR|networkmanager-ssh}}&lt;br /&gt;
* {{Pkg|network-manager-sstp}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|1=VPN サポートに関連する[https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues?search=VPN&amp;amp;state=opened バグ]が大量に存在しています。デーモンプロセスのオプションが GUI から適切に設定されていることを確認し、パッケージのリリースの度にダブルチェックしてください。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|1=&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
* VPN 使用時に DNS 解決を完全に機能させるには、[[#DNS キャッシングと条件付きフォワーディング|条件付きフォワーディング]]をセットアップする必要があります。&lt;br /&gt;
* これらのプラグインは、ドキュメント化されたコマンドラインインターフェイスが存在しなかったり、アプレットが実行されていないと全く動作しなかったりする場合があります。通常のデスクトップ環境を使用している場合には問題になりません。通常とは異なるものを使用している場合は、接続を設定したりアクティブ化したりする際に必要なダイアログが表示されるようにするために [[#nm-applet]] を実行するべきです。[https://bbs.archlinux.org/viewtopic.php?id=246698]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 使い方 ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager には {{man|1|nmcli}} と {{man|1|nmtui}} が付属しています。&lt;br /&gt;
&lt;br /&gt;
=== nmcli 例 ===&lt;br /&gt;
&lt;br /&gt;
近くの Wi-Fi ネットワークを一覧表示します:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli device wifi list&lt;br /&gt;
&lt;br /&gt;
Wi-Fi ネットワークに接続します:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli device wifi connect &#039;&#039;SSID_または_BSSID&#039;&#039; password &#039;&#039;パスワード&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
非表示の Wi-Fi ネットワークに接続します:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli device wifi connect &#039;&#039;SSID_または_BSSID&#039;&#039; password &#039;&#039;パスワード&#039;&#039; hidden yes&lt;br /&gt;
&lt;br /&gt;
{{ic|wlan1}} インターフェイスで Wi-Fi に接続します:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli device wifi connect &#039;&#039;SSID_または_BSSID&#039;&#039; password &#039;&#039;パスワード&#039;&#039; ifname wlan1 &#039;&#039;プロファイル名&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
インターフェイスを切断します:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli device disconnect ifname eth0&lt;br /&gt;
&lt;br /&gt;
名前、UUID、タイプ、バッキングデバイスを含む接続のリストを取得します:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection show&lt;br /&gt;
&lt;br /&gt;
接続を有効にします (つまり、既存のプロファイルでネットワークに接続します):&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection up &#039;&#039;名前_または_uuid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
接続を削除します:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection delete &#039;&#039;名前_または_uuid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ネットワークデバイスとその状態のリストを表示します:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli device&lt;br /&gt;
&lt;br /&gt;
Wi-Fi をオフにします:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli radio wifi off&lt;br /&gt;
&lt;br /&gt;
=== 接続を編集する ===&lt;br /&gt;
&lt;br /&gt;
設定の包括的なリストについては、{{man|5|nm-settings}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
まず、接続のリストを取得する必要があります:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ nmcli connection|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
NAME                UUID                                  TYPE      DEVICE&lt;br /&gt;
有線接続 2          e7054040-a421-3bef-965d-bb7d60b7cecf  ethernet  enp5s0&lt;br /&gt;
有線接続 1          997f2782-f0fc-301d-bfba-15421a2735d8  ethernet  enp0s25&lt;br /&gt;
MY-HOME-WIFI-5G     92a0f7b3-2eba-49ab-a899-24d83978f308  wifi       --&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
ここでは、後で使用する接続 ID として最初の列を使用できます。この例では、{{ic|有線接続 2}} を接続 ID として選択します。&lt;br /&gt;
&lt;br /&gt;
作成後に接続 {{ic|有線接続 2}} を設定するには、次の3つの方法があります:&lt;br /&gt;
&lt;br /&gt;
; nmcli 対話型エディタ&lt;br /&gt;
: {{ic|nmcli connection edit &#039;有線接続 2&#039;}}。&amp;lt;br&amp;gt; 使用法はエディタから十分に文書化されています。&lt;br /&gt;
&lt;br /&gt;
; nmcli コマンドラインインターフェイス&lt;br /&gt;
: {{ic|nmcli connection modify &#039;有線接続 2&#039; &#039;&#039;設定&#039;&#039;.&#039;&#039;プロパティ&#039;&#039; &#039;&#039;値&#039;&#039;}}。使用方法については {{man|1|nmcli}} を参照してください。例えば、{{ic|nmcli connection modify &#039;有線接続 2&#039; ipv4.route-metric 200}} コマンドを使用して、IPv4 ルートメトリックを 200 に変更できます。&lt;br /&gt;
設定を削除するには、次のように空のフィールド (&amp;quot;&amp;quot;) を渡します:&lt;br /&gt;
: {{ic|nmcli connection modify &#039;有線接続 2&#039; &#039;&#039;設定&#039;&#039;.&#039;&#039;プロパティ&#039;&#039; &amp;quot;&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
; 接続ファイル&lt;br /&gt;
: {{ic|/etc/NetworkManager/system-connections/}} で、対応する {{ic|有線接続 2.nmconnection}} ファイルを変更します。&amp;lt;br&amp;gt;{{ic|nmcli connection reload}} で設定ファイルをリロードすることを忘れないでください。&lt;br /&gt;
&lt;br /&gt;
=== nmtui ===&lt;br /&gt;
&lt;br /&gt;
NetworkManager には、接続、システムのホスト名、無線切り替え管理のためのテキストユーザインタフェース (TUI) が付いています。{{ic|nmtui}} と実行することで起動できます。&lt;br /&gt;
&lt;br /&gt;
== フロントエンド ==&lt;br /&gt;
&lt;br /&gt;
[[デスクトップ環境]]と統合するために、ほとんどのユーザはアプレットをインストールしたいと考えるでしょう。アプレットはネットワークの選択や設定を容易にするだけでなく、機密情報をセキュアに保存するために必要なエージェントも提供します。様々なデスクトップ環境は独自のアプレットを持っています。デスクトップ環境に独自のアプレットが存在しない場合、[[#nm-applet]] を使用することもできます。&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
&lt;br /&gt;
[[GNOME]] にはツールが内蔵されており、ネットワーク設定からアクセス可能です。&lt;br /&gt;
&lt;br /&gt;
=== KDE Plasma ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|plasma-nm}} パッケージを[[インストール]]してください。その後、&#039;&#039;パネルオプション &amp;gt; ウィジェットを追加 &amp;gt; ネットワーク&#039;&#039; で KDE タスクバーにアプレットを追加してください。&lt;br /&gt;
&lt;br /&gt;
=== nm-applet ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|network-manager-applet}} は、システムトレイのある Xorg 環境で機能する GTK 3 フロントエンドです。&lt;br /&gt;
&lt;br /&gt;
接続に関する機密情報 (Wi-Fi のパスワードなど) を保存するには、[https://specifications.freedesktop.org/secret-service-spec/latest/ Secret Service D-Bus API] を実装しているアプリケーション ([[GNOME/Keyring]]、[[KDE Wallet]]、[[KeePass|KeePassXC]] など) をインストールし設定してください。&lt;br /&gt;
&lt;br /&gt;
接続の設定で {{ic|Make available to other users}} チェックボックスオプションを有効化すると、NetworkManager はその接続のパスワードを平文で保存することに注意してください。とはいえ、パスワードが含まれるファイルは root (及び {{ic|nm-applet}} を通して他のユーザ) からしかアクセスできません。[[#Wi-Fi パスワードの暗号化]] を見てください。&lt;br /&gt;
&lt;br /&gt;
{{AUR|trayer}} か {{Pkg|stalonetray}} を使うことで、システムトレイ無しで {{ic|nm-applet}} を実行することができます。例えば、以下のようなスクリプトをパスに追加することができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|nmgui|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
nm-applet    2&amp;gt;&amp;amp;1 &amp;gt; /dev/null &amp;amp;&lt;br /&gt;
stalonetray  2&amp;gt;&amp;amp;1 &amp;gt; /dev/null&lt;br /&gt;
killall nm-applet&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;stalonetray&#039;&#039; のウィンドウを閉じると、{{ic|nm-applet}} も閉じます。なので、ネットワークの設定を終えたら余分なメモリが消費されることはありません。&lt;br /&gt;
&lt;br /&gt;
このアプレットは、Wi-Fi ネットワークの接続や切断などのイベントの通知を表示することができます。これらの通知を表示させるには、通知サーバがインストールされている必要があります ([[デスクトップ通知]] を見てください)。アプレットを通知サーバ無しで使うと、標準出力や標準エラー出力にメッセージが表示され、最悪、アプレットがハングするかもしれません。[https://bugzilla.gnome.org/show_bug.cgi?id=788313] を参照してください。&lt;br /&gt;
&lt;br /&gt;
通知を無効化した状態で {{ic|nm-applet}} を実行するには、アプレットを以下のコマンドで起動してください:&lt;br /&gt;
&lt;br /&gt;
 $ nm-applet --no-agent&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|nm-applet}} は[[XDG Autostart|自動起動デスクトップファイル]]によって自動的に起動されるかもしれません。そのような場合に {{ic|--no-agent}} オプションを追加するには、デスクトップファイルの Exec 行を変更してください。つまり:&lt;br /&gt;
&lt;br /&gt;
{{bc|1=Exec=nm-applet --no-agent}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|[[i3]] では、nm-applet が {{ic|--no-agent}} オプションで起動された場合、パスワード入力ダイアログが表示されないため、アイテムリストをクリックして新しい暗号化された Wi-Fi ネットワークに接続することができなくなります。[[journal]] には {{ic|no secrets: No agents were available for this request}} と出力されます。}}&lt;br /&gt;
&lt;br /&gt;
==== Appindicator ====&lt;br /&gt;
&lt;br /&gt;
バージョン 1.18.0 から、Appindicator のサポートが公式の {{Pkg|network-manager-applet}} パッケージで[https://gitlab.archlinux.org/archlinux/packaging/packages/network-manager-applet/-/commit/527448fb2a87d85055f504f463dfe961dccd75c3 利用可能]になりました。nm-applet を Appindicator の環境で使うには、アプレットを以下のコマンドで起動してください:&lt;br /&gt;
&lt;br /&gt;
 $ nm-applet --indicator&lt;br /&gt;
&lt;br /&gt;
=== networkmanager-dmenu ===&lt;br /&gt;
&lt;br /&gt;
フロントエンドのもう一つの選択肢は {{Pkg|networkmanager-dmenu}} です。これは、NetworkManager の接続を {{ic|nm-applet}} ではなく [[dmenu]] や [[rofi]] で管理する小さなスクリプトです。このスクリプトには必須の機能が全て揃っています。例えば: NetworkManager の既存の Wi-Fi 接続や有線接続に接続する、新しい Wi-Fi 接続に接続する、必要に応じてパスフレーズを要求する、既存の VPN 接続に接続する、ネットワークを有効化/無効化する、&#039;&#039;nm-connection-editor&#039;&#039; GUI を起動する、Bluetooth ネットワークに接続する。&lt;br /&gt;
&lt;br /&gt;
=== switchboard ===&lt;br /&gt;
&lt;br /&gt;
Pantheon の {{Pkg|switchboard}} は、{{Pkg|switchboard-plug-network}} と {{Pkg|nm-connection-editor}} と組み合わせて使えば、NetworkManager を設定するためのデスクトップ環境に依存しない方法になります。以下のコマンドで実行できます:&lt;br /&gt;
&lt;br /&gt;
 $ io.elementary.settings&lt;br /&gt;
&lt;br /&gt;
=== nm-sidebar ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|nm-sidebar}} は、layer-shell に対応した Wayland コンポジタ向けの GTK4/libadwaita 製 NetworkManager フロントエンドです。右側のサイドバーとして表示され、コマンドライン、ホットキー、ランチャー、Waybar から切り替えることができます。有線接続の状態、Wi-Fi ネットワーク、VPN プロファイル、接続の詳細にアクセスでき、高度なプロファイル編集や VPN インポートには {{Pkg|nm-connection-editor}} を使用します。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager を適切に実行させるには、いくつか追加の手順が必要になる場合があります。[[ネットワーク設定#ホスト名の設定]] で説明されているように、{{ic|/etc/hosts}} が設定されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
NetworkManager のグローバルな設定ファイルは {{ic|/etc/NetworkManager/NetworkManager.conf}} です。追加の設定ファイルは {{ic|/etc/NetworkManager/conf.d/}} に置くことができます。通常、グローバルなデフォルト値に対して設定を行う必要はありません。&lt;br /&gt;
&lt;br /&gt;
設定ファイルを編集したら、以下のコマンドで変更を適用することができます:&lt;br /&gt;
&lt;br /&gt;
 # nmcli general reload&lt;br /&gt;
&lt;br /&gt;
=== NetworkManager-wait-online ===&lt;br /&gt;
&lt;br /&gt;
{{ic|NetworkManager.service}} を有効化すると、{{ic|NetworkManager-wait-online.service}} も有効化されます。{{ic|NetworkManager-wait-online.service}} は oneshot なシステムサービスで、ネットワークが構成されるまで待機します。このサービスには {{ic|1=WantedBy=network-online.target}} が含まれているため、このサービスが終了するのは、{{ic|network-online.target}} 自体が有効化されている時か、あるいは {{ic|network-online.target}} が他のユニットによって実行された時のみです。[[systemd#ネットワークが稼働した後にサービスを実行する]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、{{ic|NetworkManager-wait-online.service}} は、ネットワーク接続が確立されるのを待つ ({{man|1|nm-online}} を参照) のではなく、NetworkManager の起動が完了するのを待ちます。ネットワークの準備が整う前に {{ic|NetworkManager-wait-online.service}} が終了してしまってブート時に一部のサービスが失敗してしまう場合、{{ic|NetworkManager-wait-online.service}} [[ユニットを拡張]]し、{{ic|ExecStart}} 行から {{ic|-s}} を削除してください:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=&lt;br /&gt;
 ExecStart=/usr/bin/nm-online -q&lt;br /&gt;
&lt;br /&gt;
ただし、これにより[https://lists.fedoraproject.org/archives/list/users@lists.fedoraproject.org/thread/EGC324JD3HJCGVN7J55WYPRLFDA3TP7N/ 他の問題]が発生する可能性があることに注意してください。&lt;br /&gt;
&lt;br /&gt;
一部のケースで、タイムアウトの設定が短すぎるために、このサービスの起動が失敗してしまう場合があります。サービスを[[編集]]して {{ic|NM_ONLINE_TIMEOUT}} を {{ic|60}} からより大きい値に変更してください。&lt;br /&gt;
&lt;br /&gt;
=== PolicyKit のパーミッションをセットアップする ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、アクティブなローカルセッションのユーザは全員パスワード無しでほぼ全てのネットワーク設定を変更することができます。セッションの種類を確認する方法については、[[一般的なトラブルシューティング#セッションのパーミッション]] を見てください。ほとんどの場合、特に設定しなくても全て動作するはずです。&lt;br /&gt;
&lt;br /&gt;
一部のアクション (システムのホスト名を変更するなど) においては、管理者のパスワードが必要です。そのような場合、自身のユーザを {{ic|wheel}} グループに[[ユーザーとグループ#グループ管理|追加]]し、パスワードのプロンプトを表示する [[Polkit#認証エージェント|Polkit の認証エージェント]]を実行する必要があります。&lt;br /&gt;
&lt;br /&gt;
リモートセッションの場合 (例えば、[[TigerVNC#vncserver をバーチャル(ヘッドレス)セッションで起動する|ヘッドレス VNC]])、NetworkManager を使用するために必要な特権を得る方法は複数あります:&lt;br /&gt;
&lt;br /&gt;
# 自身を {{ic|wheel}} グループに[[ユーザーとグループ#グループ管理|追加]]する。アクションの度にパスワードを入力する必要があります。注意点として、{{ic|wheel}} グループに追加すると他の権限 (root パスワードを入力せずに [[sudo]] を実行できるなど) も付与される場合があります。&lt;br /&gt;
# 自身を {{ic|network}} グループに[[ユーザーとグループ#グループ管理|追加]]し、以下の内容で {{ic|/etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules}} を作成する: {{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
polkit.addRule(function(action, subject) {&lt;br /&gt;
  if (action.id.indexOf(&amp;quot;org.freedesktop.NetworkManager.&amp;quot;) == 0 &amp;amp;&amp;amp; subject.isInGroup(&amp;quot;network&amp;quot;)) {&lt;br /&gt;
    return polkit.Result.YES;&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}} {{ic|network}} グループ内の全ユーザがパスワード無しでネットワークの追加と削除を行えるようになります (これは、Polkit 認証エージェントを実行する必要がないことを意味します。なので、この方法は SSH セッションでも使えます。)。&lt;br /&gt;
&lt;br /&gt;
=== プロクシ設定 ===&lt;br /&gt;
&lt;br /&gt;
NetworkManager はプロキシに関するいくつかの設定をサポートしています。それらは &#039;&#039;nmtui&#039;&#039; から直接変更することはできませんが、&#039;&#039;nm-applet&#039;&#039; と &#039;&#039;nmcli&#039;&#039; はそれらをサポートしています。&lt;br /&gt;
&lt;br /&gt;
プロキシの設定項目は {{man|5|nm-settings-nmcli}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
また、ディスパッチャスクリプトを使うことでカスタムのプロキシコマンドを常時実行することができます。[[#ディスパッチャの例]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
参照: [[プロキシ設定]]&lt;br /&gt;
&lt;br /&gt;
=== 接続の確認 ===&lt;br /&gt;
&lt;br /&gt;
NetworkManager は、ネットワークに接続した後にウェブサーバへの接続を試みて、キャプティブポータルなどが存在しないか確認します。デフォルトの接続先ホスト ({{ic|/usr/lib/NetworkManager/conf.d/20-connectivity.conf}} で設定されています) は [https://ping.archlinux.org ping.archlinux.org] (redirect.archlinux.org の CNAME エイリアス) です。別のウェブサーバを使う、または接続チェックを無効化するには、{{ic|/etc/NetworkManager/conf.d/20-connectivity.conf}} を作成してください ({{man|5|NetworkManager.conf|CONNECTIVITY SECTION}} を参照)。以下は、GNOME のサーバを使用する例です ([[GNOME]] を使用する必要はありません):&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/20-connectivity.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[connectivity]&lt;br /&gt;
uri=http://nmcheck.gnome.org/check_network_status.txt&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
NetworkManager の接続チェックを無効化するには、以下の設定を使用してください。これは、接続チェックを無効化する VPN に接続している場合に便利です。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/20-connectivity.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[connectivity]&lt;br /&gt;
enabled=false&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|自動的な接続チェックはプライバシーの問題を引き起こす可能性がありますが、Arch Linux のデフォルトの接続先 URL は如何なるアクセスも記録しません。[https://gitlab.archlinux.org/archlinux/infrastructure/-/commit/fabccd0f61e5dea3925e8a0c6a46d56d5750c121#a4f34381bbb18ea77bfb3dd11a8aeca707078fca_0_26] [https://gitlab.archlinux.org/archlinux/infrastructure/-/blob/master/roles/ping/templates/nginx.d.conf.j2] を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
=== キャプティブポータル ===&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:ja:キャプティブポータル|キャプティブポータル]]が存在している場合、デスクトップマネージャが、資格情報を求めるウィンドウを自動的に開く場合があります。あなたのデスクトップ環境がこれを行わない場合、{{Pkg|capnet-assist}} パッケージを使用することができます (しかし現在、このパッケージの NetworkManager ディスパッチャスクリプトは壊れています)。あるいは、NetworkManager ディスパッチャスクリプトを以下の内容で作成することもできます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/90-open_captive_portal|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
# Script to dispatch NetworkManager events&lt;br /&gt;
#&lt;br /&gt;
# Runs shows a login webpage on walled garden networks.&lt;br /&gt;
# See NetworkManager(8) for further documentation of the dispatcher events.&lt;br /&gt;
&lt;br /&gt;
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
&lt;br /&gt;
if [ -x &amp;quot;/usr/bin/logger&amp;quot; ]; then&lt;br /&gt;
    logger=&amp;quot;/usr/bin/logger -s -t captive-portal&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    logger=&amp;quot;:&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wait_for_process() {&lt;br /&gt;
    PNAME=$1&lt;br /&gt;
    while [ -z &amp;quot;$(/usr/bin/pgrep $PNAME)&amp;quot; ]; do&lt;br /&gt;
        sleep 3;&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#launch the browser, but on boot we need to wait that nm-applet starts&lt;br /&gt;
start_browser() {&lt;br /&gt;
    local user=&amp;quot;$1&amp;quot;&lt;br /&gt;
    local display=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    export DISPLAY=&amp;quot;$display&amp;quot;&lt;br /&gt;
    wait_for_process nm-applet&lt;br /&gt;
&lt;br /&gt;
    export XAUTHORITY=&amp;quot;/home/$user/.Xauthority&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    $logger &amp;quot;Running browser as &#039;$user&#039; with display &#039;$display&#039; to login in captive portal&amp;quot;&lt;br /&gt;
    sudo -u &amp;quot;$user&amp;quot; --preserve-env=DISPLAY,XAUTHORITY -H xdg-open http://capnet.elementary.io 2&amp;gt;&amp;amp;1 &amp;gt; /dev/null&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Run the right scripts&lt;br /&gt;
case &amp;quot;$2&amp;quot; in&lt;br /&gt;
    connectivity-change)&lt;br /&gt;
    $logger -p user.debug &amp;quot;dispatcher script triggered on connectivity change: $CONNECTIVITY_STATE&amp;quot;&lt;br /&gt;
    if [ &amp;quot;$CONNECTIVITY_STATE&amp;quot; = &amp;quot;PORTAL&amp;quot; ]; then&lt;br /&gt;
        # Match last column of who&#039;s output with &#039; :[at least one digit] &#039;&lt;br /&gt;
        who | awk &#039;$NF ~ /\(:[0-9]+\)/ { print $1 &amp;quot; &amp;quot; substr($NF, 2, length($NF)-2) };&#039; | \&lt;br /&gt;
        while read user display; do&lt;br /&gt;
            start_browser $user $display || $logger -p user.err &amp;quot;Failed for user: &#039;$user&#039; display: &#039;$display&#039;&amp;quot;&lt;br /&gt;
        done&lt;br /&gt;
    fi&lt;br /&gt;
    ;;&lt;br /&gt;
    *)&lt;br /&gt;
    # In a down phase&lt;br /&gt;
    exit 0&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
スクリプトには[[実行可能属性]]を付与してください。しかし、このスクリプトは X が使用されていることを仮定しており、単純に http ページを開きます。必ずしも動作するとは限らないかもしれません。&lt;br /&gt;
&lt;br /&gt;
このスクリプトを実行するには、{{ic|NetworkManager.service}} を[[再起動]]するか、システムを再起動する必要があります。そうしたら、ディスパッチャスクリプトはキャプティブポータルを検知するとログインウィンドウを開くはずです。&lt;br /&gt;
&lt;br /&gt;
簡潔な解決策は [https://github.com/Seme4eg/captive-portal-sh captive-portal-sh] です。これはキャプティブポータル URL を取得し、デフォルトのブラウザで開くシェルスクリプトです (Wayland のみ)。&lt;br /&gt;
&lt;br /&gt;
別の解決策は Google Chrome ベースの {{AUR|captive-browser-git}} です。&lt;br /&gt;
&lt;br /&gt;
==== 古いハードウェアにおける iwd のキャプティブポータルサポート ====&lt;br /&gt;
&lt;br /&gt;
一部の古い Fi-Fi チップ (Broadcom BCM4360 など) ではプロプライエタリな {{ic|wl}} ドライバが必要ですが、これには、多くのキャプティブポータルホットスポットがログインページ表示前に使用する OWE/Elliptic-Curve ハンドシェイクのサポートがありません。NetworkManager の Wi-Fi バックエンドを、既存のドライバ上でユーザスペース内で完全な OWE 鍵交換をサポートする {{ic|iwd}} に切り替えることにより ([[#Wi-Fi バックエンドとして iwd を使用する]] を参照)、暗号化されたアソシエーションを確立したり、DHCP を利用したり、ポータルの “PORTAL” ステートをトリガーできるようになります。以上が終わったら、他の方法では完全に接続できなかったハードウェア上でも、ディスパッチャスクリプトかブラウザランチャーがログインページをポップアップします。&lt;br /&gt;
&lt;br /&gt;
=== DHCP クライアント ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、NetworkManager は自身の内蔵 DHCP クライアントを使用します。内蔵 DHCPv4 プラグインは [https://nettools.github.io/n-dhcp4/ nettools の n-dhcp4] ライブラリをベースにしていますが、内蔵 DHCPv6 プラグインは systemd-networkd ベースのコードから作られています。&lt;br /&gt;
&lt;br /&gt;
別の DHCP クライアントを使用するには、以下の代替実装のどれかを[[インストール]]してください:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|dhcpcd}} - [[dhcpcd]]&lt;br /&gt;
* {{Pkg|dhclient}} - [[dhclient]]&lt;br /&gt;
&lt;br /&gt;
DHCP クライアントのバックエンドを変更するには、{{ic|/etc/NetworkManager/conf.d/}} 内に設定ファイルを作成して、そのファイル内で {{ic|1=main.dhcp=&#039;&#039;DHCP_クライアント名&#039;&#039;}} オプションを設定してください。例えば:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/NetworkManager/conf.d/dhcp-client.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
dhcp=dhcpcd&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
{{Pkg|dhclient}} パッケージと {{Pkg|dhcpcd}} パッケージに同梱されている systemd ユニットは有効化しないでください。NetworkManager と競合してしまいます。詳細は [[#インストール]] セクションに書かれているノートを見てください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== DNS の管理 ===&lt;br /&gt;
&lt;br /&gt;
NetworkManager の DNS 管理については、GNOME プロジェクトの wiki ページ [https://wiki.gnome.org/Projects/NetworkManager/DNS Projects/NetworkManager/DNS] で説明されています。&lt;br /&gt;
&lt;br /&gt;
==== DNS キャッシングと条件付きフォワーディング ====&lt;br /&gt;
&lt;br /&gt;
NetworkManager には、[[dnsmasq]] または [[systemd-resolved]] を使用して DNS キャッシングと条件付きフォワーディングを有効化するプラグインが存在します ([https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/143 以前は]、&amp;quot;条件付きフォワーディング&amp;quot; は NetworkManager のドキュメントで &amp;quot;split DNS&amp;quot; と呼ばれていました)。このセットアップには、DNS ルックアップがキャッシュされるので名前解決の時間が短縮され、VPN ホストの DNS ルックアップが、関連する VPN の DNS サーバに転送されるという長所があります。これは、複数の VPN に接続する場合に特に便利です。&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|/etc/resolv.conf}} が {{ic|/run/systemd/resolve/stub-resolv.conf}} や {{ic|/run/systemd/resolve/resolv.conf}}、{{ic|/lib/systemd/resolv.conf}}、{{ic|/usr/lib/systemd/resolv.conf}} へのシンボリックリンクである場合、NetworkManager は systemd-resolved を自動的に選択します。dnsmasq を使用するには、まずシンボリックリンクを削除する必要があります。その後で、NetworkManager を再起動してください。}}&lt;br /&gt;
&lt;br /&gt;
===== dnsmasq =====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|dnsmasq}} がインストールされていることを確認してください。そして、{{ic|/etc/NetworkManager/conf.d/}} 内の設定ファイル (無い場合は作成してください) で {{ic|1=main.dns=dnsmasq}} を設定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/dns.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
dns=dnsmasq&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|nmcli general reload}} を root として実行してください。NetworkManager は自動的に dnsmasq を起動し、{{ic|/etc/resolv.conf}} に {{ic|127.0.0.1}} を追加します。元の DNS サーバは {{ic|/run/NetworkManager/no-stub-resolv.conf}} を見れば分かります。dnsmasq が使用されているかどうかは、{{ic|drill example.com}} で同じ DNS ルックアップを2度行ってサーバとクエリの時間を計測すれば確認できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|dnsmasq.service}} を起動したり、{{ic|/etc/dnsmasq.conf}} を編集したりする必要はありません。NetworkManager は、その systemd サービスを使わず、さらに dnsmasq のデフォルトの設定ファイルを読み込まずに dnsmasq を起動します。&lt;br /&gt;
* NetworkManager によって起動された dnsmasq インスタンスは {{ic|127.0.0.1:53}} にバインドされます。なので、これと同じアドレスとポートで他のソフトウェア ({{ic|dnsmasq.service}} も含む) を実行することはできません。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
====== dnsmasq のカスタム設定 ======&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/NetworkManager/dnsmasq.d/}} 内に設定ファイルを作成することで、&#039;&#039;dnsmasq&#039;&#039; のカスタム設定を作成することができます。例えば、DNS キャッシュ (RAM 内に格納されます) のサイズを変更するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dnsmasq.d/cache.conf|2=&lt;br /&gt;
cache-size=1000&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
設定ファイルの構文は以下のコマンドで確認できます:&lt;br /&gt;
&lt;br /&gt;
 $ dnsmasq --test --conf-file=/dev/null --conf-dir=/etc/NetworkManager/dnsmasq.d&lt;br /&gt;
&lt;br /&gt;
利用可能な全てのオプションについては {{man|8|dnsmasq}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
====== IPv6 ======&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|NetworkManager は {{ic|::1}} を {{ic|/etc/resolv.conf}} に追加しないため、以下の方法では問題を解決できません。{{ic|@::1}} を手動で drill に渡さない限り、{{ic|Error: error sending query: No (valid) nameservers defined in the resolver}} というエラーで失敗します。}}&lt;br /&gt;
&lt;br /&gt;
NetworkManager で {{ic|dnsmasq}} を有効化すると、IPv6 のみの DNS ルックアップ (つまり、{{ic|drill -6 [hostname]}}) が機能しなくなる場合があります (しかし、それ以外では機能する)。この問題を解決するには、以下のファイルを作成し、IPv6 ループバックもリッスンするように &#039;&#039;dnsmasq&#039;&#039; を設定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dnsmasq.d/ipv6-listen.conf|2=&lt;br /&gt;
listen-address=::1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
さらに、{{ic|dnsmasq}} は上流の IPv6 DNS を優先しません。残念ながら、NetworkManager も IPv6 DNS を優先しません ([https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/936712 Ubuntu Bug])。回避策は、NetworkManager の設定で IPv6 DNS を無効化することです (IPv4 DNS があると仮定します)。&lt;br /&gt;
&lt;br /&gt;
====== DNSSEC ======&lt;br /&gt;
&lt;br /&gt;
NetworkManager によってデフォルトで開始される dnsmasq インスタンスは、[[DNSSEC]] を検証しません。DNSSEC 検証を有効化するには、以下の設定ファイルを作成してください (これにより、DNSSEC をサポートしない名前サーバでの DNS 解決が機能しなくなります):&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dnsmasq.d/dnssec.conf|2=&lt;br /&gt;
conf-file=/usr/share/dnsmasq/trust-anchors.conf&lt;br /&gt;
dnssec&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== systemd-resolved =====&lt;br /&gt;
&lt;br /&gt;
NetworkManager は [[systemd-resolved]] を DNS リゾルバ及び DNS キャッシュとして使用することができます。まず先に、&#039;&#039;systemd-resolved&#039;&#039; が適切に設定されていて、{{ic|systemd-resolved.service}} が[[開始]]されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/resolv.conf}} が {{ic|/run/systemd/resolve/stub-resolv.conf}} や {{ic|/run/systemd/resolve/resolv.conf}}、{{ic|/usr/lib/systemd/resolv.conf}} への[[systemd-resolved#DNS|シンボリックリンク]]である場合、systemd-resolved は自動的に使用されます。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/NetworkManager/conf.d/}} 内の設定ファイルで {{ic|1=main.dns=systemd-resolved}} を設定することで、これを明示的に有効化することもできます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/dns.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
dns=systemd-resolved&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== openresolv サブスクライバのある DNS リゾルバ =====&lt;br /&gt;
&lt;br /&gt;
ローカルの [[DNS リゾルバ]]へのサブスクライバ (加入者) が [[openresolv]] に存在している場合、サブスクライバをセットアップし、[[#openresolv を使う|openresolv を使用するように NetworkManager を設定してください]]。&lt;br /&gt;
&lt;br /&gt;
NetworkManager は単一の &amp;quot;インターフェイス&amp;quot; を &#039;&#039;resolvconf&#039;&#039; に広告するため、2つの NetworkManager 接続間で条件付きフォワーディングを行うのは不可能です。[https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/153 NetworkManager issue 153] を参照してください。&lt;br /&gt;
&lt;br /&gt;
この問題は {{ic|/etc/resolvconf.conf}} で {{ic|1=private_interfaces=&amp;quot;*&amp;quot;}} を設定すれば、部分的に緩和できます [https://roy.marples.name/projects/openresolv/configuration/]。検索ドメインリストに無いドメインのクエリは、フォワーディングされません。そのようなクエリは、他の DNS サーバにフォワーディングされるか、DNS ルートサーバから回帰的に解決されるなどして、ローカルのリゾルバの設定に従って処理されます。&lt;br /&gt;
&lt;br /&gt;
==== カスタム DNS サーバ ====&lt;br /&gt;
&lt;br /&gt;
===== カスタムグローバル DNS サーバの設定 =====&lt;br /&gt;
&lt;br /&gt;
全ての接続に対して DNS サーバを設定するには、{{man|5|NetworkManager.conf}} 内で {{ic|[global-dns-domain-*]}} というセクション内で {{ic|1=servers=&#039;&#039;serveripaddress1&#039;&#039;,&#039;&#039;serveripaddress2&#039;&#039;,&#039;&#039;serveripaddress3&#039;&#039;}} という構文を使ってDNS サーバを指定してください。例えば:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/dns-servers.conf|2=&lt;br /&gt;
[global-dns-domain-*]&lt;br /&gt;
servers=::1,127.0.0.1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* [[#DNS キャッシングと条件付きフォワーディング|NetworkManager の dnsmasq か systemd-resolved プラグイン]]、または [[#openresolv サブスクライバのある DNS リゾルバ|openresolv サブスクライバ]]を使用する場合、{{ic|1=servers=}} オプションにループバックアドレスを指定しないでください。DNS 解決が機能しなくなる可能性があります。&lt;br /&gt;
* 指定されたサーバは [[systemd-resolved]] に送られず、接続の DNS サーバが代わりに使用されます。[https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1366 NetworkManager issue 1366] と [https://github.com/systemd/systemd/issues/33754 systemd issue 33754] を参照。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== 接続でのカスタム DNS サーバの設定 =====&lt;br /&gt;
&lt;br /&gt;
====== 接続でのカスタム DNS サーバの設定 (GUI) ======&lt;br /&gt;
&lt;br /&gt;
セットアップ方法は、使用するフロントエンドの種類に依ります。手順としては通常、アプレットを右クリックし、プロファイルを編集 (または作成) し、DHCP タイプに &#039;&#039;自動 (アドレスのみ)&#039;&#039; (&#039;&#039;Automatic (specify addresses)&#039;&#039;) を選択するというものです。DNS アドレスを入力する必要があり、通常、{{ic|127.0.0.1, &#039;&#039;DNS-server-one&#039;&#039;, ...}} という形です。&lt;br /&gt;
&lt;br /&gt;
====== 接続でのカスタム DNS サーバの設定 (nmcli / 設定ファイル) ======&lt;br /&gt;
&lt;br /&gt;
DNS サーバーを接続毎にセットアップするには、[[#接続を編集する|接続設定]]で {{ic|ipv4.dns}} と {{ic|ipv6.dns}} の設定 (及び、それらに関連する {{ic|dns-search}} と {{ic|dns-options}}) を変更してください。&lt;br /&gt;
&lt;br /&gt;
{{ic|method}} が {{ic|auto}} に設定されている場合 (DHCP/RA を使用する場合)、{{ic|ignore-auto-dns}} を {{ic|yes}} に設定する必要があります。&lt;br /&gt;
&lt;br /&gt;
DNS over TLS を使用するには ([[#systemd-resolved|systemd-resolved が必要です]])、{{ic|1=dns=&#039;&#039;ip.address&#039;&#039;#&#039;&#039;servername&#039;&#039;;}} のようにして DNS サーバーを指定し、さらに {{ic|connection.dns-over-tls}} を {{ic|2}} に設定してください。例えば、Quad9 を使用するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/system-connections/Example Wi-Fi.nmconnection|2=&lt;br /&gt;
...&lt;br /&gt;
[connection]&lt;br /&gt;
...&lt;br /&gt;
dns-over-tls=2&lt;br /&gt;
&lt;br /&gt;
[ipv4]&lt;br /&gt;
...&lt;br /&gt;
dns=9.9.9.9#dns.quad9.net;149.112.112.112#dns.quad9.net;&lt;br /&gt;
ignore-auto-dns=true&lt;br /&gt;
&lt;br /&gt;
[ipv6]&lt;br /&gt;
...&lt;br /&gt;
dns=2620:fe::fe#dns.quad9.net;2620:fe::9#dns.quad9.net;&lt;br /&gt;
ignore-auto-dns=true&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|この例では Quad9 を使用しています。あなたにとって信頼できる DNS リゾルバに変更してください。[[ドメイン名前解決#サードパーティの DNS サービス]] を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
==== /etc/resolv.conf ====&lt;br /&gt;
&lt;br /&gt;
NetworkManager の {{ic|/etc/resolv.conf}} 管理モードは、{{ic|main.rc-manager}} で設定されます。{{Pkg|networkmanager}} パッケージはこれを、上流のデフォルトである {{ic|auto}} ではなく、{{ic|symlink}} に設定します。設定と値は {{man|5|NetworkManager.conf}} man ページでドキュメント化されています。&lt;br /&gt;
&lt;br /&gt;
{{Tip|openresolv を使用すると、NetworkManager は、&#039;&#039;resolvconf&#039;&#039; によってサポートされている他のソフトウェアと共存できます。例えば、openresolv が [[openresolv#Subscribers|subscriber]] を持つローカル DNS キャッシングおよび分割 DNS リゾルバを実行できます。openresolv で NetworkManager を使用する場合、条件付きフォワーディングは[https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/153 まだ完全にサポートされていない]ことに注意してください。}}&lt;br /&gt;
&lt;br /&gt;
また、&#039;&#039;NetworkManager&#039;&#039; は、ネットワークの変更後に {{ic|/etc/resolv.conf}} を変更するために使用できる、いわゆるディスパッチャスクリプトを介したフックも提供します。詳細は [[#ネットワークサービスで NetworkManager dispatcher を使用する]] と {{man|8|NetworkManager}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* NetworkManager が [[#dnsmasq|dnsmasq]] または [[systemd-resolved]] のいずれかを使用するように設定されている場合、適切なループバックアドレスが {{ic|/etc/resolv.conf}} に書き込まれます。&lt;br /&gt;
* NetworkManager が書き込む {{ic|resolv.conf}}、または {{ic|/etc/resolv.conf}} に書き込む内容は、{{ic|/run/NetworkManager/resolv.conf}} で見られます。&lt;br /&gt;
* 取得したネームサーバーと検索ドメインを含む {{ic|resolv.conf}} ファイルは、{{ic|/run/NetworkManager/no-stub-resolv.conf}} にあります。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== 管理対象外の /etc/resolv.conf =====&lt;br /&gt;
&lt;br /&gt;
NetworkManager が {{ic|/etc/resolv.conf}} に干渉しないようにするには、{{ic|/etc/NetworkManager/conf.d/}} の設定ファイルで {{ic|1=main.dns=none}} を設定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/dns.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
dns=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|NetworkManager が DNS 設定を [[systemd-resolved]] に送信しないように、{{ic|1=main.systemd-resolved=false}} を設定することもできます。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|1=main.dns=none}} を使うのではなく、[[dnsmasq]] や [[systemd-resolved]] などの他の DNS バックエンドを使用するように NetworkManager を設定する方法については、[[#DNS キャッシングと条件付きフォワーディング]] を見てください。}}&lt;br /&gt;
&lt;br /&gt;
その後、{{ic|/etc/resolv.conf}} が壊れたシンボリックリンクになり、削除する必要が生じるかもしれません。その場合、新しい {{ic|/etc/resolv.conf}} ファイルを作成してください。&lt;br /&gt;
&lt;br /&gt;
===== openresolv を使う =====&lt;br /&gt;
&lt;br /&gt;
{{Note|NetworkManager は、{{Pkg|systemd-resolvconf}} によって提供されている systemd-resolved の &#039;&#039;resolvconf&#039;&#039; インターフェイスの使用をサポートしていません ({{man|1|resolvectl|COMPATIBILITY WITH RESOLVCONF(8)}})。&lt;br /&gt;
* [[systemd-resolved]] を使用する際は {{ic|1=main.rc-manager=resolvconf}} を設定しないでください。代わりに、[[systemd-resolved#DNS|/etc/resolv.conf シンボリックリンクを適切に作成する]]か、[[#systemd-resolved|systemd-resolved を使用するように NetworkManager を明示的に設定]]してください。&lt;br /&gt;
* systemd-resolved を使用しない場合は、{{Pkg|systemd-resolvconf}} パッケージがインストールされていないことを確認してください。{{ic|systemd-resolved.service}} が起動されていないと、このパッケージは、resolvconf を使用する全てのネットワーキングソフトウェア (NetworkManager だけではありません) の機能を破壊します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[openresolv]] を使用するように NetworkManager を設定するには、{{ic|/etc/NetworkManager/conf.d/}} 内の設定ファイルで {{ic|1=main.rc-manager=resolvconf}} を設定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/rc-manager.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
rc-manager=resolvconf&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ファイアウォール ===&lt;br /&gt;
&lt;br /&gt;
現在の接続に基づいて [[Firewalld#NetworkManager を使ったゾーン管理|firewalld ゾーンを割り当てる]]ことができます。たとえば、職場では制限の厳しいファイアウォールを使用し、自宅では制限の少ないファイアウォールを使用します。&lt;br /&gt;
&lt;br /&gt;
これは、[[#ネットワークサービスで NetworkManager dispatcher を使用する|NetworkManager dispatcher]] を使用して行うこともできます。&lt;br /&gt;
&lt;br /&gt;
== ネットワークサービスで NetworkManager dispatcher を使用する ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager がインターフェイスを立ち上げるまで実行したくないようなネットワークサービスはたくさんあります。NetworkManager には、(例えば [[NFS]] や [[SMB]]、[[ネットワークタイムプロトコルデーモン|NTPd]] を使用する時などに) ネットワークに接続したらサービスを開始し、切断したらサービスを停止する機能があります。&lt;br /&gt;
&lt;br /&gt;
この機能を有効化するには、{{ic|NetworkManager-dispatcher.service}} を[[有効化]]し、かつ[[起動]]する必要があります。&lt;br /&gt;
&lt;br /&gt;
このサービスを有効化したら、{{ic|/etc/NetworkManager/dispatcher.d}} 内にスクリプトを追加することができます。&lt;br /&gt;
&lt;br /&gt;
スクリプトは &#039;&#039;&#039;root&#039;&#039;&#039; によって所有されていなければなりません。ディスパッチャは、root によって所有されていないスクリプトを実行しません。セキュリティを高めるために、スクリプトのグループ[[所有権]]も root に設定してください:&lt;br /&gt;
&lt;br /&gt;
 # chown root:root /etc/NetworkManager/dispatcher.d/&#039;&#039;10-script.sh&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
スクリプトファイルを[[実行可能属性|実行可能]]にするのを忘れないでください。&lt;br /&gt;
&lt;br /&gt;
スクリプトは、ネットワークへの接続時にはアルファベット順で実行され、切断時には逆アルファベット順で実行されます。実行される順番を保証するために、スクリプトの名前の前に数字を置くのが一般的です (例: {{ic|10-portmap}}、{{ic|30-netfs}}。こうすることで、NFS がマウントを試みる前に、&#039;&#039;portmapper&#039;&#039; が立ち上がります)&lt;br /&gt;
&lt;br /&gt;
スクリプトは以下の引数を受け取ります:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;インターフェイス名:&#039;&#039;&#039; 例えば {{ic|eth0}}&lt;br /&gt;
* &#039;&#039;&#039;アクション:&#039;&#039;&#039; &#039;&#039;up&#039;&#039;、&#039;&#039;down&#039;&#039;、&#039;&#039;vpn-up&#039;&#039;、&#039;&#039;vpn-down&#039;&#039; など (完全なリストは {{man|8|NetworkManager-dispatcher}} を見てください)&lt;br /&gt;
&lt;br /&gt;
{{Warning|外部ネットワークや公開ネットワークに接続する場合は、どのサービスを起動するのか、どのサーバにサービスは接続できるのかに注意してください。公開ネットワークに接続する際に間違ったサービスを起動してしまうとセキュリティホールを作ってしまう可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
=== ディスパッチャのタイムアウトを防ぐ ===&lt;br /&gt;
&lt;br /&gt;
上記がうまくいっているのであれば、このセクションは関係しません。しかし、ディスパッチャのスクリプトの実行に時間が掛かってしまうという一般的な問題があります。最初は、3 秒だけの内部タイムアウトが使用されていました。呼ばれたスクリプトが時間内に完了しないと、そのスクリプトは kill されていました。後に、タイムアウトは約 20 秒に延長されました (詳細は [https://bugzilla.redhat.com/show_bug.cgi?id=982734 Bugtracker] を参照)。タイムアウトのせいで依然として問題が発生する場合は、{{ic|NetworkManager-dispatcher.service}} に対する[[ドロップインファイル]]を使って、終了後もアクティブ状態を維持するように設定することで問題を回避できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/NetworkManager-dispatcher.service.d/remain_after_exit.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
RemainAfterExit=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
その後、変更した {{ic|NetworkManager-dispatcher}} サービスを開始し、かつ有効化してください。&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|RemainAfterExit}} 行を追加すると、ディスパッチャが閉じられなくなります。残念ながら、ディスパッチャは、スクリプトを再び実行する前に&#039;&#039;&#039;閉じなければなりません&#039;&#039;&#039;。先の設定により、ディスパッチャはタイムアウトしませんが、閉じられもしません。これは、スクリプトはブート毎に 1 度しか実行されないことを意味します。なので、タイムアウトが実際に問題を起こしていない限り、この行を追加しないでください。}}&lt;br /&gt;
&lt;br /&gt;
=== ディスパッチャの例 ===&lt;br /&gt;
&lt;br /&gt;
==== タイムゾーンを自動的に設定する ====&lt;br /&gt;
&lt;br /&gt;
[[#ネットワークサービスで NetworkManager dispatcher を使用する|NetworkManager ディスパッチャスクリプト]]を作成し、[[実行可能属性|実行可能]]にしてください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/09-timezone|&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
case &amp;quot;$2&amp;quot; in&lt;br /&gt;
    up)&lt;br /&gt;
        timedatectl set-timezone &amp;quot;$(curl --fail &amp;lt;nowiki&amp;gt;https://ipapi.co/timezone&amp;lt;/nowiki&amp;gt;)&amp;quot;&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|up}} の代わりに {{ic|connectivity-change}} を使うと、[[OpenConnect]] などの VPN クライアントで VPN に接続した際に、タイムゾーンが変更されないようにすることができます。}}&lt;br /&gt;
&lt;br /&gt;
あるいは、{{AUR|tzupdate}} ツールを使うと、IP アドレスのいち情報に基づいてタイムゾーンを自動的に設定できます。運用環境内でどの API を使用するのかを決める際には、[https://medium.com/@ipdata_co/what-is-the-best-commercial-ip-geolocation-api-d8195cda7027 最も人気のある IP 位置情報 API の比較]をみると役立つかもしれません。&lt;br /&gt;
&lt;br /&gt;
==== sshfs でリモートディレクトリをマウントする ====&lt;br /&gt;
&lt;br /&gt;
このスクリプトは非常に制限された環境内で実行されるため、SSH エージェントに接続するためには {{ic|SSH_AUTH_SOCK}} 変数をエクスポートする必要があります。これを行う方法はいくつかあります (詳細は[https://bbs.archlinux.org/viewtopic.php?pid=1042030#p1042030 このメッセージ]を見てください)。以下の例は [[GNOME Keyring]] を使って動作し、キーリングがまだアンロックされていない場合はパスワードを要求します。NetworkManager がログイン時に自動的にネットワークに接続するような状況では、&#039;&#039;gnome-keyring&#039;&#039; がまだ開始されておらず、変数のエクスポートが失敗する可能性が高いです (そのために sleep コマンドがあります)。接続とマッチする {{ic|UUID}} は、{{ic|nmcli connection status}} か {{ic|nmcli connection list}} を実行すれば確認できます。&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
USER=&#039;username&#039;&lt;br /&gt;
REMOTE=&#039;user@host:/remote/path&#039;&lt;br /&gt;
LOCAL=&#039;/local/path&#039;&lt;br /&gt;
&lt;br /&gt;
interface=$1 status=$2&lt;br /&gt;
if [ &amp;quot;$CONNECTION_UUID&amp;quot; = &amp;quot;&amp;lt;/nowiki&amp;gt;&#039;&#039;uuid&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;quot; ]; then&lt;br /&gt;
  case $status in&lt;br /&gt;
    up)&lt;br /&gt;
      # sleep 10&lt;br /&gt;
      SSH_AUTH_SOCK=$(find /tmp -maxdepth 1 -type s -user &amp;quot;$USER&amp;quot; -name &#039;ssh&#039;)&lt;br /&gt;
      export SSH_AUTH_SOCK&lt;br /&gt;
      su &amp;quot;$USER&amp;quot; -c &amp;quot;sshfs $REMOTE $LOCAL&amp;quot;&lt;br /&gt;
      ;;&lt;br /&gt;
    down)&lt;br /&gt;
      fusermount -u &amp;quot;$LOCAL&amp;quot;&lt;br /&gt;
      ;;&lt;br /&gt;
  esac&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== SMB 共有をマウントする ====&lt;br /&gt;
&lt;br /&gt;
[[SMB]] 共有は特定のネットワークや場所 (例えば自宅) でしか利用できないことがあります。ディスパッチャを使えば、現在の場所で利用可能な SMB 共有のみをマウントすることができます。&lt;br /&gt;
&lt;br /&gt;
以下のスクリプトは、特定のネットワークに接続していることを確認し、それに応じて共有をマウントします:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/30-mount-smb.sh|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# 接続 UUID はターミナルで &amp;quot;nmcli connection show&amp;quot; を実行して確認してください。&lt;br /&gt;
# 全種類の NetworkManager 接続がサポートされています: 無線、VPN、有線など。&lt;br /&gt;
if [ &amp;quot;$2&amp;quot; = &amp;quot;up&amp;quot; ]; then&lt;br /&gt;
  if [ &amp;quot;$CONNECTION_UUID&amp;quot; = &amp;quot;uuid&amp;quot; ]; then&lt;br /&gt;
    mount /your/mount/point &amp;amp; &lt;br /&gt;
    # add more shares as needed&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
以下のスクリプトは、ソフトウェアが特定のネットワークからの切断を開始する前に、全ての SMB 共有をアンマウントします:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/pre-down.d/30-umount-smb.sh|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$CONNECTION_UUID&amp;quot; = &amp;quot;uuid&amp;quot; ]; then&lt;br /&gt;
  umount -a -l -t cifs&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|このスクリプトは上記の通り {{ic|pre-down.d}} サブディレクトリに配置してください。さもないと、接続状態が変わる度に毎回、全ての共有がアンマウントされてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
以下のスクリプトは、特定のネットワークから予期せずに切断されてしまった時に、全ての SMB 共有のアンマウントを試みます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/40-umount-smb.sh|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$CONNECTION_UUID&amp;quot; = &amp;quot;uuid&amp;quot; ]; then&lt;br /&gt;
  if [ &amp;quot;$2&amp;quot; = &amp;quot;down&amp;quot; ]; then&lt;br /&gt;
    umount -a -l -t cifs&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* NetworkManager 0.9.8 から、&#039;&#039;pre-down&#039;&#039; と &#039;&#039;down&#039;&#039; のイベントはシャットダウン時や再起動時に実行されなくなりました。詳細は[https://bugzilla.gnome.org/show_bug.cgi?id&amp;amp;#61;701242 このバグレポート]を見てください。&lt;br /&gt;
* 上記 2 つの &#039;&#039;umount&#039;&#039; スクリプトでは、マウントに実際にアクセスしているアプリケーションが &#039;ハング&#039; してしまう傾向が依然としてあります。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
代替案は、[[NFS#NetworkManager dispatcher を使う]] にあるスクリプトを使うことです:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/30-smb.sh|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# 接続 UUID はターミナルで &amp;quot;nmcli connection show&amp;quot; を実行して確認してください。&lt;br /&gt;
# 全種類の NetworkManager 接続がサポートされています: 無線、VPN、有線など。&lt;br /&gt;
WANTED_CON_UUID=&amp;quot;CHANGE-ME-NOW-9c7eff15-010a-4b1c-a786-9b4efa218ba9&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$CONNECTION_UUID&amp;quot; = &amp;quot;$WANTED_CON_UUID&amp;quot; ]; then&lt;br /&gt;
    &lt;br /&gt;
    # スクリプトパラメータ $1: ネットワークインターフェイス名 (未使用)&lt;br /&gt;
    # スクリプトパラメータ $2: ディスパッチされたイベント&lt;br /&gt;
    &lt;br /&gt;
    case &amp;quot;$2&amp;quot; in&lt;br /&gt;
        &amp;quot;up&amp;quot;)&lt;br /&gt;
            mount -a -t cifs&lt;br /&gt;
            ;;&lt;br /&gt;
        &amp;quot;down&amp;quot;|&amp;quot;pre-down&amp;quot;|&amp;quot;vpn-pre-down&amp;quot;)&lt;br /&gt;
            umount -l -a -t cifs &amp;gt;/dev/null&lt;br /&gt;
            ;;&lt;br /&gt;
    esac&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|このスクリプトは {{ic|noauto}} オプションのマウントは無視します。これらのマウントをディスパッチャが管理できるようにするには、このオプションを取り除くか、{{ic|auto}} を使ってください。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|pre-down}} イベントをキャッチできるようにするために {{ic|/etc/NetworkManager/dispatcher.d/pre-down/}} 内にシンボリックリンクを作成してください:&lt;br /&gt;
&lt;br /&gt;
 # ln -s ../30-smb.sh /etc/NetworkManager/dispatcher.d/pre-down.d/30-smb.sh&lt;br /&gt;
&lt;br /&gt;
==== NFS 共有をマウントする ====&lt;br /&gt;
&lt;br /&gt;
[[NFS#NetworkManager dispatcher を使う]] を見てください。&lt;br /&gt;
&lt;br /&gt;
==== ディスパッチャを使って、LAN ケーブルが挿入されているかに応じて Wi-Fi を自動的にオンオフする ====&lt;br /&gt;
&lt;br /&gt;
アイディアとしては、LAN ケーブルが抜かれた時にのみ Wi-Fi をオンにし (例えば、ラップトップのドックから取り外された時など)、LAN ケーブルが挿入されたら Wi-Fi を自動的に無効化します。&lt;br /&gt;
&lt;br /&gt;
以下のディスパッチャスクリプトを作成してください[https://superuser.com/questions/233448/disable-wlan-if-wired-cable-network-is-available]。{{ic|&#039;&#039;Your_Ethernet_Interface&#039;&#039;}} の部分は実際のイーサネットインターフェイスのデバイス名に変更してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[#nmcli 例|nmcli]] を使えばインターフェイスのリストを取得できます ({{ic|nmcli d {{!}} grep ethernet}})。イーサネットインターフェイスは {{ic|en}} か {{ic|eth}} で始まります (例: {{ic|enp0s5}}、{{ic|eth0}})。}}&lt;br /&gt;
&lt;br /&gt;
このスクリプトを[[実行可能属性|実行可能]]にすることを忘れないでください。{{ic|NetworkManager.service}} を[[再起動]]し、{{ic|ip a}} を実行して {{ic|wlp3s0}} (実際の Wi-Fi インターフェイス名) が {{ic|state DOWN}} であればうまく行っています。予想外の動作が起こった場合は、{{ic|NetworkManager-dispatcher.service}} の [[journal]] を確認してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/99-wifi-auto-toggle.sh|2=&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
LOG_PREFIX=&amp;quot;WiFi Auto-Toggle&amp;quot;&lt;br /&gt;
ETHERNET_INTERFACE=&amp;quot;&#039;&#039;Your_Ethernet_Interface&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;$ETHERNET_INTERFACE&amp;quot; ]; then&lt;br /&gt;
    case &amp;quot;$2&amp;quot; in&lt;br /&gt;
        up)&lt;br /&gt;
            echo &amp;quot;$LOG_PREFIX ethernet up&amp;quot;&lt;br /&gt;
            nmcli radio wifi off&lt;br /&gt;
            ;;&lt;br /&gt;
        down)&lt;br /&gt;
            echo &amp;quot;$LOG_PREFIX ethernet down&amp;quot;&lt;br /&gt;
            nmcli radio wifi on&lt;br /&gt;
            ;;&lt;br /&gt;
    esac&lt;br /&gt;
elif [ &amp;quot;$(nmcli -g GENERAL.STATE device show $ETHERNET_INTERFACE)&amp;quot; = &amp;quot;20 (unavailable)&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;$LOG_PREFIX failsafe&amp;quot;&lt;br /&gt;
    nmcli radio wifi on&lt;br /&gt;
fi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|コンピュータが最後にオンであったときに接続されていた LAN インターフェイスが、コンピュータがオフになったときに切断された場合のフェイルセーフ機構が存在します。つまり、LAN インターフェイスが切断されている状態でコンピュータがオンに戻ったときにも無線がオフのままになるということです。この場合、ネットワークに接続されていない状態になります。}}&lt;br /&gt;
&lt;br /&gt;
==== ディスパッチャを使って、ネットワーク接続が確立された後に VPN に接続する ====&lt;br /&gt;
&lt;br /&gt;
この例では、特定の Wi-Fi ネットワークに接続した後に、以前定義された VPN 接続に自動的に接続したいと思います。最初にすべきことは、そのネットワークに接続した後にすることを定義するディスパッチャスクリプトを作成することです。&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|A scripting without {{ic|iwgetid}} does work too and may be more reliable? (議論: [[:en:Talk:NetworkManager#Fixes for automatic VPN dispatcher script]])}}&lt;br /&gt;
&lt;br /&gt;
{{Note|このスクリプトでは {{ic|iwgetid}} を使うために {{Pkg|wireless_tools}} を必要とします。}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/vpn-up|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
VPN_NAME=&amp;quot;NetworkManager に定義されている VPN 接続の名前&amp;quot;&lt;br /&gt;
ESSID=&amp;quot;Wi-Fi ネットワークの ESSID (接続名ではない)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
interface=$1 status=$2&lt;br /&gt;
case $status in&lt;br /&gt;
  up|vpn-down)&lt;br /&gt;
    if iwgetid | grep -qs &amp;quot;:\&amp;quot;$ESSID\&amp;quot;&amp;quot;; then&lt;br /&gt;
      nmcli connection up id &amp;quot;$VPN_NAME&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
    ;;&lt;br /&gt;
  down)&lt;br /&gt;
    if iwgetid | grep -qs &amp;quot;:\&amp;quot;$ESSID\&amp;quot;&amp;quot;; then&lt;br /&gt;
      if nmcli connection show --active | grep &amp;quot;$VPN_NAME&amp;quot;; then&lt;br /&gt;
        nmcli connection down id &amp;quot;$VPN_NAME&amp;quot;&lt;br /&gt;
      fi&lt;br /&gt;
    fi&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
全ての Wi-Fi ネットワークで VPN への接続を試みたい場合は、次の ESSID 定義を使用できます: {{ic|1=ESSID=$(iwgetid -r)}}。スクリプトのパーミッションを[[#ネットワークサービスで NetworkManager dispatcher を使用する|適宜]]設定することを忘れないでください。&lt;br /&gt;
&lt;br /&gt;
[https://developer.gnome.org/NetworkManager/0.9/secrets-flags.html VPN の機密情報が保管される方法]により、上記のスクリプトで VPN への接続しようとしても、{{ic|NetworkManager-dispatcher.service}} が &#039;no valid VPN secrets&#039; というエラーで失敗する場合があります。幸運なことに、スクリプトから VPN のパスワードにアクセスする方法は他にもあります。&lt;br /&gt;
&lt;br /&gt;
1: それらの方法の1つでは、VPN 接続の設定ファイルを編集して、[https://bugzilla.redhat.com/show_bug.cgi?id=710552 root からはアクセスできない]キーリングではなく自身で機密情報を保存させるように NetworkManager を設定する必要があります: {{ic|/etc/NetworkManager/system-connections/&#039;&#039;VPN接続の名前&#039;&#039;.nmconnection}} を開き、{{ic|password-flags}} と {{ic|secret-flags}} を {{ic|1}} から {{ic|0}} に変更してください。&lt;br /&gt;
&lt;br /&gt;
それだけではうまく行かない場合は、以下の内容で {{ic|passwd-file}} を安全な場所にディスパッチャスクリプトと同じパーミッションと所有権で作成する必要があるかもしれません:&lt;br /&gt;
&lt;br /&gt;
{{hc|/path/to/passwd-file|&lt;br /&gt;
vpn.secrets.password:パスワード&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ファイルからパスワードを得られるようにするために、スクリプトは適宜変更する必要があります:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/vpn-up|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
VPN_NAME=&amp;quot;NetworkManager に定義されている VPN 接続の名前&amp;quot;&lt;br /&gt;
ESSID=&amp;quot;Wi-Fi ネットワークの ESSID (接続名ではない)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
interface=$1 status=$2&lt;br /&gt;
case $status in&lt;br /&gt;
  up|vpn-down)&lt;br /&gt;
    if iwgetid | grep -qs &amp;quot;:\&amp;quot;$ESSID\&amp;quot;&amp;quot;; then&lt;br /&gt;
      nmcli connection up id &amp;quot;$VPN_NAME&amp;quot; passwd-file /path/to/passwd-file&lt;br /&gt;
    fi&lt;br /&gt;
    ;;&lt;br /&gt;
  down)&lt;br /&gt;
    if iwgetid | grep -qs &amp;quot;:\&amp;quot;$ESSID\&amp;quot;&amp;quot;; then&lt;br /&gt;
      if nmcli connection show --active | grep &amp;quot;$VPN_NAME&amp;quot;; then&lt;br /&gt;
        nmcli connection down id &amp;quot;$VPN_NAME&amp;quot;&lt;br /&gt;
      fi&lt;br /&gt;
    fi&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
2: あるいは、{{ic|password-flags}} を変更して、設定ファイル内に {{ic|vpn-secrets}} セクションを追加してパスワードを直接書き込むという方法もあります:&lt;br /&gt;
&lt;br /&gt;
  [vpn]&lt;br /&gt;
  ....&lt;br /&gt;
  password-flags=0&lt;br /&gt;
  &lt;br /&gt;
  [vpn-secrets]&lt;br /&gt;
  password=&#039;&#039;パスワード&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|NetworkManager の接続エディタを再び開き、VPN のパスワード/機密情報を保存し直す必要があるかもしれません。}}&lt;br /&gt;
&lt;br /&gt;
==== ディスパッチャを使って、VPN プロバイダの接続時に IPv6 を無効化する ====&lt;br /&gt;
&lt;br /&gt;
多くの[[:カテゴリ:VPN プロバイダー|商用 VPN プロバイダー]]は IPv4 のみをサポートしています。つまり、IPv6 のトラフィックは全て VPN をバイパスし、事実上、使い物にならなくなります。ディスパッチャを使って、VPN に接続されている時は全ての IPv6 トラフィックを無効化することで、この問題を回避できます。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/10-vpn-ipv6|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$2&amp;quot; in&lt;br /&gt;
	vpn-up)&lt;br /&gt;
		echo 1 &amp;gt; /proc/sys/net/ipv6/conf/all/disable_ipv6&lt;br /&gt;
		;;&lt;br /&gt;
	vpn-down)&lt;br /&gt;
		echo 0 &amp;gt; /proc/sys/net/ipv6/conf/all/disable_ipv6&lt;br /&gt;
		;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|WireGuard では、NetworkManager が {{ic|vpn-up/down}} イベントを出さないため、上記のスクリプトは動作しません。代わりに、[https://gist.github.com/TheDcoder/85e1ec99a31180e20ba8e4896024f265] のコードのように WireGuard インターフェイスに対しては汎用イベントに頼る必要があります。}}&lt;br /&gt;
&lt;br /&gt;
代替案としては、ディスパッチャを使って、VPN 接続に使用しているデバイスの IPv6 モードを一時的に {{ic|link-local}} に設定することもできます。これにより、NetworkManager が、IPv6 が無効化されていることについて警告をログに大量出力することを防ぐことができます。このスクリプトは、複数のデバイスや接続が IPv6 接続を提供している場合、動作しません。しかし、複数のデバイスを反復させることで応用することができます。注意点として、接続に対して何らかの変更が加えられた場合 ({{man|1|nmcli}} や[[デスクトップ環境]]の機能を使った場合)、そのデバイスに対する接続全体が再適用され、IPv6 が再有効化されます (その接続で有効化されている場合)。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/10-vpn-ipv6|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$2&amp;quot; in&lt;br /&gt;
	vpn-up)&lt;br /&gt;
		nmcli device modify &amp;quot;${DEVICE_IFACE}&amp;quot; ipv6.method link-local&lt;br /&gt;
		;;&lt;br /&gt;
	vpn-down)&lt;br /&gt;
		nmcli device reapply &amp;quot;${DEVICE_IFACE}&amp;quot;&lt;br /&gt;
		;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== OpenNTPD ====&lt;br /&gt;
&lt;br /&gt;
[[OpenNTPD#NetworkManager dispatcher を使う]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== systemd-timesyncd で DHCP 経由で受信した NTP サーバを動的に設定する ====&lt;br /&gt;
&lt;br /&gt;
異なるネットワーク間 (例: 会社の LAN、自宅の Wi-Fi、その他の様々な Wi-Fi) でローミングする場合、timesyncd によって使用されている NTP サーバを DHCP によって提供されているものに設定したい場合があります。ただし、NetworkManager 自体は systemd-timesyncd と通信して NTP サーバを設定することはできません。&lt;br /&gt;
&lt;br /&gt;
ディスパッチャを使うことで、この問題を回避できます。&lt;br /&gt;
&lt;br /&gt;
systemd-timesyncd の設定ようのオーバーレイディレクトリ {{ic|/etc/systemd/timesyncd.conf.d}} を[[作成]]してください (まだ存在していない場合)。{{ic|/etc/NetworkManager/dispatcher.d}} 内に以下を追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/dispatcher.d/10-update-timesyncd|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
[ -z &amp;quot;$CONNECTION_UUID&amp;quot; ] &amp;amp;&amp;amp; exit 0&lt;br /&gt;
INTERFACE=&amp;quot;$1&amp;quot;&lt;br /&gt;
ACTION=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
case $ACTION in&lt;br /&gt;
up | dhcp4-change | dhcp6-change)&lt;br /&gt;
	# `DHCP6_DHCP6_NTP_SERVERS` with double `DHCP6` is the correct variable name as varified by `printenv` as of NetworkManager 1.56.0-1&lt;br /&gt;
	set -- ${DHCP6_DHCP6_NTP_SERVERS-} ${DHCP4_NTP_SERVERS-}&lt;br /&gt;
	servers=$*&lt;br /&gt;
	[ -n &amp;quot;$servers&amp;quot; ] || exit 0&lt;br /&gt;
	mkdir -p /etc/systemd/timesyncd.conf.d&lt;br /&gt;
	cat &amp;lt;&amp;lt;-THE_END &amp;gt;&amp;quot;/etc/systemd/timesyncd.conf.d/${CONNECTION_UUID}.conf&amp;quot;&lt;br /&gt;
		[Time]&lt;br /&gt;
		NTP=$servers&lt;br /&gt;
	THE_END&lt;br /&gt;
	systemctl restart systemd-timesyncd.service&lt;br /&gt;
	;;&lt;br /&gt;
down)&lt;br /&gt;
	rm -f &amp;quot;/etc/systemd/timesyncd.conf.d/${CONNECTION_UUID}.conf&amp;quot;&lt;br /&gt;
	systemctl restart systemd-timesyncd.service&lt;br /&gt;
	;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
NetworkManager が新しいネットワーク接続を設定する ({{ic|1=ACTION=up}}) か、既存の接続の更新を取得する ({{ic|1=ACTION=dhcp4-change}} または {{ic|1=ACTION=dhcp6-change}}) 度に、接続データに NTP サーバ ({{ic|DHCP6_DHCP6_NTP_SERVERS}} と {{ic|DHCP4_NTP_SERVERS}}) に関する情報が含まれていると、接続固有のオーバーレイ設定ファイルが {{ic|/etc/systemd/timesyncd.conf.d}} に書き込まれ、このファイルには、提供された NTP サーバ (1台または複数) の情報が記述されます。提供された NTP サーバが含まれます。接続が停止される ({{ic|1=ACTION=down}}) と、接続固有のオーバーレイファイルは削除されます。systemd-timesyncd の設定が変更されるたびに、サービスは再起動され、更新された設定を取得します。NetworkManager で 2つ以上の接続を並行して管理する場合、{{ic|up}}、{{ic|dhcp4-change}}、{{ic|dhcp6-change}}、そして {{ic|down}} アクションが任意の順序で来るかもしれないので、設定内の異なる NTP サーバ名が上書きされないように接続固有の設定ファイルを意図的に使用しています。&lt;br /&gt;
&lt;br /&gt;
{{Note|NetworkManager 1.56.0-1 の時点では、{{ic|1=DHCP6}} が2つある {{ic|1=DHCP6_DHCP6_NTP_SERVERS}} は、{{ic|1=printenv}} で確認できるように正しい変数名です。}}&lt;br /&gt;
&lt;br /&gt;
== テスト ==&lt;br /&gt;
&lt;br /&gt;
NetworkManager アプレットはログイン時にロードされるようになっているので、ほとんどのユーザにとって追加の設定は必要ないはずです。以前のネットワーク設定を無効化し、ネットワークから切断されているならば、NetworkManager が動作するかどうかをテストできます。まず始めに、{{ic|NetworkManager.service}} を[[起動]]してください。&lt;br /&gt;
&lt;br /&gt;
一部のアプレットは、NetworkManager アプレットをアプリケーションメニューからロードできるようにするために、{{ic|.desktop}} ファイルを提供しています。デスクトップファイルが提供されていない場合は、アプレットを使用するためのコマンドを見つけるか、アプレットをロードするために一度ログアウトして再度ログインする必要があります。アプレットが開始されれば、DHCP サーバを使って自動設定によるネットワーク接続のポーリングが開始されるでしょう。&lt;br /&gt;
&lt;br /&gt;
[[awesome]] などの XDG 非互換のウィンドウマネージャで GNOME のアプレットを開始するには:&lt;br /&gt;
&lt;br /&gt;
 nm-applet --sm-disable &amp;amp;&lt;br /&gt;
&lt;br /&gt;
固定 IP アドレスの場合は、NetworkManager にそのことを伝えなければなりません。手順としては通常、アプレットを右クリックし、&#039;接続を編集する&#039; (&#039;Edit Connections&#039;) などのような項目を選択します。&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== Wi-Fi パスワードの暗号化 ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、NetworkManager はパスワードを平文で {{ic|/etc/NetworkManager/system-connections/}} 内の設定ファイルに保存します。保存されているパスワードを表示するには、以下のコマンドを使ってください:&lt;br /&gt;
&lt;br /&gt;
 # grep -r &#039;^psk=&#039; /etc/NetworkManager/system-connections/&lt;br /&gt;
&lt;br /&gt;
パスワードは root ユーザからファイルシステムでアクセス可能であり、さらに GUI (例: {{ic|nm-applet}}) を通して設定にアクセスできるユーザからもアクセス可能です。&lt;br /&gt;
&lt;br /&gt;
パスワードは、平文ではなく、キーリングの中で暗号化された形で保存するのが望ましいです。しかし、これの欠点は、それぞれのユーザで接続をセットアップしなけれならないことです。&lt;br /&gt;
&lt;br /&gt;
キーリングを読み書きするために、利用可能なシークレットエージェントが存在していなければなりません。いかのどれかを使用できます:&lt;br /&gt;
&lt;br /&gt;
* {{ic|nmcli}} で {{ic|--ask}} オプションを使う。&lt;br /&gt;
* [[#フロントエンド]] に挙げられているグラフィカルインターフェイス&lt;br /&gt;
&lt;br /&gt;
シークレットエージェントが利用できないと、{{ic|no secrets: No agents were available for this request.}} というエラーで認証が失敗します。&lt;br /&gt;
&lt;br /&gt;
==== GNOME Keyring を使う ====&lt;br /&gt;
&lt;br /&gt;
以下の方法を使うには、GNOME Keyring のキーリングデーモンが開始されていて、キーリングがアンロックされている必要があります。&lt;br /&gt;
&lt;br /&gt;
さらに、全ユーザのパスワードを保存しないように NetworkManager を設定する必要があります。GNOME の {{Pkg|network-manager-applet}} を使って、ターミナルから {{ic|nm-connection-editor}} を実行し、ネットワーク接続を選択し、&#039;&#039;編集&#039;&#039; (&#039;&#039;Edit&#039;&#039;) をクリックし、&#039;&#039;Wi-Fi セキュリティー&#039;&#039; (&#039;&#039;Wi-Fi Security&#039;&#039;) タブを選択し、パスワード入力欄の右のアイコンをクリックして、&#039;&#039;このユーザーのパスワードのみ保存する&#039;&#039; (&#039;&#039;Store the password only for this user&#039;&#039;) にチェックを入れてください。&lt;br /&gt;
&lt;br /&gt;
==== KDE Wallet を使う ====&lt;br /&gt;
&lt;br /&gt;
KDE の {{Pkg|plasma-nm}} を使う場合、アプレットをクリックし、右上の &#039;&#039;設定&#039;&#039; アイコンをクリックし、ネットワーク接続を選択し、&#039;&#039;一般設定&#039;&#039; (&#039;&#039;General configuration&#039;&#039;) タブを選択し、&#039;&#039;すべてのユーザはこのネットワークに接続可能&#039;&#039; (&#039;&#039;All users may connect to this network&#039;&#039;) のチェックを外してください。このオプションにチェックが入っていると、たとえキーリングデーモンが実行されていたとしても、パスワードが平文で保存されてしまいます。&lt;br /&gt;
&lt;br /&gt;
以前このオプションにチェックが入っていて、後にチェックを外した場合、ファイルからパスワードを消すために {{ic|reset}} オプションを使用する必要がある場合があります。あるいは、接続を削除し、再度セットアップしてください。&lt;br /&gt;
&lt;br /&gt;
=== Wi-Fi でインターネット接続を共有する ===&lt;br /&gt;
&lt;br /&gt;
数クリックでインターネット接続 (例: 3G、有線) を共有することができます。ただし、[[ファイアウォール]]はインターネット共有を妨害する場合があることに注意してください。&lt;br /&gt;
&lt;br /&gt;
AP モードをサポートする Wi-Fi カードが必要になります。詳細は [[ソフトウェアアクセスポイント#Wi-Fi デバイスが AP モードをサポートしていること]] を見てください。&lt;br /&gt;
&lt;br /&gt;
接続を共有できるようにするために {{Pkg|dnsmasq}} パッケージを[[インストール]]してください。NetworkManager は ({{ic|dnsmasq.service}} とは独立に) 独自の &#039;&#039;dnsmasq&#039;&#039; インスタンスを DHCP サーバとして開始することに注意してください。これに関する注意事項は [[#dnsmasq]] を見てください。&lt;br /&gt;
&lt;br /&gt;
共有された接続を作成してください:&lt;br /&gt;
&lt;br /&gt;
* アプレットをクリックし、&#039;&#039;新規 Wi-Fi ネットワークを作成&#039;&#039; (&#039;&#039;Create new wireless network&#039;&#039;) を選んでください。&lt;br /&gt;
* ウィザードに従ってください (WPA2 以上を選んでください。パスワードは 8 文字以上にしてください。さもないと失敗します)。&lt;br /&gt;
* Wi-Fi モードとして[[Fedora:Features/RealHotspot|ホットスポット]]かアドホックを選択してください。&lt;br /&gt;
&lt;br /&gt;
これで、次回必要になるときのために接続は保存されます。&lt;br /&gt;
&lt;br /&gt;
{{Note|Android はアドホックネットワークへの接続をサポートしていません。Android と接続を共有するには、インフラストラクチャモードを使用してください (つまり、Wi-Fi モードを &amp;quot;ホットスポット&amp;quot; に設定する)。}}&lt;br /&gt;
&lt;br /&gt;
=== イーサネットでインターネット接続を共有する ===&lt;br /&gt;
&lt;br /&gt;
シナリオ: デバイスが Wi-Fi 経由でインターネットに接続されていて、イーサネットで他のデバイスとインターネット接続を共有したいと考えている場合。&lt;br /&gt;
&lt;br /&gt;
要件:&lt;br /&gt;
&lt;br /&gt;
* 接続を共有できるようにするために {{Pkg|dnsmasq}} パッケージと {{Pkg|nm-connection-editor}} パッケージを[[インストール]]してください。NetworkManager は ({{ic|dnsmasq.service}} とは独立に) 独自の &#039;&#039;dnsmasq&#039;&#039; インスタンスを DHCP サーバとして開始することに注意してください。これに関する注意事項は [[#dnsmasq]] を見てください。&lt;br /&gt;
* インターネットに接続されたデバイスとその他のデバイスが適切なイーサネットケーブルで接続されていること (これは通常、間をクロスオーバーケーブルやスイッチで繋ぐことを意味します)。&lt;br /&gt;
* インターネット共有が[[ファイアウォール]]によってブロックされていないこと。&lt;br /&gt;
&lt;br /&gt;
手順:&lt;br /&gt;
&lt;br /&gt;
* ターミナルから {{ic|nm-connection-editor}} を実行してください。&lt;br /&gt;
* 新しいイーサネット接続を追加してください。&lt;br /&gt;
* 何かわかりやすい名前を付けてください。例えば &amp;quot;Shared Internet&amp;quot;。&lt;br /&gt;
* &amp;quot;IPv4 設定&amp;quot; (&amp;quot;IPv4 Settings&amp;quot;) を開いてください。&lt;br /&gt;
* &amp;quot;メソッド:&amp;quot; (&amp;quot;Method:&amp;quot;) で &amp;quot;他のコンピューターへ共有&amp;quot; (&amp;quot;Shared to other computers&amp;quot;) を選択してください。&lt;br /&gt;
* 保存&lt;br /&gt;
&lt;br /&gt;
これで、NetworkManager の有線接続に &amp;quot;Shared Internet&amp;quot; という新しいオプションができたはずです。&lt;br /&gt;
&lt;br /&gt;
=== cron ジョブやスクリプトでネットワークが立ち上がっているか確認する ===&lt;br /&gt;
&lt;br /&gt;
{{Out of date|&#039;&#039;nm-tool&#039;&#039; は NetworkManager から削除されました [https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commit/bb8c75bd536d4f8fb80a4366025a279078f0ec81]。代わりに &#039;&#039;nmcli&#039;&#039; を使用するべきです。}}&lt;br /&gt;
&lt;br /&gt;
一部の &#039;&#039;cron&#039;&#039; ジョブではネットワークが立ち上がっている必要があり、ネットワークが落ちている状態でそのようなジョブを実行したくない場合があります。そうするには、NetworkManager の &#039;&#039;nm-tool&#039;&#039; にクエリして、ネットワークの状態をチェックする &#039;&#039;&#039;if&#039;&#039;&#039; テストを追加してください。このテストは、何らかのインターフェイスが立ち上がっていれば成功し、インターフェイスが全て落ちている場合は失敗します。これは、ある時は有線接続されていて、ある時は無線で、またある時はネットワークから切断されているようなノート PC で便利です。&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
if [ $(nm-tool|grep State|cut -f2 -d&#039; &#039;) == &amp;quot;connected&amp;quot; ]; then&lt;br /&gt;
    # ネットワークがオンラインの時に実行したいコード&lt;br /&gt;
else&lt;br /&gt;
    # ネットワークがオフラインの時に実行したいコード (注記: この部分と上の else は任意です)&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
これは、例えば F-Prot ウイルススキャナのシグネチャを更新するために &#039;&#039;fpupdate&#039;&#039; を実行する {{ic|cron.hourly}} で便利です。また、&#039;&#039;nm-tool&#039;&#039; の出力の様々な部分を使えば、ネットワークを識別することもできます。例えば、アクティブなワイヤレスネットワークにはアスタリスクが付くので、ネットワーク名を grep して、その後でアスタリスクを grep しますs。&lt;br /&gt;
&lt;br /&gt;
=== ブート時にシークレットを使ってネットワークに接続する ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、NetworkManager はシークレットを要求するネットワークにはブート時に自動的に接続しません。NetworkManager では、そのようなネットワークは、そのネットワークをデフォルトで使用するユーザがログインした後にのみ、接続されるからです。この動作を変更するには、以下を行ってください:&lt;br /&gt;
&lt;br /&gt;
# パネルの {{ic|nm-applet}} のアイコンを右クリックし、&amp;quot;接続を編集する&amp;quot; を選択し、Wi-Fi タブを開いてください。&lt;br /&gt;
# 使いたい接続を選択し、編集ボタンをクリックしてください。&lt;br /&gt;
# “Connect Automatically” と “Available to all users” のボックスにチェックを入れてください。&lt;br /&gt;
# 加えて、&amp;quot;Wi-Fi Security&amp;quot; タブで &amp;quot;Store password for all users (not encrypted)&amp;quot; が選択されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
ログアウトし、ログインし直せば完了です。&lt;br /&gt;
&lt;br /&gt;
=== OpenConnect で KWallet 内のパスワードを使う ===&lt;br /&gt;
&lt;br /&gt;
接続時にユーザ名とパスワードを入力することはできますが、{{Pkg|plasma-nm}} 0.9.3.2-1 から、[[KWallet]] から直接 OpenConnect のユーザ名とパスワードを取得することが可能になりました。&lt;br /&gt;
&lt;br /&gt;
&amp;quot;KDE Wallet Manager&amp;quot; を開き、&amp;quot;Network Management|Maps&amp;quot; で対象の OpenConnect VPN 接続を見つけてください。&amp;quot;Show values&amp;quot; をクリックし、認証情報を以下の形式で &amp;quot;VpnSecrets&amp;quot; に入力してください (&#039;&#039;ユーザ名&#039;&#039; と &#039;&#039;パスワード&#039;&#039; の部分は適宜置き換えてください):&lt;br /&gt;
&lt;br /&gt;
 form:main:username%SEP%&#039;&#039;ユーザ名&#039;&#039;%SEP%form:main:password%SEP%&#039;&#039;パスワード&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
次回の接続時に、ユーザ名とパスワードが &amp;quot;VPN secrets&amp;quot; ダイアログボックスに入力されるはずです。&lt;br /&gt;
&lt;br /&gt;
=== 特定のデバイスを無視する ===&lt;br /&gt;
&lt;br /&gt;
NetworkManager で特定のデバイスを無視し、そのデバイスに対してはアドレスとルート (route) の設定を試みないようにすることが望ましい場合があります。{{ic|/etc/NetworkManager/conf.d/unmanaged.conf}} で以下のオプションを使うことで、MAC またはインターフェイス名によって特定のデバイスを無視することができます:&lt;br /&gt;
&lt;br /&gt;
 [keyfile]&lt;br /&gt;
 unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth0&lt;br /&gt;
&lt;br /&gt;
ファイルを編集したら、{{ic|nmcli general reload}} を root として実行してください。その後、NetworkManager があなたの設定を変更することなく、インターフェイスを構成できるようになっているはずです。&lt;br /&gt;
&lt;br /&gt;
=== MAC アドレスのランダム化を設定する ===&lt;br /&gt;
&lt;br /&gt;
{{Note|1=(安定した) リンク接続[https://bbs.archlinux.org/viewtopic.php?id=220101]や、MAC アドレスに基づいてデバイスを制限したりネットワーク容量に制限を設けているネットワークへの接続には、MAC アドレスのランダム化を無効化する必要がある場合があります。}}&lt;br /&gt;
&lt;br /&gt;
MAC アドレスのランダム化は、本物の MAC アドレスをネットワークに開示しないことで、プライバシーを向上させることができます。&lt;br /&gt;
&lt;br /&gt;
NetworkManager は2種類の MAC アドレスランダム化をサポートしています: スキャン中のランダム化とネットワーク接続におけるランダム化です。どちらのモードも、{{ic|/etc/NetworkManager/NetworkManager.conf}} を変更するか、{{ic|/etc/NetworkManager/conf.d/}} 内に別の設定ファイルを作成することで設定できます (前者は NetworkManager によって上書きされる場合があるので、後者が推奨されます)。&lt;br /&gt;
&lt;br /&gt;
Wi-Fi スキャン中のランダム化はデフォルトで有効化されていますが、以下の行を {{ic|/etc/NetworkManager/NetworkManager.conf}} か {{ic|/etc/NetworkManager/conf.d}} 内の別の設定ファイルに追加することで無効化することができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/wifi_rand_mac.conf|2=&lt;br /&gt;
[device]&lt;br /&gt;
wifi.scan-rand-mac-address=no&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ネットワーク接続における MAC アドレスランダム化は、無線インターフェイスとイーサネットインターフェイスで別々のモードを設定することができます。モードに関する詳細は [https://blogs.gnome.org/thaller/2016/08/26/mac-address-spoofing-in-networkmanager-1-4-0/ GNOME のブログ記事]を参照してください。&lt;br /&gt;
&lt;br /&gt;
MAC アドレスランダム化に関して、最も重要なモードは {{ic|stable}} と {{ic|random}} です。{{ic|stable}} は、新しいネットワークに接続した時にランダムな MAC アドレスを生成し、そのネットワークと MAC アドレスを永続的に関連付けます。これはつまり、そのネットワークに接続すると毎回同じ MAC アドレスが使用されることを意味します。それとは対照的に、{{ic|random}} は、ネットワークに接続する度に、そのネットワークが新しかろうが既知であろうが、新しい MAC アドレスを生成します。{{ic|/etc/NetworkManager/conf.d}} 内に設定ファイルを追加してこの MAC アドレスランダム化を設定することができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/wifi_rand_mac.conf|2=&lt;br /&gt;
[device-mac-randomization]&lt;br /&gt;
# &amp;quot;yes&amp;quot; は既にスキャンにおけるデフォルトです。&lt;br /&gt;
wifi.scan-rand-mac-address=yes&lt;br /&gt;
 &lt;br /&gt;
[connection-mac-randomization]&lt;br /&gt;
# 全てのイーサネット接続に対して MAC をランダム化する&lt;br /&gt;
ethernet.cloned-mac-address=random&lt;br /&gt;
# 各 Wi-Fi に対してランダムな MAC を生成し、それらを関連付ける。&lt;br /&gt;
wifi.cloned-mac-address=stable&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
特定の接続に対して MAC ランダム化を設定するには (例えば、そのネットワークでランダムな MAC アドレスを使えない場合)、[[#接続を編集する|接続を編集して]] {{ic|802-11-wireless.cloned-mac-address}} に所望のモード (例: {{ic|stable}}、{{ic|random}}) を設定してください。&lt;br /&gt;
&lt;br /&gt;
詳細は [https://blogs.gnome.org/thaller/2016/08/26/mac-address-spoofing-in-networkmanager-1-4-0/ GNOME ブログ記事]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== ホスト名の送信をオフにする ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、NetworkManager は DHCP サーバにホスト名を送ります。&lt;br /&gt;
&lt;br /&gt;
DHCP サーバへのホスト名の送信をグローバルに無効化するには、{{ic|/etc/NetworkManager/conf.d/}} 内の設定ファイルで2つのオプション {{ic|ipv4.dhcp-send-hostname{{=}}0}} と {{ic|ipv6.dhcp-send-hostname{{=}}0}} を設定してください。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/dhcp-send-hostname.conf|2=&lt;br /&gt;
[connection]&lt;br /&gt;
ipv4.dhcp-send-hostname=0&lt;br /&gt;
ipv6.dhcp-send-hostname=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
特定の接続においてのみ DHCP サーバへのホスト名の送信を無効化するには (あるいは、グローバルに無効化しておいて、特定の接続では有効化するには)、以下をネットワーク接続ファイルに追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/system-connections/&#039;&#039;your_connection_file&#039;&#039;.nmconnection|2=&lt;br /&gt;
...&lt;br /&gt;
[ipv4]&lt;br /&gt;
dhcp-send-hostname=false&lt;br /&gt;
...&lt;br /&gt;
[ipv6]&lt;br /&gt;
dhcp-send-hostname=false&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|デフォルトでは、[[#DHCP クライアント|内部 DHCP クライアント]]のみがこれらのオプションに従います。NetworkManager を dhcpcd と共に使用する際にホスト名の送信を省略するには、{{ic|/etc/dhcpcd.conf}} を編集して最後の行に {{ic|anonymous}} を挿入してください。}}&lt;br /&gt;
&lt;br /&gt;
=== IPv6 プライバシー拡張を有効にする ===&lt;br /&gt;
&lt;br /&gt;
[[IPv6#NetworkManager]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 接続ごとに一意の DUID を設定する ===&lt;br /&gt;
&lt;br /&gt;
DHCPv6 Unique Identifier (DUID) は、DHCPv6 クライアントが DHCPv6 サーバに対して自身を識別するために使用する値です。NetworkManager は3種類の DUID をサポートしています:&lt;br /&gt;
&lt;br /&gt;
* DUID-UUID ([[RFC:6355|RFC 6355]]): Universally Unique IDentifier (UUID) から生成されます。&lt;br /&gt;
* DUID-LL ([[RFC:3315|RFC 3315]]): リンク層アドレス (別名 MAC アドレス) から生成されます。&lt;br /&gt;
* DUID-LLT ([[RFC:3315|RFC 3315]]): リンク層アドレスとタイムスタンプから生成されます。&lt;br /&gt;
&lt;br /&gt;
NetworkManager の内部 DHCP クライアントが使用されている場合 (デフォルト)、machine-id ({{ic|/etc/machine-id}}) から生成されたグローバルで永続的な DUID-UUID で自身を識別します。これは、すべての接続が同じ UUID を共有することを意味し、プライバシーの侵害となる可能性があります。&lt;br /&gt;
&lt;br /&gt;
幸いなことに、NetworkManager は、接続の stable-id とホストごとの一意のキーから派生した、接続ごとの一意の DUID を提供できます。{{ic|/etc/NetworkManager/conf.d}} 内に次の設定を追加することで、これを有効にすることができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/duid.conf|2=&lt;br /&gt;
[connection]&lt;br /&gt;
ipv6.dhcp-duid=stable-uuid&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|stable-ll}} および {{ic|stable-llt}} の値もサポートされています。詳細については、{{man|5|nm-settings|ipv6 setting}} の {{ic|dhcp-duid}} の説明を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 有線接続の操作 ===&lt;br /&gt;
&lt;br /&gt;
NetworkManager は、デフォルトで、有線イーサネット接続を検出するたびにそれぞれに対して接続プロファイルを生成します。接続を生成する時点では、利用可能なイーサネットアダプターがさらにあるかどうかはわかりません。そのため、最初の有線接続は &amp;quot;有線接続 1&amp;quot; となります。{{ic|no-auto-default}} ({{man|5|NetworkManager.conf}} を参照) を設定するか、単に削除することで、この接続を生成しないようにできます。そうすれば、NetworkManager はこのインターフェイスの接続を二度と生成しないように記憶します。&lt;br /&gt;
&lt;br /&gt;
また、接続を編集 (およびディスクに永続化) したり、削除したりすることもできます。NetworkManager は新しい接続を再生成することはありません。それから、名前を好きなものに変更することができます。この作業には {{Pkg|nm-connection-editor}} などを使うことができます。&lt;br /&gt;
&lt;br /&gt;
=== Wi-Fi バックエンドとして iwd を使用する ===&lt;br /&gt;
&lt;br /&gt;
{{Note|1=&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
* {{ic|iwd.service}} を有効化したり、[[iwd]] を手動で構成したりしないでください。NetworkManager は自身で iwd を開始し、管理します。&lt;br /&gt;
* &#039;&#039;iwd&#039;&#039; に切り替える前に、[https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues?scope=all&amp;amp;utf8=%E2%9C%93&amp;amp;state=opened&amp;amp;search=iwd 既知の問題]を考慮してください。}}&lt;br /&gt;
&lt;br /&gt;
[https://archive.kernel.org/oldwiki/iwd.wiki.kernel.org/networkmanager.html 実験的な iwd バックエンド]を有効化するには、{{Pkg|iwd}} を[[インストール]]してから、以下の設定ファイルを作成してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/wifi_backend.conf|2=&lt;br /&gt;
[device]&lt;br /&gt;
wifi.backend=iwd&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
または、{{AUR|networkmanager-iwd}} をインストールすることもできます。これは、&#039;&#039;iwd&#039;&#039; のみで動作する &#039;&#039;NetworkManager&#039;&#039; をビルドするように設定された修正パッケージです。主な違いは、&#039;&#039;iwd&#039;&#039; が必要であり、&#039;&#039;wpa_supplicant&#039;&#039; はビルド後にアンインストールできることです。&lt;br /&gt;
&lt;br /&gt;
{{Note|1=&#039;&#039;iwd&#039;&#039; に切り替えた後、[https://archive.kernel.org/oldwiki/iwd.wiki.kernel.org/networkmanager.html#converting_network_profiles 既存の NetworkManager ネットワークプロファイルを変換する]必要がある場合があります。}}&lt;br /&gt;
&lt;br /&gt;
=== ネットワーク名前空間内で実行する ===&lt;br /&gt;
&lt;br /&gt;
ネットワーク名前空間内で NetworkManager を実行する場合 (たとえば、選択したアプリケーションで使用する必要がある特定のデバイスを管理する場合)、その名前空間に移動させる前にデバイスを落としてください:&lt;br /&gt;
&lt;br /&gt;
 $ ip link set dev &#039;&#039;MY_DEVICE&#039;&#039; down&lt;br /&gt;
 $ ip link set dev &#039;&#039;MY_DEVICE&#039;&#039; netns &#039;&#039;MY_NAMESPACE&#039;&#039;&lt;br /&gt;
 $ ip netns exec &#039;&#039;MY_NAMESPACE&#039;&#039; NetworkManager&lt;br /&gt;
 ...&lt;br /&gt;
 $ ip netns exec &#039;&#039;MY_NAMESPACE&#039;&#039; killall NetworkManager&lt;br /&gt;
&lt;br /&gt;
そうしないと、NetworkManager は後で {{ic|device is strictly unmanaged}} エラーにより接続の確立に失敗します。&lt;br /&gt;
&lt;br /&gt;
=== VPN に自動的に接続する ===&lt;br /&gt;
&lt;br /&gt;
NetworkManager は、インターネットへの接続時に VPN に自動的に接続するように (ネットワーク毎に) 設定できます。VPN 接続自体は、GNOME の NetworkManager フロントエンドで追加できますが、VPN を自動的に使用するようにするには、{{ic|nmcli}} を使用しなければなりません。他のフロントエンドにはこの制限はない場合があります。&lt;br /&gt;
&lt;br /&gt;
まず、対象の VPN が全ユーザで利用可能であることを確認してください。GNOME では、{{ic|details}} タブ内のあるボックスにチェックを入れれば良いです。{{ic|Identity}} タブのパスワード入力欄内の右側にあるアイコンをクリックし、{{ic|Store the password for all users}} を選択してください。&lt;br /&gt;
&lt;br /&gt;
そして、VPN 接続の UUID を見つけ、インターネット接続の {{ic|connection.secondaries}} にその UUID を追加してください:&lt;br /&gt;
&lt;br /&gt;
 # UUID=$(nmcli --get-values connection.uuid connection show &#039;&#039;VPN接続の名前&#039;&#039;)&lt;br /&gt;
 # nmcli connection modify &#039;&#039;インターネット接続の名前&#039;&#039; connection.secondaries &amp;quot;$UUID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
NetworkManager を再起動して、設定したインターネット接続に接続したら、自動的に VPN に接続されるようになっているはずです。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== セキュアな Wi-Fi ネットワークのパスワードプロンプトが表示されない ===&lt;br /&gt;
&lt;br /&gt;
セキュアな Wi-Fi ネットワークに接続しようとすると、パスワードのプロンプトが表示されず、接続が確立されません。これは、キーリングのパッケージがインストールされていない時に起こります。簡単な解決法は、{{Pkg|gnome-keyring}} をインストールすることです。パスワードを暗号化して保存したい場合は、[[GNOME Keyring]] に書かれてある指示に従い、&#039;&#039;gnome-keyring-daemon&#039;&#039; をセットアップしてください。&lt;br /&gt;
&lt;br /&gt;
=== Network management disabled ===&lt;br /&gt;
&lt;br /&gt;
時々、NetworkManager を終了したときに pid (state) ファイルが削除されずに {{ic|Network management disabled}} というメッセージが表示されることがあります。これが発生した場合は、そのファイルを手動で削除してください:&lt;br /&gt;
&lt;br /&gt;
 # rm /var/lib/NetworkManager/NetworkManager.state&lt;br /&gt;
&lt;br /&gt;
=== 内蔵 DHCP クライアントに関する問題 ===&lt;br /&gt;
&lt;br /&gt;
内臓の DHCP クライアントを使用すると IP アドレスの取得に問題が発生する場合、他の DHCP クライアントを使用することを検討してください (手順は [[#DHCP クライアント]] を見てください)。この回避策は、eduroam などの巨大なワイヤレスネットワークにおける問題を解決するかもしれません。&lt;br /&gt;
&lt;br /&gt;
=== dhclient における DHCP の問題 ===&lt;br /&gt;
&lt;br /&gt;
DHCP での IP アドレス取得に問題が発生する場合、以下を {{ic|/etc/dhclient.conf}} に追加してみてください:&lt;br /&gt;
&lt;br /&gt;
  interface &amp;quot;eth0&amp;quot; {&lt;br /&gt;
    send dhcp-client-identifier 01:&#039;&#039;aa:bb:cc:dd:ee:ff&#039;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;aa:bb:cc:dd:ee:ff&#039;&#039;}} は NIC の MAC アドレスです。この MAC アドレスは {{Pkg|iproute2}} パッケージの {{ic|ip link show &#039;&#039;インターフェイス&#039;&#039;}} コマンドを使って確認できます。&lt;br /&gt;
&lt;br /&gt;
=== 3G モデムが検知されない ===&lt;br /&gt;
&lt;br /&gt;
[[USB 3G モデム#NetworkManager]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== ノートパソコンで WLAN をオフにする ===&lt;br /&gt;
&lt;br /&gt;
時々、ノートパソコンに付いているスイッチを使って Wi-Fi アダプタを無効化し、再び有効化しようとすると NetworkManager が機能しなくなることがあります。これは、しばしば &#039;&#039;rfkill&#039;&#039; の問題であることがあります。ドライバが &#039;&#039;rfkill&#039;&#039; にワイヤレスアダプタの状態について通知しているかどうか確認するには、以下のコマンドを使ってください:&lt;br /&gt;
&lt;br /&gt;
 $ watch -n1 rfkill list all&lt;br /&gt;
&lt;br /&gt;
アダプタを切り替えた後にどれかの識別子がブロックされたままになる場合、手動でアンロックしてみることができます (X の部分は、上記のコマンドで得られた識別子の番号です):&lt;br /&gt;
&lt;br /&gt;
 # rfkill event unblock X&lt;br /&gt;
&lt;br /&gt;
=== 固定 IP アドレスの設定が DHCP に戻る ===&lt;br /&gt;
&lt;br /&gt;
とある未解決のバグにより、デフォルトの接続を固定 IP アドレスに変更すると、{{ic|nm-applet}} が設定の変更を適切に保存せずに、自動 DHCP に戻ってしまいます。&lt;br /&gt;
&lt;br /&gt;
この問題を回避するには、{{ic|nm-applet}} でデフォルトの設定 (例: &amp;quot;Auto eth0&amp;quot;) を編集し、接続名を変更 (例: &amp;quot;my eth0&amp;quot;) し、&amp;quot;Available to all users&amp;quot; チェックボックスのチェックを外し、固定 IP アドレスの設定を好きに変更し、&#039;&#039;&#039;Apply&#039;&#039;&#039; をクリックしてください。これで、指定した名前で新しい接続が保存されます。&lt;br /&gt;
&lt;br /&gt;
そうしたら、デフォルトの接続に自動的に接続しないようにしたいと思うでしょう。そうするには、まず {{ic|nm-connection-editor}} を実行してください (root としてでは&#039;&#039;&#039;ありません&#039;&#039;&#039;)。接続エディタで、デフォルトの接続 (例: &amp;quot;Auto eth0&amp;quot;) を編集し、&amp;quot;Connect automatically&amp;quot; のチェックを外してください。&#039;&#039;&#039;Apply&#039;&#039;&#039; をクリックし、接続エディタを閉じてください。&lt;br /&gt;
&lt;br /&gt;
=== 通常ユーザとして接続を編集できない ===&lt;br /&gt;
&lt;br /&gt;
[[#PolicyKit のパーミッションをセットアップする]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 隠されたワイヤレスネットワークを削除する ===&lt;br /&gt;
&lt;br /&gt;
隠されたネットワークはワイヤレスの選択リストに表示されないので、GUI から削除することができません。以下のコマンドでそのようなネットワークを削除できます:&lt;br /&gt;
&lt;br /&gt;
 # rm /etc/NetworkManager/system-connections/&#039;&#039;SSID&#039;&#039;.nmconnection&lt;br /&gt;
&lt;br /&gt;
これは、他の接続でも使えます。&lt;br /&gt;
&lt;br /&gt;
=== VPN が GNOME で動作しない ===&lt;br /&gt;
&lt;br /&gt;
GNOME を使用している時に NetworkManager で OpenConnect や vpnc の接続をセットアップすると、ダイアログボックスが表示されず、以下のエラーが {{ic|/var/log/errors.log}} に現れることがあります:&lt;br /&gt;
&lt;br /&gt;
 localhost NetworkManager[399]: &amp;lt;error&amp;gt; [1361719690.10506] [nm-vpn-connection.c:1405] get_secrets_cb(): Failed to request VPN secrets #3: (6) No agents were available for this request.&lt;br /&gt;
&lt;br /&gt;
これは、GNOME NetworkManager Applet が、ダイアログスクリプトが {{ic|/usr/lib/gnome-shell}} にあると想定していることが原因です (NetworkManager のパッケージはダイアログスクリプトを {{ic|/usr/lib/networkmanager}} 内に置きます)。&amp;quot;一時的な&amp;quot; 修正として (このバグはしばらく前から存在しています)、以下のシンボリックリンクを作成してください:&lt;br /&gt;
&lt;br /&gt;
* OpenConnect の場合: {{ic|ln -s /usr/lib/nm-openconnect-auth-dialog /usr/lib/gnome-shell/}}&lt;br /&gt;
* VPNC (つまり Cisco VPN) の場合: {{ic|ln -s /usr/lib/nm-vpnc-auth-dialog /usr/lib/gnome-shell/}}&lt;br /&gt;
&lt;br /&gt;
これは、他の NetworkManager VPN プラグインでも行う必要がある場合がありますが、上記が最も一般的です。&lt;br /&gt;
&lt;br /&gt;
=== 検出されてはいるのにヨーロッパのワイヤレスネットワークに接続できない ===&lt;br /&gt;
&lt;br /&gt;
WLAN チップにはデフォルトの[[ネットワーク設定/ワイヤレス#規制範囲に従う|規制範囲]]が設定されています。アクセスポイントがその規制内で動作しない場合、そのネットワークに接続することはできません。これは簡単に解決できます:&lt;br /&gt;
&lt;br /&gt;
# {{Pkg|wireless-regdb}} を[[インストール]]してください。&lt;br /&gt;
# {{ic|/etc/conf.d/wireless-regdom}} で適切な国名コードをアンコメントしてください。&lt;br /&gt;
# システムを再起動してください。この設定はブート時にしか読み込まれないからです。&lt;br /&gt;
&lt;br /&gt;
=== ブート時の VPN への自動接続が機能しない ===&lt;br /&gt;
&lt;br /&gt;
この問題は、システム (つまり、root ユーザとして動作している NetworkManager) が VPN 接続を確立しようと試みたが、パスワードが特定のユーザの GNOME Keyring 内に保存されているためにアクセスできなかった場合に発生します。&lt;br /&gt;
&lt;br /&gt;
解決策は、[[#ディスパッチャを使って、ネットワーク接続が確立された後に VPN に接続する]] の手順 2 で説明されている通りに、VPN のパスワードを平文で保存することです。&lt;br /&gt;
&lt;br /&gt;
{{ic|nm-applet}} GUI で新しい &amp;quot;auto-connect VPN&amp;quot; オプションを使用している場合は、自動接続するために 手順 1 で説明されているディスパッチャを使用する必要はありません。&lt;br /&gt;
&lt;br /&gt;
=== systemd のボトルネック ===&lt;br /&gt;
&lt;br /&gt;
時が立つにつれてログファイル ({{ic|/var/log/journal}}) が膨大になってしまうことがあります。そうすると NetworkManager を使う場合にブートパフォーマンスに大きな影響を与えます。参照: [[systemd#少しづつ起動時間が長くなっている]]。&lt;br /&gt;
&lt;br /&gt;
=== 定期的なネットワーク接続断、遅延、パケットロス (Wi-Fi) ===&lt;br /&gt;
&lt;br /&gt;
NetworkManager は2分ごとにスキャンを行います。&lt;br /&gt;
&lt;br /&gt;
一部の Wi-Fi ドライバは、接続/アソシエーション中にベースステーションのスキャンを行うと問題が発生します。症状としては、VPN 接続断/再接続、パケットロス、ウェブページのロードに失敗してリフレッシュすると良くなるなどがあります。&lt;br /&gt;
&lt;br /&gt;
{{ic|journalctl -f}} を root として実行すると、スキャンが行われていることがわかります。以下のようなメッセージが定期的にログに現れます:&lt;br /&gt;
&lt;br /&gt;
 NetworkManager[410]: &amp;lt;info&amp;gt;  (wlp3s0): roamed from BSSID 00:14:48:11:20:CF (my-wifi-name) to (none) ((none))&lt;br /&gt;
&lt;br /&gt;
ローミングが重要でないならば、Wi-Fi 接続プロファイルでアクセスポイントの BSSID をロックすることにより、定期的なスキャンの挙動を無効化することができます。&lt;br /&gt;
&lt;br /&gt;
=== Lenovo ラップトップ (IdeaPad、Legion など) で Wi-Fi をオンにできない ===&lt;br /&gt;
&lt;br /&gt;
これは、Wi-Fi ドライバがソフトブロックを誤って報告することによる、一部の Lenovo モデルにおける {{ic|ideapad_laptop}} モジュールの問題です。カードは依然として {{ic|netctl}} で操作できますが、NetworkManager などのマネージャーは機能しません。この問題が発生しているかどうかを確認するには、ハードウェアのスイッチをオンオフしたあとで {{ic|rfkill list}} の出力を確認し、ソフトブロックされ続けるかどうか確認してください。&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|rfkill の問題を解決するには、{{ic|rfkill.default_state}} と {{ic|rfkill.master_switch_mode}} を使用してみてください ([https://docs.kernel.org/admin-guide/kernel-parameters.html kernel-parameters.html] を参照))。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|ideapad_laptop}} モジュールを[[modprobe|アンロード]]すれば、この問題は解決するはずです。(&#039;&#039;&#039;警告&#039;&#039;&#039;: これにより、ラップトップのキーボードとタッチパッドも無効になる可能性があります!)&lt;br /&gt;
&lt;br /&gt;
=== nm-applet が i3wm で消える ===&lt;br /&gt;
&lt;br /&gt;
通知に {{ic|xfce4-notifyd.service}} を使用する場合は、そのユニットを[[編集]]して、以下を追加する必要があります:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/user/xfce4-notifyd.service.d/display_env.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
Environment=&amp;quot;DISPLAY=:0.0&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
デーモンをロードし直したら、{{ic|xfce4-notifyd.service}} を[[再起動]]してください。i3 を終了し、再び起動すると、アプレットがトレイに表示されているはずです。&lt;br /&gt;
&lt;br /&gt;
=== Unit dbus-org.freedesktop.resolve1.service not found ===&lt;br /&gt;
&lt;br /&gt;
{{ic|systemd-resolved.service}} が開始されていない場合、NetworkManager は D-Bus を使用して開始しようとし、失敗します:&lt;br /&gt;
&lt;br /&gt;
 dbus-daemon[991]: [system] Activating via systemd: service name=&#039;org.freedesktop.resolve1&#039; unit=&#039;dbus-org.freedesktop.resolve1.service&#039; requested by &#039;:1.23&#039; (uid=0 pid=1012 comm=&amp;quot;/usr/bin/NetworkManager --no-daemon &amp;quot;)&lt;br /&gt;
 dbus-daemon[991]: [system] Activation via systemd failed for unit &#039;dbus-org.freedesktop.resolve1.service&#039;: Unit dbus-org.freedesktop.resolve1.service not found.&lt;br /&gt;
 dbus-daemon[991]: [system] Activating via systemd: service name=&#039;org.freedesktop.resolve1&#039; unit=&#039;dbus-org.freedesktop.resolve1.service&#039; requested by &#039;:1.23&#039; (uid=0 pid=1012 comm=&amp;quot;/usr/bin/NetworkManager --no-daemon &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
これは、NetworkManager が {{man|5|NetworkManager.conf}} の {{ic|1=main.dns=}} 設定に関係なく、DNS 情報を [[systemd-resolved]] に送信しようとするためです。[https://gitlab.freedesktop.org/NetworkManager/NetworkManager/commit/d4eb4cb45f41b1751cacf71da558bf8f0988f383]&lt;br /&gt;
&lt;br /&gt;
これは、{{ic|/etc/NetworkManager/conf.d/}} 内の設定ファイルで無効にできます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/no-systemd-resolved.conf|2=&lt;br /&gt;
[main]&lt;br /&gt;
systemd-resolved=false&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Bug|62138}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== Secrets were required, but not provided ===&lt;br /&gt;
&lt;br /&gt;
ネットワークに接続しようとして以下のエラーが発生する場合:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ nmcli device wifi connect &#039;&#039;SSID&#039;&#039; password &#039;&#039;パスワード&#039;&#039;|&lt;br /&gt;
Error: Connection activation failed: (7) Secrets were required, but not provided&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
このエラーの原因となりうるものはたくさんあり、[[journal]] を読む必要があります ({{ic|-u NetworkManager}} で出力をフィルタしてください)。例えば、接続の確立に時間がかかりすぎると、NetworkManager はパスワードが正しくなかったと結論づけます:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
NetworkManager[1372]: &amp;lt;warn&amp;gt;  [1643991888.3808] device (wlan0): Activation: (wifi) association took too long&lt;br /&gt;
NetworkManager[1372]: &amp;lt;info&amp;gt;  [1643991888.3809] device (wlan0): state change: config -&amp;gt; need-auth (reason &#039;none&#039;, sys-iface-state: &#039;managed&#039;)&lt;br /&gt;
NetworkManager[1372]: &amp;lt;warn&amp;gt;  [1643991888.3838] device (wlan0): Activation: (wifi) asking for new secrets&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
接続プロファイルを削除し、新しいプロファイルを作成してみてください:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection delete &#039;&#039;SSID&#039;&#039;&lt;br /&gt;
 $ nmcli device wifi connect &#039;&#039;SSID&#039;&#039; password &#039;&#039;パスワード&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
また、MAC アドレスランダム化を無効化してみるのも良いでしょう:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/NetworkManager/conf.d/wifi_rand_mac.conf|2=&lt;br /&gt;
[device]&lt;br /&gt;
wifi.scan-rand-mac-address=no&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== iwd での WPA Enterprise 接続 ===&lt;br /&gt;
&lt;br /&gt;
[[#Wi-Fi バックエンドとして iwd を使用する|iwd バックエンド]]と NetworkManager で &#039;eduroam&#039; などの WPA Enterprise ネットワークに接続しようとした際に、NetworkManager sで以下のエラーが発生します:&lt;br /&gt;
&lt;br /&gt;
  Connection &#039;eduroam&#039; is not avialable on device wlan0 because profile is not compatible with device (802.1x connections must have IWD provisioning files)&lt;br /&gt;
&lt;br /&gt;
NetworkManager は WPA Enterprise ネットワークを設定できないことが原因です。なので、[[iwd#WPA Enterprise]] で説明されているように iwd の設定ファイル {{ic|/var/lib/iwd/&#039;&#039;essid&#039;&#039;.8021x}} を使って設定する必要があります。&lt;br /&gt;
&lt;br /&gt;
=== Failed to request VPN secrets ===&lt;br /&gt;
&lt;br /&gt;
以下のエラーが発生する場合:&lt;br /&gt;
&lt;br /&gt;
 Failed to request VPN secrets #1: No agents were available for this request.&lt;br /&gt;
&lt;br /&gt;
パスワードが空であるか、[[#PolicyKit のパーミッションをセットアップする|PolicyKit のパーミッションをセットアップする]]必要があるかのどちらかです。&lt;br /&gt;
&lt;br /&gt;
=== OpenVPN 接続が &amp;quot;secrets: failed to request VPN secrets&amp;quot; という警告で失敗する ===&lt;br /&gt;
&lt;br /&gt;
GNOME-Shell と統合させる場合、{{Pkg|networkmanager-openvpn}} パッケージは {{Pkg|libnma-gtk4}} と任意で {{Pkg|libnma}} (Gtk3) も必要とします。{{Pkg|libnma}} が必要であるが、インストールされていない場合、以下のようなメッセージがログに出力されます:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
NetworkManager[642]: &amp;lt;warn&amp;gt;  [...] vpn[...&amp;quot;name_of_vpn_profile VPN&amp;quot;]: secrets: failed to request VPN secrets #3: No agents were available for this request.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== OpenSSL の &amp;quot;ca md too weak&amp;quot; エラーで OpenVPN の接続に失敗する ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|openssl}} がバージョン3に更新されたため、レガシーな暗号化アルゴリズムで生成された証明書はデフォルトで拒否されます。このような設定で {{Pkg|networkmanager-openvpn}} を使用しようとすると、ログに次のエラーが記録される可能性があります:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
nm-openvpn[14359]: OpenSSL: error:0A00018E:SSL routines::ca md too weak&lt;br /&gt;
nm-openvpn[14359]: Cannot load certificate file /home/archie/.local/share/networkmanagement/certificates/my_issued_cert.crt&lt;br /&gt;
nm-openvpn[14359]: Exiting due to fatal error&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
正しいアプローチは、OpenVPN サーバの管理者に、より安全な証明書を生成して再発行してもらうことです。ただし、当面の回避策として、OpenVPN には {{ic|1=tls-cipher &amp;quot;DEFAULT:@SECLEVEL=0&amp;quot;}} が必要です。この設定は、プラグイン GUI からでは無理かもしれませんが、&#039;&#039;nmcli&#039;&#039; からなら可能です。これとは別に、OpenSSL で&#039;&#039;レガシー&#039;&#039;なプロバイダを有効化する必要もあります。&lt;br /&gt;
&lt;br /&gt;
まず、以下のコマンドの出力から、問題のある VPN 接続の名前を取得してください:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection show&lt;br /&gt;
&lt;br /&gt;
接続の名前は &#039;&#039;vpn.example.com&#039;&#039; であると仮定します。以下のように &#039;&#039;nmcli&#039;&#039; を使ってください:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection modify vpn.example.com +vpn.data tls-cipher=DEFAULT:@SECLEVEL=0&lt;br /&gt;
&lt;br /&gt;
変更は即座に {{ic|/etc/NetworkManager/system-connections/vpn.example.com.nmconnection}} に反映されるはずです。&lt;br /&gt;
&lt;br /&gt;
OpenSSL に関しては、[https://wiki.openssl.org/index.php/OpenSSL_3.0#Providers OpenSSL wiki] で説明されている通りに {{ic|/etc/ssl/openssl.cnf}} を編集してください。&lt;br /&gt;
&lt;br /&gt;
具体的には、{{ic|[provider_sect]}} セクションの最後に {{ic|1=legacy = legacy_sect}} を追加してください。{{ic|[default_sect]}} で {{ic|1=activate = 1}} のコメントを外してください。最後に、{{ic|1=activate = 1}} という行も含む新しいセクション {{ic|[legacy_sect]}} を追加してください。他のほとんどの既存の構成セクションを除外すると、最終結果は次のようになります:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssl/openssl.cnf|2=&lt;br /&gt;
openssl_conf = openssl_init&lt;br /&gt;
&lt;br /&gt;
[openssl_init]&lt;br /&gt;
providers = provider_sect&lt;br /&gt;
&lt;br /&gt;
[provider_sect]&lt;br /&gt;
default = default_sect&lt;br /&gt;
legacy = legacy_sect&lt;br /&gt;
&lt;br /&gt;
[default_sect]&lt;br /&gt;
activate = 1&lt;br /&gt;
&lt;br /&gt;
[legacy_sect]&lt;br /&gt;
activate = 1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
最後に、{{ic|NetworkManager.service}} を[[再起動]]して、新しい OpenSSL 設定を有効化してください。&lt;br /&gt;
&lt;br /&gt;
=== OpenSSL の &amp;quot;unsupported protocol&amp;quot; エラーで WPA Enterprise の接続の認証に失敗する ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|openssl}} がバージョン 3 に更新されたため、[https://www.openssl.org/news/openssl-3.0-notes.html デフォルトで] SSL 3、TLS 1.0、TLS 1.1、そして DTLS 1.0 はセキュリティレベル 0 でのみ動作するようになりました。それよりも古い標準しかサポートしていない Wi-Fi ネットワークでの認証は、ログに以下のエラーを吐いて失敗します:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
wpa_supplicant[3320]: SSL: SSL3 alert: write (local SSL3 detected an error):fatal:protocol version&lt;br /&gt;
wpa_supplicant[3320]: OpenSSL: openssl_handshake - SSL_connect error:0A000102:SSL routines::unsupported protocol&lt;br /&gt;
wpa_supplicant[3320]: wlp3s0: CTRL-EVENT-EAP-FAILURE EAP authentication failed&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
正しい方法は、設備の管理者を説得して、暗号化されたネットワークトンネルのプロトコルを TLS 1.3 にアップグレードし、任意で TLS 1.0/1.1、DTLS 1.0、SSL 1-3 を含む非推奨となっているセキュリティ標準のサポートを落としてもらうことです。しかし、当面の回避策として、TLS 1.0 や 1.1 をデフォルトで許可する方法は複数あります。一つは、手動で OpenSSL にパッチを当てるか、破壊的な変更をもとに戻すことです ([https://github.com/openssl/openssl/commit/7bf2e4d7f0c7ae19b7a8c416910886a7171e9820])。これは、OpenSSL レベル 1 を使用する他の全てのプログラムのセキュリティも低下してしまうため、推奨されません。代わりに、([https://bbs.archlinux.org/viewtopic.php?id=286417#p2104492 BBS#286417] で説明されているように) wpa_supplicant によって使用されるレベルを直接設定することができます。問題のある接続設定ファイルの {{ic|1=[802-1x]}} セクションで {{ic|1=phase1-auth-flags=32}} または {{ic|1=phase1-auth-flags=64}} を設定することで、その接続のみを変更できます。これは GUI からは無理かもしれませんが、&#039;&#039;nmcli&#039;&#039; でなら可能です。&lt;br /&gt;
&lt;br /&gt;
まず、以下のコマンドの出力から、問題のある Wi-Fi 接続の名前を手に入れてください:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection show&lt;br /&gt;
&lt;br /&gt;
この接続では TLS 1.0 が使用され、接続名は &#039;&#039;Example Wi-Fi&#039;&#039; であるとします。以下のように &#039;&#039;nmcli&#039;&#039; を使用してください:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection modify &#039;Example Wi-Fi&#039; 802-1x.phase1-auth-flags 32&lt;br /&gt;
&lt;br /&gt;
TLS 1.1 接続に対しては、代わりに &amp;quot;64&amp;quot; を使用してください:&lt;br /&gt;
&lt;br /&gt;
 $ nmcli connection modify &#039;Example Wi-Fi&#039; 802-1x.phase1-auth-flags 64&lt;br /&gt;
&lt;br /&gt;
{{Note|1=ここで入力した数字は、2 の &#039;&#039;&#039;n&#039;&#039;&#039; 乗です。ただし、&#039;&#039;&#039;n&#039;&#039;&#039; はネットワーク認証ビットオクテットのインデックス (右から左に数えます) です。5番目のビットを1にすると TLS 1.0 が有効になり (&#039;&#039;&#039;[log(2) 32]&#039;&#039;&#039;)、6番目のビットを1にすると TLS 1.1 が有効になります (&#039;&#039;&#039;[log(2) 64]&#039;&#039;&#039;)。}}&lt;br /&gt;
&lt;br /&gt;
変更は即座に {{ic|/etc/NetworkManager/system-connections/Example Wi-Fi.nmconnection}} に反映されるはずです。&lt;br /&gt;
&lt;br /&gt;
最後に、{{ic|NetworkManager.service}} を[[再起動]]して、新しい OpenSSL の設定を有効化してください。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://blogs.gnome.org/dcbw/2015/02/16/networkmanager-for-administrators-part-1/ NetworkManager for Administrators Part 1]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|NetworkManager|2026-05-04|872001}}&lt;/div&gt;</summary>
		<author><name>Relz</name></author>
	</entry>
</feed>