「ConnMan」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(en:Connmanへの転送ページ)
 
1行目: 1行目:
  +
[[Category:ネットワーク]]
#redirect[[en:Connman]]
 
  +
[[en:Connman]]
  +
[[fr:Connman]]
  +
[[it:Connman]]
  +
{{Related articles start}}
  +
{{Related|ネットワーク設定}}
  +
{{Related|ワイヤレス設定}}
  +
{{Related articles end}}
  +
  +
[https://01.org/connman ConnMan] は解決時間が高速な組み込みデバイスで使うために作られたコマンドラインネットワークマネージャです。[http://git.kernel.org/cgit/network/connman/connman.git/tree/plugins プラグインアーキテクチャ] によるモジュール式になっていますが、ネイティブで [http://git.kernel.org/cgit/network/connman/connman.git/tree/src/dhcp.c dhcp] と [http://git.kernel.org/cgit/network/connman/connman.git/tree/src/ntp.c ntp] をサポートもしています。
  +
  +
== インストール ==
  +
  +
{{Pkg|connman}} パッケージを[[インストール]]してください。Wi-Fi や Bluetooth の機能を使うには {{Pkg|wpa_supplicant}} や {{Pkg|bluez}} も必要になります。
  +
  +
{{ic|connman.service}} を[[有効化]]する前に、既存の[[ネットワーク設定]]を無効化するようにしてください。
  +
  +
=== デスクトップクライアント ===
  +
  +
* {{App|cmst|ConnMan の Qt GUI。|https://github.com/andrew-bibb/cmst|{{AUR|cmst}}}}
  +
* {{App|connman-ncurses|ConnMan のシンプルな ncurses UI。|https://github.com/eurogiciel-oss/connman-json-client|{{AUR|connman-ncurses-git}}}}
  +
* {{App|connman-notify|Connman イベント通知クライアント。|https://github.com/wavexx/connman-notify|{{AUR|connman-notify}}}}
  +
* {{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|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|qconnman-ui|O.S. Systems で使われている Qt 管理インターフェイス。|https://github.com/OSSystems/qconnman-ui|{{AUR|qconnman-ui-git}}}}
  +
  +
現在 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 には標準のコマンドラインクライアント {{ic|connmanctl}} が付属しています。{{ic|connmanctl}} は2つのモードで動作します:
  +
*'''コマンドモード'''では、{{ic|connmanctl}} に引数を付けてコマンドを実行します。[[systemctl]] と似ています。
  +
*'''インタラクティブモード'''では、{{ic|connmanctl}} に何も引数を付けずに起動します。プロンプトが {{ic|connmanctl>}} に変化し、ユーザーがコマンドを入力するのを待機します。[[python]] のインタラクティブモードに似ています。
  +
  +
=== 有線 ===
  +
  +
ConnMan は自動的に有線接続を管理します。
  +
  +
=== Wi-Fi ===
  +
  +
{{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}}.}}
  +
  +
==== オープンなアクセスポイントに接続 ====
  +
  +
このセクションでは {{ic|connmanctl}} をコマンドモードで実行する方法を説明しています。
  +
  +
To scan the network {{ic|connmanctl}} accepts simple names called ''technologies''. To scan for nearby Wi-Fi networks:
  +
  +
$ connmanctl scan wifi
  +
  +
To list the available networks found after a scan run (example output):
  +
  +
{{hc|$ 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
  +
}}
  +
  +
To connect to an open network, use the second field beginning with '''wifi_''':
  +
  +
$ connmanctl connect wifi_dc85de828967_4d6568657272696e_managed_none
  +
  +
You should now be connected to the network. Check using {{ic|ip addr}} or {{ic|connmanctl state}}.
  +
  +
==== 保護されたアクセスポイントに接続 ====
  +
  +
For protected access points you will need to provide some information to the ConnMan daemon, at the very least a password or a passphrase.
  +
  +
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
  +
  +
You then proceed almost as above, first scan for any Wi-Fi ''technologies'':
  +
  +
connmanctl> scan wifi
  +
  +
To list services:
  +
  +
connmanctl> services
  +
  +
Now you need to register the agent to handle user requests. The command is:
  +
  +
connmanctl> agent on
  +
  +
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
  +
  +
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
  +
Passphrase = [ Type=psk, Requirement=mandatory ]
  +
Passphrase?
  +
  +
Provide the information requested, in this example the passphrase, and then type:
  +
  +
connmanctl> quit
  +
  +
If the information you provided is correct you should now be connected to the protected access point.
  +
  +
=== 設定 ===
  +
  +
ユーザーがネットワークに接続すると、設定とプロファイルが自動的に作成されます。ファイルにはパスフレーズや essid などの情報が記述されています。プロファイル設定は {{ic|/var/lib/connman/}} 下のディレクトリに保存されます。全てのネットワークプロファイルを確認したい場合は [[ヘルプ:読み方#通常ユーザーまたは root|root シェル]]から次のコマンドを実行して下さい:
  +
  +
# cat /var/lib/connman/*/settings
  +
  +
{{Note|VPN settings can be found in {{ic|/var/lib/connman-vpn/}}.}}
  +
  +
=== テクノロジー ===
  +
  +
Various hardware interfaces are referred to as ''Technologies'' by ConnMan.
  +
  +
To list available ''technologies'' run:
  +
  +
$ connmanctl technologies
  +
  +
To get just the types by their name one can use this one liner:
  +
  +
$ connmanctl technologies | awk '/Type/ { print $NF }'
  +
  +
{{Note| The field {{ic|1=Type = tech_name}} provides the technology type used with {{ic|connmanctl}} commands}}
  +
  +
To interact with them one must refer to the technology by type.
  +
''Technologies'' can be toggled on/off with:
  +
  +
$ connmanctl enable ''technology_type''
  +
  +
and:
  +
  +
$ connmanctl disable ''technology_type''
  +
  +
For example to toggle off 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>}} }}
  +
  +
== 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}}:
  +
  +
[General]
  +
AllowHostnameUpdates=false
  +
  +
このファイルを変更した後は {{ic|connman.service}} を[[再起動]]してください。
  +
  +
For testing purposes it is recommended to watch the [[systemd#Journal|journal]] and plug the network cable a few times to see the action.
  +
  +
=== ワイヤレスよりもイーサネットを優先する ===
  +
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]
  +
PreferredTechnologies=ethernet,wifi
  +
  +
=== ワイヤレスとイーサネットどちらか片方の接続だけを使う ===
  +
ConnMan では同時にイーサネットとワイヤレスの両方に接続することができます。これによってイーサネットに接続しても wifi 接続を維持することができます。しかしながら、場合によってはどちらか片方の接続だけをアクティブにしたいということもあるでしょう。{{ic|/etc/connman/main.conf}} に以下を追加することで片方の接続だけを有効にできます:
  +
  +
[General]
  +
SingleConnectedTechnology=true
  +
  +
=== eduroam に接続 ===
  +
  +
[[WPA2 Enterprise#connman]] を参照。
  +
  +
=== ローカル DNS サーバーとの衝突を回避する ===
  +
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
  +
<code>netstat -tulpn</code>.)
  +
  +
systemd のサービスファイルを <code>-r</code> や <code>--nodnsproxy</code> で[[systemd#ユニットファイルの編集|上書き]]することでコマンドを修正することができます。{{ic|/etc/systemd/system/connman.service.d/}} フォルダを作成して {{ic|disable_dns_proxy.conf}} ファイルを追加してください:
  +
  +
[Service]
  +
ExecStart=
  +
ExecStart=/usr/bin/connmand -n --nodnsproxy
  +
  +
このファイルを追加した後は、systemd デーモンを[[systemd#ユニットを使う|リロード]]してから {{ic|connman.service}} と DNS プロキシを[[再起動]]してください。
  +
  +
=== インターフェイスブラックリスト ===
  +
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}}:
  +
  +
[General]
  +
NetworkInterfaceBlacklist=vmnet,vboxnet,virbr,ifb,docker,veth
  +
  +
{{ic|connman.service}} を[[systemd#ユニットを使う|再起動]]すると Econnman などの GUI ツールでも "veth#######" インターフェイスが表示されなくなります。
  +
  +
== 参照 ==
  +
  +
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].

2015年8月2日 (日) 15:55時点における版

関連記事

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

現在 GTK クライアントは 100% 安定してるという状態ではありませんが、日常的に使う分には問題ありません。使用するにはスタートアップファイルに connman-ui-gtk を追加してください (例えば Openbox の場合 autostart)。

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

使用方法

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

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

有線

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

Wi-Fi

ノート: Make sure the Wi-Fi device is listed in the output of ip link show up. If it is not listed that means it is not powered on. Use Fn keys on the laptop to turn it on. You may need to run connmanctl enable wifi.

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

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

To scan the network connmanctl accepts simple names called technologies. To scan for nearby Wi-Fi networks:

$ connmanctl scan wifi

To list the available networks found after a scan run (example output):

$ 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

To connect to an open network, use the second field beginning with wifi_:

$ connmanctl connect wifi_dc85de828967_4d6568657272696e_managed_none

You should now be connected to the network. Check using ip addr or connmanctl state.

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

For protected access points you will need to provide some information to the ConnMan daemon, at the very least a password or a passphrase.

The commands in this section show how to run connmanctl in interactive mode, it is required for running the agent command. To start interactive mode simply type:

$ connmanctl

You then proceed almost as above, first scan for any Wi-Fi technologies:

connmanctl> scan wifi

To list services:

connmanctl> services

Now you need to register the agent to handle user requests. The command is:

connmanctl> agent on

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

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
  Passphrase = [ Type=psk, Requirement=mandatory ]
  Passphrase?  

Provide the information requested, in this example the passphrase, and then type:

connmanctl> quit

If the information you provided is correct you should now be connected to the protected access point.

設定

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

# cat /var/lib/connman/*/settings
ノート: VPN settings can be found in /var/lib/connman-vpn/.

テクノロジー

Various hardware interfaces are referred to as Technologies by ConnMan.

To list available technologies run:

$ connmanctl technologies

To get just the types by their name one can use this one liner:

$ connmanctl technologies | awk '/Type/ { print $NF }'
ノート: The field Type = tech_name provides the technology type used with connmanctl commands

To interact with them one must refer to the technology by type. Technologies can be toggled on/off with:

$ connmanctl enable technology_type

and:

$ connmanctl disable technology_type

For example to toggle off wifi:

$ connmanctl disable wifi
警告: connman grabs all rfkill events. It is most likely impossible to use rfkill or bluetoothctl to (un)block devices. Always use connmanctl enable|disable

Tips and tricks

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

By default, ConnMan changes the 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 /etc/connman/main.conf:

[General]
AllowHostnameUpdates=false

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

For testing purposes it is recommended to watch the journal and plug the network cable a few times to see the action.

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

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 /etc/connman/main.conf:

[General]
PreferredTechnologies=ethernet,wifi

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

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

[General]
SingleConnectedTechnology=true

eduroam に接続

WPA2 Enterprise#connman を参照。

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

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 "named[529]: could not listen on UDP socket: address in use", this could be the problem. (Verify connmand is listening on that port with netstat -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 プロキシを再起動してください。

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

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 /etc/connman/main.conf:

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

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

参照

For further detailed information on ConnMan you may refer to the documentation in its git repo at [1].