コンテンツにスキップ

「Wicd」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
Pkg/AUR テンプレートの更新
アーカイブに移動
タグ: 新規リダイレクト
 
(4人の利用者による、間の6版が非表示)
1行目: 1行目:
#redirect [[ArchWiki:アーカイブ]]
[[Category:ネットワーク]]
[[Category:アーカイブ]]
[[de:Wicd]]
[[en:Wicd]]
[[es:Wicd]]
[[fr:Wicd]]
[[it:Wicd]]
[[tr:Wicd]]
[[zh-hans:Wicd]]
{{Related articles start}}
{{Related|ネットワーク設定}}
{{Related|ワイヤレス設定}}
{{Related|Netctl}}
{{Related|NetworkManager}}
{{Related articles end}}

[https://launchpad.net/wicd Wicd] は有線・無線インターフェイスを管理することができるネットワーク接続マネージャであり、[[NetworkManager]] と似ています。Wicd は [[Python]] と [[GTK+]] で書かれています。また、[[Qt]] で書かれた、[[KDE]] 用の Wicd も [[Arch User Repository]] からインストールできます。Wicd は curses インターフェイスでターミナルから実行することもでき、X サーバーセッションやタスクパネルを必要としません ([[#テキストモードで Wicd を実行]] を参照)。

== インストール ==

=== 基本パッケージ ===

[[公式リポジトリ]]から {{Pkg|wicd}} を[[インストール]]してください。wicd デーモンを実行するのに必要な全てのプログラムと {{ic|wicd-cli}} と {{ic|wicd-curses}} インターフェイスが含まれています。

=== GTK+ クライアント ===

GTK+ フロントエンドを使いたい場合は、公式リポジトリの {{Pkg|wicd-gtk}} をインストールしてください。wicd の GTK インターフェイスを実行するのに必要な全てのプログラムと、システムトレイにクライアントを表示させるための autostart ファイルが含まれています。

=== KDE クライアント ===

KDE フロントエンドを使いたい場合は、[[AUR]] から {{AUR|wicd-kde}}{{Broken package link|{{aur-mirror|wicd-kde}}}} をインストールしてください。

=== 通知 ===

ネットワークの状態に関する通知を有効にするには、{{Pkg|notification-daemon}} と {{Pkg|python2-notify}} パッケージをインストールする必要があります。

[[GNOME]] を使ってない場合は、notification-daemon の代わりに、GNOME パッケージを必要としない {{Pkg|xfce4-notifyd}} を通知デーモンとしてインストールすると良いでしょう。

=== その他 ===

[[AUR]] には {{AUR|wicd-bzr}}{{Broken package link|パッケージが存在しません}} ビルドスクリプトが入っており、最新の開発ブランチをビルドします。別のバージョンを使ったり自分でパッケージを作りたい場合は、[[ABS]] を使うことで簡単にビルドできます。

== 設定 ==

=== 初期設定 ===

Wicd にはデーモンがあり、それを起動する必要があります。

{{Warning|複数のネットワークマネージャを起動すると問題が発生するので、あらかじめ他のネットワーク管理デーモンは全て無効化しておいてください。}}

まず、(netctl, netcfg, dhcpcd, NetworkManager など) 前に使っていたネットワークデーモンを停止させます。

{{ic|netctl}}, {{ic|netcfg}}, {{ic|dhcpcd}}, {{ic|networkmanager}} などの既存のネットワーク管理サービスを無効化してください。[[Systemd#ユニットを使う]] を参照。

{{Note|''network'' サービスを置き換えている ''netctl'' ではなく、''network'' デーモンを停止・無効化する必要があるかもしれません。よくわからないならば、両方とも無効化してください。}}

''wicd'' [[systemd]] [[デーモン]]を起動して、ブート時に起動するように有効化してください。

ユーザーを {{ic|users}} グループに追加してください:

# gpasswd -a USERNAME users

{{Note|The Unix group that D-Bus allows to access ''wicd'' is subject to change, and it may be different than ''users''. Check which policy group is specified in {{ic|/etc/dbus-1/system.d/wicd.conf}}, and add your user to that group.}}

ユーザーを新しいグループに追加したら、一度ログアウトして再ログインしてください。

=== デスクトップ環境で Wicd を実行 ===

{{pkg|wicd-gtk}} をインストールしてデスクトップ環境がある場合、仮想ターミナルを開いて以下のコマンドを実行します。

* システムサービスとして Wicd を起動するには、次のコマンドを実行:

# systemctl start wicd

* Wicd をロードするには、次のコマンドを実行:

$ wicd-client

* 通知エリアに最小化させて起動するには、次のコマンドを実行:

$ wicd-client --tray

* デスクトップ環境に通知エリアが存在しない場合、または wicd のトレイアイコンを表示してほしくない場合、次のコマンドを実行:

$ wicd-client -n

=== テキストモードで Wicd を実行 ===

{{pkg|wicd-gtk}} をインストールしていない場合、wicd-cli か wicd-curses を使います:

$ wicd-curses

{{Note|
*Wicd はパスキーのプロンプトを表示しません。鍵がかけられた接続 (WPA/WEP) を使う場合、接続したいネットワークを開いて、''Advanced'' をクリックして必要な情報を入力してください。
* ''wicd-curses'' は ''wicd-gtk'' より不安定で、定期的にクラッシュします。無線ネットワークに接続しようとするとクラッシュする場合は {{AUR|wicd-patched}} を使用してください。}}

=== WPA supplicant ドライバーの切り替え ===

''Wicd'' は WPA supplicant ドライバーとして Wext を使うことを推奨しておりデフォルトで使用しますが、これは [http://linuxwireless.org/en/developers/Documentation/Wireless-Extensions/index.html#Do_we_still_use_WE_.3F 時代遅れの挙動] です。古いドライバーでしかサポートされていない場合を除いて、基本的には nl80211 を使うべきです。関連するオプションは ''Preferences > Advanced Settings'' にあります。

=== 自動起動 ===

{{Pkg|wicd-gtk}} パッケージは {{ic|/etc/xdg/autostart/wicd-tray.desktop}} ファイルを作成し、DE/WM のログイン時に {{ic|wicd-client}} を自動で起動します。その場合、wicd のシステムサービスを有効にするだけで十分です:

# systemctl enable wicd

{{ic|/etc/xdg/autostart/wicd-tray.desktop}} が存在しない場合、''wicd-client'' を DE/WM のスタートアップに追加することでログイン時にアプリケーションを起動させることができます。

{{Note|{{ic|/etc/xdg/autostart/wicd-tray.desktop}} が存在しているのに ''wicd-client'' を DE/WM のスタートアップに追加してしまうと、{{ic|wicd-client}} のインスタンスが2つ実行してしまいます。}}

=== スクリプト ===

Wicd には接続プロセスの段階 (接続や切断の前後) ごとにスクリプトを実行することができる機能があります。{{ic|/etc/wicd/scripts/}} 内のそれぞれの段階にスクリプトを置いて実行可能属性を付与してください。

スクリプトは3つのパラメータを受け取ることができます:
$1 - 接続タイプ (wireless/wired)。
$2 - ESSID (ネットワーク名)。
$3 - BSSID (ゲートウェイ MAC)。

==== ARP スプーフィング攻撃の防止 ====

以下のスクリプトを使うことで静的な ARP が設定され、ARP スプーフィング攻撃の防止になります。case ステートメントの中の値を、静的な ARP エントリを設定したいネットワークに変更してください。root で実行します:

#!/bin/bash
#Set the parameters passed to this script to meaningful variable names.
connection_type="$1"
essid="$2"
bssid="$3"
if [ "${connection_type}" == "wireless" ]; then
#Change below to match your networks.
case "$essid" in
YOUR-NETWORK-NAME-ESSID)
arp -s 192.168.0.1 00:11:22:33:44:55
;;
Netgear01923)
arp -s 192.168.0.1 10:11:20:33:40:50
;;
ANOTHER-ESSID)
arp -s 192.168.0.1 11:33:55:77:99:00
;;
*)
echo "Static ARP not set. No network defined."
;;
esac
fi

