Fedora Workstation で Clash Verge を初めて使う:SELinux・firewalld・購読と起動の検証まで

Fedora Workstation は既定で SELinux が enforcing、かつ firewalld が有効なことが多く、Debian 系で「そのまま動いた」構成を持ち込むと、Clash Verge が起動してもコアが止まる・Linux デスクトップ 上のブラウザだけ不通、スマホから PC のプロキシに届かない、といった症状が起きやすいです。本稿は「初回設定で詰まりがちな拒否ログの見方」と「必要なときだけポートを開ける」順序を、購読インポート や自動起動の要点とあわせて整理します。

この記事が想定する状況と、Ubuntu 記事との違い

同じ GUI クライアントでも、ディストリビューションごとに「最初にぶつかる壁」が変わります。Ubuntu 24.04 向けの手順は Ubuntu 版の Clash Verge 記事 にまとめてありますが、Fedora はアプリの配置パス、パッケージの入れ方、そして SELinuxfirewalld の既定ポリシーが前提として強いです。ここでは「インストールできたのに通信できない」「権限まわりでコアが落ちる」を、OS 側のログから切り分けることを主眼にします。

クライアントの位置づけや用語は Clash エコシステムの解説 を参照すると早いです。本稿では Fedora に特有の論点(拒否ログ、ゾーン、ポート)に厚めに触れます。

事前確認:いま SELinux と firewalld はどうなっているか

まず現状を数字と状態で押さえます。ターミナルで次を実行し、EnforcingPermissive か、ファイアウォールが動いているかを確認してください。

getenforce
sudo systemctl status firewalld --no-pager
sudo firewall-cmd --state

多くの Fedora Workstation では SELinux は enforcing のままが普通です。セキュリティを弱めずに済ませたい場合は、いきなり無効化せず、後述の audit ログから「何が拒否されたか」を特定するのが安全です。firewalld が running でない環境もありますが、有効なら「外向きは通るが LAN から PC のプロキシだけ届かない」など、着信側のルールが絡みやすくなります。

Clash Verge の入手とインストール(Fedora 向け)

RPM/AppImage/Flatpak など配布形式は時期とビルドで変わります。いずれにせよ、入手元の信頼性とリリースノートに Fedora や glibc の要件が書かれているかを先に確認してください。インストール後、実行ファイルの場所が分かっていると SELinux のラベル修正や systemd の ExecStart が楽になります。

which clash-verge
command -v clash-verge
rpm -ql clash-verge 2>/dev/null | grep /bin/

パッケージ名が clash-verge-rev など別表記の場合は、環境に合わせて読み替えてください。ユーザーがまず参照すべき入手先は、本サイトの ダウンロードページ に集約されています。ソースや Issue を追うときは GitHub を開いて構いませんが、日々のクライアント取得はダウンロードページを優先すると、記事やファイル名との突き合わせがしやすくなります。

SELinux:拒否されたらログを先に読む

グラフィカル版を ~/Downloads や独自ディレクトリに置いた場合、実行ファイルや更新されたコアバイナリに適切なファイルコンテキストが付いていないと、SELinux によって実行や書き込みが止まることがあります。感覚的には「アプリは開くが内部のコアだけ落ちる」「設定の保存に失敗する」といった中途半端な症状になりがちです。

手順 1:拒否イベントを検索する

直近の拒否を確認するには、例として次のコマンドを使います(要管理者権限のものあり)。

sudo ausearch -m avc -ts recent 2>/dev/null | tail -n 50
sudo journalctl -t setroubleshoot -b --no-pager | tail -n 80

GUI の「SELinux のトラブルシュート」通知が出るビルドもあれば、そこに示される提案(コンテキストの付け替えやブール値)を優先して検討します。通知が出ない場合でも、auditdenied が残っていれば、それが第一の手がかりです。

手順 2:RPM で入れたファイルはまず restorecon

パッケージ管理下のパスであれば、まずはラベルの再適用が安全です。

sudo restorecon -RFv /usr/bin/clash-verge
sudo restorecon -RFv /opt/Clash* 2>/dev/null

実際のパスは環境に合わせてください。ホーム直下に展開した単体バイナリは、パッケージと違って自動ラベル付けされないことがあるため、拒否ログに合わせて semanage fcontextrestorecon を組み合わせる必要が出る場合があります。その際は汎用ルールを作りすぎず、対象を実行ファイルとデータディレクトリに限定するのがおすすめです。

手順 3:TUN モードと権限

TUN モード はカーネル側の仕組みに踏み込むため、ディストリビューションや実行ユーザーの組み合わせで追加の許可が要ることがあります。仕組みの整理は TUN モードの記事 に譲りますが、Fedora では「まずシステムプロキシだけでブラウザが期待どおりか」を確認し、必要になったら TUN に進むと切り分けが楽です。

