「ConnMan」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
23行目: 23行目:
 
* {{App|ConnMan-UI|GTK3 クライアントアプレット。|https://github.com/tbursztyka/connman-ui|{{AUR|connman-ui-git}}}}
 
* {{App|ConnMan-UI|GTK3 クライアントアプレット。|https://github.com/tbursztyka/connman-ui|{{AUR|connman-ui-git}}}}
 
* {{App|connman_dmenu|dmenu 用のクライアント/フロントエンド。|https://github.com/taylorchu/connman_dmenu|{{AUR|connman_dmenu-git}}}}
 
* {{App|connman_dmenu|dmenu 用のクライアント/フロントエンド。|https://github.com/taylorchu/connman_dmenu|{{AUR|connman_dmenu-git}}}}
* {{App|EConnman|Enlightenment デスクトップパネルアプレット。|http://www.enlightenment.org|{{AUR|econnman}}}}
+
* {{App|Econnman|Enlightenment デスクトップパネルアプレット。|http://www.enlightenment.org|{{AUR|econnman}}}}
* {{App|LXQT-Connman-Applet|LXQT デスクトップパネルアプレット。|https://github.com/surlykke/lxqt-connman-applet|{{AUR|lxqt-connman-applet-git}}}}
+
* {{App|LXQt-Connman-Applet|LXQt デスクトップパネルアプレット。|https://github.com/surlykke/lxqt-connman-applet|{{AUR|lxqt-connman-applet-git}}}}
 
* {{App|qconnman-ui|O.S. Systems で使われている Qt 管理インターフェイス。|https://github.com/OSSystems/qconnman-ui|{{AUR|qconnman-ui-git}}}}
 
* {{App|qconnman-ui|O.S. Systems で使われている Qt 管理インターフェイス。|https://github.com/OSSystems/qconnman-ui|{{AUR|qconnman-ui-git}}}}
  +
* {{App|connman-gtk|GTK クライアント。|https://github.com/jgke/connman-gtk|{{AUR|connman-gtk}}}}
  +
* {{App|gnome-extension-connman|Connman の Gnome3 拡張。|https://github.com/jgke/gnome-extension-connman|https://extensions.gnome.org/extension/981/connman-extension/}}
   
  +
gnome-extension-connman: connman-gtk をインストールしない場合、一部の機能だけが使えます。
現在 GTK クライアントは 100% 安定してるという状態ではありませんが、日常的に使う分には問題ありません。使用するにはスタートアップファイルに {{ic|connman-ui-gtk}} を追加してください (例えば Openbox の場合 {{ic|autostart}})。
 
   
 
connman-ncurses: 実装されている connman の機能は一部に限られていますが、使えないわけではありません (X がない CUI 環境でも使えます)。[https://github.com/eurogiciel-oss/connman-json-client/wiki wiki] を参照。
 
connman-ncurses: 実装されている connman の機能は一部に限られていますが、使えないわけではありません (X がない CUI 環境でも使えます)。[https://github.com/eurogiciel-oss/connman-json-client/wiki wiki] を参照。
43行目: 45行目:
 
=== Wi-Fi ===
 
=== Wi-Fi ===
   
  +
{{Note|{{ic|ip link show up}} の Wi-Fi デバイスが出力されることを確認してください。出力されない場合、デバイスの電源が落ちています。ノートパソコンの場合 {{ic|Fn}} キーを使って電源を入れてください。もしくは、{{ic|connmanctl enable wifi}} を実行する必要があるかもしれません。}}
{{Note|Make sure the Wi-Fi device is listed in the output of {{ic|ip link show up}}. If it is not listed that means it is not powered on. Use {{ic|Fn}} keys on the laptop to turn it on. You may need to run {{ic|connmanctl enable wifi}}.}}
 
   
 
==== オープンなアクセスポイントに接続 ====
 
==== オープンなアクセスポイントに接続 ====
49行目: 51行目:
 
このセクションでは {{ic|connmanctl}} をコマンドモードで実行する方法を説明しています。
 
このセクションでは {{ic|connmanctl}} をコマンドモードで実行する方法を説明しています。
   
  +
ネットワークをスキャンするとき、{{ic|connmanctl}} は ''technologies'' と呼ばれるシンプルな名前を受け取ります。近辺の Wi-Fi ネットワークをスキャンするには:
To scan the network {{ic|connmanctl}} accepts simple names called ''technologies''. To scan for nearby Wi-Fi networks:
 
   
 
$ connmanctl scan wifi
 
$ connmanctl scan wifi
   
  +
スキャンを実行した後に、利用可能なネットワークを確認するには (出力例):
To list the available networks found after a scan run (example output):
 
   
 
{{hc|$ connmanctl services|
 
{{hc|$ connmanctl services|
63行目: 65行目:
 
}}
 
}}
   
  +
オープンなネットワークに接続するには、2番目のフィールドに '''wifi_''' から始まる文字列を指定します:
To connect to an open network, use the second field beginning with '''wifi_''':
 
   
 
$ connmanctl connect wifi_dc85de828967_4d6568657272696e_managed_none
 
$ connmanctl connect wifi_dc85de828967_4d6568657272696e_managed_none
   
You should now be connected to the network. Check using {{ic|ip addr}} or {{ic|connmanctl state}}.
+
これでネットワークに接続されるはずです。{{ic|ip addr}} {{ic|connmanctl state}} で確認してください。
   
 
==== 保護されたアクセスポイントに接続 ====
 
==== 保護されたアクセスポイントに接続 ====
   
  +
パスワードで保護されたアクセスポイントを使う場合、ConnMan デーモンに情報 (パスワードやパスフレーズ) を渡す必要があります。
For protected access points you will need to provide some information to the ConnMan daemon, at the very least a password or a passphrase.
 
   
  +
このセクションのコマンドを使うときは {{ic|connmanctl}} をインタラクティブモードで実行します。{{ic|agent}} コマンドを使用するにはインタラクティブモードが必須です。インタラクティブモードを起動するには次を入力:
The commands in this section show how to run {{ic|connmanctl}} in interactive mode, it is required for running the {{ic|agent}} command. To start interactive mode simply type:
 
   
 
$ connmanctl
 
$ connmanctl
   
  +
オープンなアクセスポイントと同じように設定を進めます。まずは Wi-Fi の ''technologies'' をスキャン:
You then proceed almost as above, first scan for any Wi-Fi ''technologies'':
 
   
 
connmanctl> scan wifi
 
connmanctl> scan wifi
   
  +
サービスを確認:
To list services:
 
   
 
connmanctl> services
 
connmanctl> services
   
  +
エージェントを登録してユーザーのリクエストを処理する必要があります。コマンドは:
Now you need to register the agent to handle user requests. The command is:
 
   
 
connmanctl> agent on
 
connmanctl> agent on
   
  +
それから保護されたサービスに接続します。カットアンドペーストを使えるターミナルなら簡単に接続できます。例えば、上の例にある OtherNET に接続する場合、以下を実行:
You now need to connect to one of the protected services. To do this it is very handy to have a terminal that allows
 
cut and paste. If you were connecting to OtherNET in the example above you would type:
 
   
 
connmanctl> connect wifi_dc85de828967_38303944616e69656c73_managed_psk
 
connmanctl> connect wifi_dc85de828967_38303944616e69656c73_managed_psk
   
  +
エージェントは接続を確立するのに必要な情報を要求します。接続するネットワークのタイプによって、要求される情報は大きく変わってきます。また、エージェントが必要とする情報に関するデータが以下のように出力されます:
The agent will then ask you to provide any information the daemon needs to complete the connection. The
 
information requested will vary depending on the type of network you are connecting to. The agent
 
will also print additional data about the information it needs as shown in the example below.
 
   
 
Agent RequestInput wifi_dc85de828967_38303944616e69656c73_managed_psk
 
Agent RequestInput wifi_dc85de828967_38303944616e69656c73_managed_psk
102行目: 101行目:
 
Passphrase?
 
Passphrase?
   
  +
要求されている情報 (上の例の場合はパスフレーズ) を入力してから、次を実行:
Provide the information requested, in this example the passphrase, and then type:
 
   
 
connmanctl> quit
 
connmanctl> quit
   
  +
入力した情報が正しければ、保護されたアクセスポイントに接続できているはずです。
If the information you provided is correct you should now be connected to the protected access point.
 
   
 
=== 設定 ===
 
=== 設定 ===
114行目: 113行目:
 
# cat /var/lib/connman/*/settings
 
# cat /var/lib/connman/*/settings
   
{{Note|VPN settings can be found in {{ic|/var/lib/connman-vpn/}}.}}
+
{{Note|VPN の設定は {{ic|/var/lib/connman-vpn/}} にあります。}}
   
 
=== テクノロジー ===
 
=== テクノロジー ===
   
  +
ConnMan は様々なハードウェアインターフェイスを ''Technologies'' と呼びます。
Various hardware interfaces are referred to as ''Technologies'' by ConnMan.
 
   
To list available ''technologies'' run:
+
利用可能な ''technologies'' を確認するには次を実行:
   
 
$ connmanctl technologies
 
$ connmanctl technologies
   
  +
以下のワンライナーを使うことでタイプだけを取得できます:
To get just the types by their name one can use this one liner:
 
   
 
$ connmanctl technologies | awk '/Type/ { print $NF }'
 
$ connmanctl technologies | awk '/Type/ { print $NF }'
   
{{Note| The field {{ic|1=Type = tech_name}} provides the technology type used with {{ic|connmanctl}} commands}}
+
{{Note|{{ic|1=Type = tech_name}} フィールドには {{ic|connmanctl}} コマンドで使用するテクノロジーのタイプが記されています。}}
   
  +
テクノロジーを使用するときはタイプでテクノロジーを指定する必要があります。''Technologies'' は次のコマンドでオンオフを切り替えられます:
To interact with them one must refer to the technology by type.
 
''Technologies'' can be toggled on/off with:
 
   
 
$ connmanctl enable ''technology_type''
 
$ connmanctl enable ''technology_type''
   
  +
または:
and:
 
   
 
$ connmanctl disable ''technology_type''
 
$ connmanctl disable ''technology_type''
   
  +
例えば wifi をオフにするには:
For example to toggle off wifi:
 
   
 
$ connmanctl disable wifi
 
$ connmanctl disable wifi
   
{{Warning|connman grabs all rfkill events. It is most likely impossible to use {{ic|rfkill}} or {{ic|bluetoothctl}} to (un)block devices. Always use {{ic|<nowiki>connmanctl enable|disable</nowiki>}} }}
+
{{Warning|connman はあらゆる rfkill イベントを乗っ取ります。{{ic|rfkill}} {{ic|bluetoothctl}} を使ってデバイスをブロック(あるいはブロックを解除)することはできません。{{ic|<nowiki>connmanctl enable|disable</nowiki>}} を使ってください。}}
   
 
== Tips and tricks ==
 
== Tips and tricks ==
   
 
=== ホストネームの変更をしない ===
 
=== ホストネームの変更をしない ===
By default, ConnMan changes the [http://www.freedesktop.org/software/systemd/man/hostnamectl.html transient hostname] on a per network basis. This can create problems with X authority: If ConnMan changes your hostname to something else than the one used to generate the xauth magic cookie, then it will become impossible to create new windows. Symptoms are error messages like "No protocol specified" and "Can't open display: :0.0". Manually resetting the host name fixes this, but a permanent solution is to prevent ConnMan from changing your host name in the first place. This can be accomplished by adding the following to {{ic|/etc/connman/main.conf}}:
+
デフォルトで、ConnMan はネットワークごとに [http://www.freedesktop.org/software/systemd/man/hostnamectl.html transient hostname] を変更します。これによって X authority で問題が生まれてしまうことがあります: ConnMan は変更したホストネームが xauth のマジッククッキーを作成するのに使われた名前と異なる場合、新しいウィンドウを作成することが不可能になります。その場合 "No protocol specified" "Can't open display: :0.0" などのエラーメッセージが表示されます。手動でホストネームを再設定することで解決しますが、恒久的な解決策としては、そもそも ConnMan がホストネームを変更できないようにしてしまうほかありません。{{ic|/etc/connman/main.conf}} に以下を追加してください:
   
 
[General]
 
[General]
155行目: 153行目:
 
このファイルを変更した後は {{ic|connman.service}} を[[再起動]]してください。
 
このファイルを変更した後は {{ic|connman.service}} を[[再起動]]してください。
   
  +
テスト目的の場合、[[systemd#Journal|journal]] を確認しながらネットワークケーブルを何度か接続してみて何が起こるのか確認することを推奨します。
For testing purposes it is recommended to watch the [[systemd#Journal|journal]] and plug the network cable a few times to see the action.
 
   
 
=== ワイヤレスよりもイーサネットを優先する ===
 
=== ワイヤレスよりもイーサネットを優先する ===
  +
デフォルトでは ConnMan はワイヤレスよりもイーサネットを優先することはありません。そのため、イーサネット接続ができるときでも速度が遅い無線ネットワークが使われてしまう可能性があります。{{ic|/etc/connman/main.conf}} に以下を追加することでイーサネットを優先させることができます:
By default ConnMan does not prefer ethernet over wireless, which can lead to it deciding to stick with a slow wireless network even when ethernet is available. You can tell connman to prefer ethernet adding the following to {{ic|/etc/connman/main.conf}}:
 
   
 
[General]
 
[General]
174行目: 172行目:
   
 
=== ローカル DNS サーバーとの衝突を回避する ===
 
=== ローカル DNS サーバーとの衝突を回避する ===
  +
ローカルで DNS サーバーを動かしている場合、Connman をインストールした後にポート 53 (TCP や UDP) を使用しようとすると問題が発生します。Connman に独自の DNS プロキシが含まれいて、ポート 53 を使用しようとするのが原因です。[[BIND]] や [[dnsmasq]] から以下のようなログメッセージが確認できる場合:
If you are running a local DNS server, it will likely have problems binding to port 53 (TCP and/or UDP) after installing Connman. This is because Connman includes its own DNS proxy which also tries to bind to those ports. If you see log messages from [[BIND]] or [[dnsmasq]] like <code>"named[529]: could not listen on UDP socket: address in use"</code>, this could be the problem. (Verify connmand is listening on that port with
 
  +
"named[529]: could not listen on UDP socket: address in use"
<code>netstat -tulpn</code>.)
 
  +
おそらくそれが問題となっています。どのアプリケーションがポートを listen しているか確認したいときは、root で {{ic|ss -tulpn}} を実行してみてください。
   
systemd のサービスファイルを <code>-r</code><code>--nodnsproxy</code> で[[systemd#ユニットファイルの編集|上書き]]することでコマンドを修正することができます。{{ic|/etc/systemd/system/connman.service.d/}} フォルダを作成して {{ic|disable_dns_proxy.conf}} ファイルを追加してください:
+
systemd のサービスファイルのオプション{{ic|-r}}{{ic|--nodnsproxy}} で[[systemd#ユニットファイルの編集|上書き]]することでコマンドを修正することができます。{{ic|/etc/systemd/system/connman.service.d/}} フォルダを作成して {{ic|disable_dns_proxy.conf}} ファイルを追加してください:
   
 
[Service]
 
[Service]
185行目: 184行目:
 
このファイルを追加した後は、systemd デーモンを[[systemd#ユニットを使う|リロード]]してから {{ic|connman.service}} と DNS プロキシを[[再起動]]してください。
 
このファイルを追加した後は、systemd デーモンを[[systemd#ユニットを使う|リロード]]してから {{ic|connman.service}} と DNS プロキシを[[再起動]]してください。
   
=== インターフェイスブラックリスト ===
+
=== インターフェイスブラックリスト ===
  +
[[Docker]] などが仮想インターフェイスを作成する場合、接続が切れたときに Connman は物理的なアダプダではなく仮想インターフェイスで接続を試行してしまう可能性があります。使用させたくないインターフェイスをブラックリストに入れることで簡単に回避することができます。Connman はデフォルトで "vmnet", "vboxnet", "virbr", "ifb" から始まるインターフェイスをブラックリストに指定するので、これらのインターフェイスを設定する必要はありません。
If something like [[Docker]] is creating virtual interfaces Connman may attempt to connect to one of these instead of your physical adapter if the connection drops. A simple way of avoiding this is to blacklist the interfaces you do not want to use. Connman will by default blacklist interfaces starting with "vmnet", "vboxnet", "virbr" and "ifb" so those need to be included as well. If it does not already exist, create {{ic|/etc/connman/main.conf}}:
 
  +
  +
systemd や udev が {{ic|enp4s0}} のような[[ネットワーク設定#デバイス名|予測可能なインターフェイス名]]を使用し始める前に connman が {{ic|eth#}} や {{ic|wlan#}} を使用してしまう係合状態も、インターフェイスの名前をブラックリストに入れることで回避できます。伝統的 (予測不可能) なインターフェイスのプレフィックスをブラックリストに指定することで、名前が変更されるまで connman は接続を待機します。
  +
  +
ブラックリストを指定するには {{ic|/etc/connman/main.conf}} に以下を記述してください:
   
 
[General]
 
[General]
NetworkInterfaceBlacklist=vmnet,vboxnet,virbr,ifb,docker,veth
+
NetworkInterfaceBlacklist=vmnet,vboxnet,virbr,ifb,docker,veth,eth,wlan
   
 
{{ic|connman.service}} を[[systemd#ユニットを使う|再起動]]すると Econnman などの GUI ツールでも "veth#######" インターフェイスが表示されなくなります。
 
{{ic|connman.service}} を[[systemd#ユニットを使う|再起動]]すると Econnman などの GUI ツールでも "veth#######" インターフェイスが表示されなくなります。
195行目: 198行目:
 
== 参照 ==
 
== 参照 ==
   
For further detailed information on ConnMan you may refer to the documentation in its git repo at [https://git.kernel.org/cgit/network/connman/connman.git/tree/doc].
+
ConnMan に関する詳しい情報は git リポジトリにあるドキュメントを参照してください: [https://git.kernel.org/cgit/network/connman/connman.git/tree/doc]

2016年3月16日 (水) 00:41時点における版

関連記事

ConnMan は解決時間が高速な組み込みデバイスで使うために作られたコマンドラインネットワークマネージャです。プラグインアーキテクチャ によるモジュール式になっていますが、ネイティブで dhcpntp をサポートもしています。

インストール

connman パッケージをインストールしてください。Wi-Fi や Bluetooth の機能を使うには wpa_supplicantbluez も必要になります。

connman.service有効化する前に、既存のネットワーク設定を無効化するようにしてください。

デスクトップクライアント

  • cmst — ConnMan の Qt GUI。
https://github.com/andrew-bibb/cmst || cmstAUR
  • connman-ncurses — ConnMan のシンプルな ncurses UI。
https://github.com/eurogiciel-oss/connman-json-client || connman-ncurses-gitAUR
  • connman-notify — Connman イベント通知クライアント。
https://github.com/wavexx/connman-notify || connman-notifyAUR
  • ConnMan-UI — GTK3 クライアントアプレット。
https://github.com/tbursztyka/connman-ui || connman-ui-gitAUR
  • connman_dmenu — dmenu 用のクライアント/フロントエンド。
https://github.com/taylorchu/connman_dmenu || connman_dmenu-gitAUR
  • Econnman — Enlightenment デスクトップパネルアプレット。
http://www.enlightenment.org || econnmanAUR
  • LXQt-Connman-Applet — LXQt デスクトップパネルアプレット。
https://github.com/surlykke/lxqt-connman-applet || lxqt-connman-applet-gitAUR
  • qconnman-ui — O.S. Systems で使われている Qt 管理インターフェイス。
https://github.com/OSSystems/qconnman-ui || qconnman-ui-gitAUR
  • connman-gtk — GTK クライアント。
https://github.com/jgke/connman-gtk || connman-gtkAUR
  • gnome-extension-connman — Connman の Gnome3 拡張。
https://github.com/jgke/gnome-extension-connman || https://extensions.gnome.org/extension/981/connman-extension/

gnome-extension-connman: connman-gtk をインストールしない場合、一部の機能だけが使えます。

connman-ncurses: 実装されている connman の機能は一部に限られていますが、使えないわけではありません (X がない CUI 環境でも使えます)。wiki を参照。

使用方法

ConnMan には標準のコマンドラインクライアント connmanctl が付属しています。connmanctl は2つのモードで動作します:

  • コマンドモードでは、connmanctl に引数を付けてコマンドを実行します。systemctl と似ています。
  • インタラクティブモードでは、connmanctl に何も引数を付けずに起動します。プロンプトが connmanctl> に変化し、ユーザーがコマンドを入力するのを待機します。python のインタラクティブモードに似ています。

有線

ConnMan は自動的に有線接続を管理します。

Wi-Fi

ノート: ip link show up の Wi-Fi デバイスが出力されることを確認してください。出力されない場合、デバイスの電源が落ちています。ノートパソコンの場合 Fn キーを使って電源を入れてください。もしくは、connmanctl enable wifi を実行する必要があるかもしれません。

オープンなアクセスポイントに接続

このセクションでは connmanctl をコマンドモードで実行する方法を説明しています。

ネットワークをスキャンするとき、connmanctltechnologies と呼ばれるシンプルな名前を受け取ります。近辺の Wi-Fi ネットワークをスキャンするには:

$ connmanctl scan wifi

スキャンを実行した後に、利用可能なネットワークを確認するには (出力例):

$ connmanctl services
*AO MyNetwork               wifi_dc85de828967_68756773616d_managed_psk
    OtherNET                wifi_dc85de828967_38303944616e69656c73_managed_psk 
    AnotherOne              wifi_dc85de828967_3257495245363836_managed_wep
    FourthNetwork           wifi_dc85de828967_4d7572706879_managed_wep
    AnOpenNetwork           wifi_dc85de828967_4d6568657272696e_managed_none

オープンなネットワークに接続するには、2番目のフィールドに wifi_ から始まる文字列を指定します:

$ connmanctl connect wifi_dc85de828967_4d6568657272696e_managed_none

これでネットワークに接続されるはずです。ip addrconnmanctl state で確認してください。

保護されたアクセスポイントに接続

パスワードで保護されたアクセスポイントを使う場合、ConnMan デーモンに情報 (パスワードやパスフレーズ) を渡す必要があります。

このセクションのコマンドを使うときは connmanctl をインタラクティブモードで実行します。agent コマンドを使用するにはインタラクティブモードが必須です。インタラクティブモードを起動するには次を入力:

$ connmanctl

オープンなアクセスポイントと同じように設定を進めます。まずは Wi-Fi の technologies をスキャン:

connmanctl> scan wifi

サービスを確認:

connmanctl> services

エージェントを登録してユーザーのリクエストを処理する必要があります。コマンドは:

connmanctl> agent on

それから保護されたサービスに接続します。カットアンドペーストを使えるターミナルなら簡単に接続できます。例えば、上の例にある OtherNET に接続する場合、以下を実行:

connmanctl> connect wifi_dc85de828967_38303944616e69656c73_managed_psk

エージェントは接続を確立するのに必要な情報を要求します。接続するネットワークのタイプによって、要求される情報は大きく変わってきます。また、エージェントが必要とする情報に関するデータが以下のように出力されます:

Agent RequestInput wifi_dc85de828967_38303944616e69656c73_managed_psk
  Passphrase = [ Type=psk, Requirement=mandatory ]
  Passphrase?  

要求されている情報 (上の例の場合はパスフレーズ) を入力してから、次を実行:

connmanctl> quit

入力した情報が正しければ、保護されたアクセスポイントに接続できているはずです。

設定

ユーザーがネットワークに接続すると、設定とプロファイルが自動的に作成されます。ファイルにはパスフレーズや essid などの情報が記述されています。プロファイル設定は /var/lib/connman/ 下のディレクトリに保存されます。全てのネットワークプロファイルを確認したい場合は root シェルから次のコマンドを実行して下さい:

# cat /var/lib/connman/*/settings
ノート: VPN の設定は /var/lib/connman-vpn/ にあります。

テクノロジー

ConnMan は様々なハードウェアインターフェイスを Technologies と呼びます。

利用可能な technologies を確認するには次を実行:

$ connmanctl technologies

以下のワンライナーを使うことでタイプだけを取得できます:

$ connmanctl technologies | awk '/Type/ { print $NF }'
ノート: Type = tech_name フィールドには connmanctl コマンドで使用するテクノロジーのタイプが記されています。

テクノロジーを使用するときはタイプでテクノロジーを指定する必要があります。Technologies は次のコマンドでオンオフを切り替えられます:

$ connmanctl enable technology_type

または:

$ connmanctl disable technology_type

例えば wifi をオフにするには:

$ connmanctl disable wifi
警告: connman はあらゆる rfkill イベントを乗っ取ります。rfkillbluetoothctl を使ってデバイスをブロック(あるいはブロックを解除)することはできません。connmanctl enable|disable を使ってください。

Tips and tricks

ホストネームの変更をしない

デフォルトで、ConnMan はネットワークごとに transient hostname を変更します。これによって X authority で問題が生まれてしまうことがあります: ConnMan は変更したホストネームが xauth のマジッククッキーを作成するのに使われた名前と異なる場合、新しいウィンドウを作成することが不可能になります。その場合 "No protocol specified" や "Can't open display: :0.0" などのエラーメッセージが表示されます。手動でホストネームを再設定することで解決しますが、恒久的な解決策としては、そもそも ConnMan がホストネームを変更できないようにしてしまうほかありません。/etc/connman/main.conf に以下を追加してください:

[General]
AllowHostnameUpdates=false

このファイルを変更した後は connman.service再起動してください。

テスト目的の場合、journal を確認しながらネットワークケーブルを何度か接続してみて何が起こるのか確認することを推奨します。

ワイヤレスよりもイーサネットを優先する

デフォルトでは ConnMan はワイヤレスよりもイーサネットを優先することはありません。そのため、イーサネット接続ができるときでも速度が遅い無線ネットワークが使われてしまう可能性があります。/etc/connman/main.conf に以下を追加することでイーサネットを優先させることができます:

[General]
PreferredTechnologies=ethernet,wifi

ワイヤレスとイーサネットどちらか片方の接続だけを使う

ConnMan では同時にイーサネットとワイヤレスの両方に接続することができます。これによってイーサネットに接続しても wifi 接続を維持することができます。しかしながら、場合によってはどちらか片方の接続だけをアクティブにしたいということもあるでしょう。/etc/connman/main.conf に以下を追加することで片方の接続だけを有効にできます:

[General]
SingleConnectedTechnology=true

eduroam に接続

WPA2 Enterprise#connman を参照。

ローカル DNS サーバーとの衝突を回避する

ローカルで DNS サーバーを動かしている場合、Connman をインストールした後にポート 53 (TCP や UDP) を使用しようとすると問題が発生します。Connman に独自の DNS プロキシが含まれいて、ポート 53 を使用しようとするのが原因です。BINDdnsmasq から以下のようなログメッセージが確認できる場合:

"named[529]: could not listen on UDP socket: address in use"

おそらくそれが問題となっています。どのアプリケーションがポートを listen しているか確認したいときは、root で ss -tulpn を実行してみてください。

systemd のサービスファイルのオプションを -r--nodnsproxy上書きすることでコマンドを修正することができます。/etc/systemd/system/connman.service.d/ フォルダを作成して disable_dns_proxy.conf ファイルを追加してください:

[Service]
ExecStart=
ExecStart=/usr/bin/connmand -n --nodnsproxy

このファイルを追加した後は、systemd デーモンをリロードしてから connman.service と DNS プロキシを再起動してください。

インターフェイスのブラックリスト

Docker などが仮想インターフェイスを作成する場合、接続が切れたときに Connman は物理的なアダプダではなく仮想インターフェイスで接続を試行してしまう可能性があります。使用させたくないインターフェイスをブラックリストに入れることで簡単に回避することができます。Connman はデフォルトで "vmnet", "vboxnet", "virbr", "ifb" から始まるインターフェイスをブラックリストに指定するので、これらのインターフェイスを設定する必要はありません。

systemd や udev が enp4s0 のような予測可能なインターフェイス名を使用し始める前に connman が eth#wlan# を使用してしまう係合状態も、インターフェイスの名前をブラックリストに入れることで回避できます。伝統的 (予測不可能) なインターフェイスのプレフィックスをブラックリストに指定することで、名前が変更されるまで connman は接続を待機します。

ブラックリストを指定するには /etc/connman/main.conf に以下を記述してください:

[General]
NetworkInterfaceBlacklist=vmnet,vboxnet,virbr,ifb,docker,veth,eth,wlan

connman.service再起動すると Econnman などの GUI ツールでも "veth#######" インターフェイスが表示されなくなります。

参照

ConnMan に関する詳しい情報は git リポジトリにあるドキュメントを参照してください: [1]