==== macchanger を使って MAC を変更 ====

[[MAC アドレス偽装#macchanger]] を見て下さい。

以下のスクリプトを使うことでネットワークインターフェイスの MAC アドレスを変更することができます。

ネットワークに接続するときに MAC を変更するには、スクリプトを {{ic|/etc/wicd/scripts/preconnect/}} 下に配置してください。

macchanger コマンドは {{ic|macchanger --help}} を見て自由に変更してください。

{{bc|<nowiki>
#!/usr/bin/env bash

connection_type="$1"

if [[ "${connection_type}" == "wireless" ]]; then
ip link set wlp2s0 down
macchanger -A wlp2s0
ip link set wlp2s0 up
elif [[ "${connection_type}" == "wired" ]]; then
ip link set enp1s0 down
macchanger -A enp1s0
ip link set enp1s0 up
fi
</nowiki>}}

==== openvpn クライアントの起動・停止 ====

特定の ESSID に接続されたときに openvpn クライアントを再起動させるには {{ic|/etc/wicd/scripts/postconnect/}} に以下のスクリプトを配置してください。{{ic|YOUR_WIFI_ESSID}} は適当な ESSID に置き換えてください。

{{bc|<nowiki>
#!/bin/sh

ESSID="YOUR_WIFI_ESSID"

if [ $1 == "wireless" ]; then
if [ $2 == "$ESSID" ]; then
systemctl restart openvpn@client
fi
fi
</nowiki>}}

特定の ESSID から切断されたときに openvpn クライアントを停止するには {{ic|/etc/wicd/scripts/predisconnect/}} に以下のスクリプトを配置してください。{{ic|YOUR_WIFI_ESSID}} は適当な ESSID に置き換えてください。

{{bc|<nowiki>
#!/bin/sh

ESSID="YOUR_WIFI_ESSID"

if [ $1 == "wireless" ]; then
if [ $2 == "$ESSID" ]; then
systemctl stop openvpn@client
fi
fi
</nowiki>}}

== トラブルシューティング ==

有線接続のトラブルシューティングについては[[ネットワーク設定#トラブルシューティング]]を、無線接続のトラブルシューティングについては[[ワイヤレス設定#トラブルシューティング]]を見てください。このセクションでは ''wicd'' に関する問題だけを取り扱います。

=== ハイバネート・サスペンドから復帰したときに自動接続 ===

いくつかの理由で、ハイバネートやサスペンドからの復帰時の自動接続は自動的に動作しません。以下のサービスファイルを有効化することで Wicd を手動で再起動できます。
{{hc|~/.config/systemd/user/wicd@resume.service|<nowiki>
[Unit]
Description=Restart Wicd autoconnect service on resume
After=suspend.target

[Service]
Type=oneshot
User=%i
RemainAfterExit=no
ExecStart=/usr/share/wicd/daemon/autoconnect.py

[Install]
WantedBy=suspend.target
</nowiki>}}

=== pynotify のインポートが失敗して、通知が使えない ===

{{pkg|python2-notify}} パッケージが自動的にインストールされていません。[[公式リポジトリ]]から[[インストール]]してください。

=== D-Bus の接続エラーメッセージ ===

wicd が突然機能停止して D-Bus に関するエラーが表示される場合、設定ファイルも含めて wicd を完全に削除して、始めから再インストールする必要があります:
# pacman -R wicd
# rm -rf /etc/wicd /var/log/wicd /etc/dbus-1/system.d/wicd*
# pacman -S wicd
詳しくは次のリンクを見て下さい: https://bbs.archlinux.org/viewtopic.php?pid=577141#p577141

設定ファイルの問題によって wicd が動作しないときも Wicd-client は D-Bus の接続エラーのメッセージを吐きます ("Could not connect to wicd's D-Bus interface.")。空のアカウントが {{ic|/etc/wicd/wired-settings.conf}} に追加されているということも考えられます。その場合は
[]
を削除して wicd を再起動してください。

それでも動作しない場合は https://bbs.archlinux.org/viewtopic.php?pid=1268721 を読んで下さい。

=== パッケージを更新した後の問題 ===

D-Bus のエラーによって、パッケージの更新後に wicd クライアントがロードできなくなることが時々あります。

{{ic|/etc/wicd/}} ディレクトリの設定ファイルを削除するのが解決方法です。
# systemctl stop wicd
# rm /etc/wicd/*.conf
# systemctl start wicd

=== sudo のグラフィカルプログラムについての注意事項 ===

wicd がグラフィカルな sudo プログラムを見つけられないというエラーを表示する場合 {{Pkg|gksu}}, {{AUR|ktsuss}}, {{Pkg|kdebase-runtime}} のどれかをインストールして、適当なコマンドを実行してください:

$ ktsuss wicd-client -n

$ gksudo wicd-client -n

$ kdesu wicd-client -n

=== Eduroam ===

[[WPA2 Enterprise#Wicd]] を見てください。

=== wicd-client のアイコンがシステムトレイに2つ表示される ===

[[#自動起動]] にある {{ic|/etc/xdg/autostart}} の autostart ファイルに関するノートや、[[#参照]] にあるフォーラムの投稿やバグレポートを見て下さい。{{ic|/etc/xdg/autostart/wicd-tray.desktop}} が存在する場合、削除してください。systemd で {{ic|wicd}} サービスを有効にしてください。

=== TKIP/MS-CHAPv2 で PEAP を使用する場合にパスワードが通らない ===

TKIP/MS-CHAPv2 による PEAP 接続テンプレートでは、ユーザー名やパスワードの入力だけでなく、CA 証明書のパスも入力する必要があります。しかしながら、そのときにパスワードが不正だというエラーメッセージが表示されることがあります [https://bbs.archlinux.org/viewtopic.php?pid=990385]。TKIP/MS-CHAPv2 の代わりに GTC で PEAP を使うことで CA 証明書のパスを入力する必要がなくなります。

=== Wicd が wlp で IP アドレスを取得しない ===

wicd が systemd サービスとして動作しているのに dhcpcd が動作しているのが原因です。'''dhcpcd''' を停止・無効化してください。

=== dhcpcd が動作しない ===

通常は、wicd と一緒に dhcpcd サービスを動作させることは必要ありませんし推奨されません。しかしながら、dhcpcd が動作していないというエラーメッセージが表示される場合、dhcpcd を動かしてみることで、同時に両方のサービスを動作させた場合に問題が発生しないか確認することができます:

# systemctl start dhcpcd

もしくは、Wicd の設定で {{Pkg|dhclient}} に切り替えることもできます。

{{Note|''send_packet: Network is unreachable'' エラーが表示される場合、{{ic|/usr/share/dhclient/dhclient.conf}} の timeout の値を上げてみて下さい。}}

== 参照 ==

* [https://bbs.archlinux.org/viewtopic.php?id=114803 Forum post] about two instances of wicd-client and {{ic|/etc/xdg/autostart}}
* [https://bugs.archlinux.org/task/22423 Bug report mentioning /etc/xdg/autostart and wicd-client behavior]

2022年8月22日 (月) 10:32時点における最新版