💡 ヒント 試しに SELinux を permissive に切り替えたら一気に直る、という場合は SELinux が原因である可能性が高いです。ただし恒久対応として permissive 固定は避け、ログに基づくラベルやブール値の修正に寄せてください。

firewalld:ローカルだけなら基本はそのまま、LAN 共有なら着信を開ける

firewalld は「外向きのブラウジング」よりも「同じ Wi‑Fi の端末から、この PC の 7890 番ポートに入ってくる」ような着信に効きます。Clash を 127.0.0.1 だけで使う限り、追加の開放が不要なことも多いです。一方で、クライアント設定で Allow LAN 相当を有効にし、スマホや別 PC から接続するなら、Fedora 側でそのポートを許可する必要が出ます。

手順 1:いまのゾーンと公開サービスを確認

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --list-all

無線 LAN なら fedora ゾーンに乗っていることが多いですが、VPN やカスタムゾーンを使っている場合は表示が変わります。

手順 2:必要なポートだけ一時的に開けて試す

実際の番号はプロファイルの mixed-port やクライアント画面の表示に合わせてください。例として HTTP プロキシに 7890 を使う場合:

sudo firewall-cmd --add-port=7890/tcp --zone=fedora
sudo firewall-cmd --list-ports --zone=fedora

動作が確認できたら、恒久的に残すかどうかを判断します。恒久的に入れる例:

sudo firewall-cmd --permanent --add-port=7890/tcp --zone=fedora
sudo firewall-cmd --reload

UDP を使う機能や別ポートを公開する場合も、同様に --add-port の列挙で足します。開放しすぎないよう、必要最小限に留めてください。

購読(サブスクリプション)のインポートと更新

プロバイダから渡された 購読 URL を Clash Verge に登録し、手動または定期の更新を行います。失敗理由の整理は 購読 URL の解説 が役立ちます。ルールを足したい場合の基本は カスタムルールのガイド を参照してください。用語や画面の流れは チュートリアルページ も併読ください。

ログイン後の自動起動(systemd ユーザーサービス)

毎回ランチャーから起動するのが面倒な場合、~/.config/systemd/user/ にユニットを置く方法が一般的です。Wayland 下では表示まわりの環境変数が絡むことがあるため、まず最小構成で試し、ログにエラーが出るかを見ます。ユニットの書き方の考え方自体は Ubuntu 版の systemd 節 と同じです。

systemctl --user daemon-reload
systemctl --user enable --now clash-verge.service
systemctl --user status clash-verge.service
journalctl --user -u clash-verge.service -b --no-pager

手動起動と自動起動で二重に立ち上がらないよう、クライアント側の「起動時に開く」系の設定と競合していないかも確認してください。

うまくいったかを検証するチェックリスト

  1. 1

    プロキシポートの待受

    ss -lntp などで、期待するアドレス(127.0.0.10.0.0.0)にプロセスがいるか確認します。LAN 公開時は後者になりやすく、その場合こそ firewalld の扱いが効きます。

  2. 2

    SELinux の拒否が消えたか

    操作直後に ausearch を再確認し、同じパスへの denied が繰り返されていないかを見ます。

  3. 3

    ブラウザとターミナルの両方

    システムプロキシ設定と、curl のプロキシ指定の両方で期待どおりか試し、片方だけ失敗するならモードや環境変数の食い違いを疑います。

よくある質問

SELinux を無効にすれば早いのでは

症状は消えることがありますが、Fedora の前提セキュリティモデルから外れるため推奨しにくいです。まずは拒否ログに基づくラベル付けや必要なブール値の見直しを優先してください。

ポートを開けたのにスマホから繋がらない

PC 側のクライアントが 127.0.0.1 のみ待受にしているケースがあります。Allow LAN 相当の設定と、待受アドレスの表示を合わせて確認してください。あわせて Wi‑Fi の隔離(ゲスト SSID など)も疑います。

Debian 系の手順をそのまま真似てよいか

考え方は近いですが、SELinux と firewalld の有無と既定値が違います。パッケージ名やパスも異なるため、Fedora 向けのドキュメントとログを軸にした方が早いです。

まとめ

FedoraClash Verge を初めて使うときのコツは、「Debian 系と同じ画面操作」だけでなく、SELinux の拒否ログと firewalld の着信ルールをセットで見ることです。ローカル用途ならファイアウォールは触らずに済むことも多い一方、LAN 共有ではポート開放が必須になるため、待受アドレスと番号を画面表示と突き合わせてください。購読と自動起動の流れは Ubuntu 記事と共通する部分が大きいので、併せて参照すると運用の全体像が掴みやすくなります。

他の OS でも同じ考え方を試したい場合、各プラットフォーム向けの説明と入手先を 本サイトのダウンロードページ で揃えると、バージョンと用語の対応が取りやすくなります。オープンソースのライセンスやソースを確認したいときは、本文の導線とは分けて GitHub を参照する形がおすすめです。

Clash を無料ダウンロードし、Fedora 以外の端末でも同じ考え方で試す