paqctl:ファイアウォール回避向け統合プロキシ管理ツール

Security

概要

paqctlは、検閲回避(censorship circumvention)を目的とした「統合プロキシ管理ツール」です。Paqet(KCPおよびraw socketを利用する高速トランスポート)とGFW-Knocker(改変されたTCP/QUICなどを用いる手法)の両バックエンドをサポートし、同時に起動して並列運用やフェイルオーバーを行えます。Linux環境で動作するシェルスクリプトを中心に、バックエンドの起動・停止・監視・設定切替を行うことで、検閲環境下での接続安定性と柔軟性を高める設計です。MITライセンスで配布されています。

GitHub

リポジトリの統計情報

  • スター数: 55
  • フォーク数: 5
  • ウォッチャー数: 55
  • コミット数: 5
  • ファイル数: 6
  • メインの言語: Shell

主な特徴

  • Paqet(KCP/raw socket)とGFW-Knocker(改変TCP/QUIC)の二大バックエンドを同時運用できる
    • 並列運用により、ネットワーク状態に応じた柔軟なルーティングや冗長化が可能
  • シェルスクリプト一本で起動・停止・監視を実行
    • 追加のデーモン無しでLinux上の既存ツールと組み合わせやすい
  • 軽量でシンプル、MITライセンス
    • 環境への導入が容易でカスタマイズしやすい
  • 接続切替とログ監視を簡易サポート
    • 運用時のトラブルシューティングを助けるログ出力を想定

技術的なポイント

paqctlは主にシェル(bash等)で記述されたコントロールスクリプトをコアに、外部のトランスポート実装(Paqet・GFW-Knocker)をプロセスとして扱うアーキテクチャです。PaqetはKCPプロトコルや生ソケット(raw socket)を用いた高速・低遅延の転送を想定しており、UDPベースの伝送を補完するための再送制御やパケット整形を行います。一方GFW-Knockerは改変TCPやQUIC類似の振る舞いで検閲回避を狙う手法で、既存のTCP/QUIC実装を逸脱するパケット構成やハンドシェイクを用いることがあります。paqctlはこれらを並列に起動してプロセスマネジメント(PID管理、再起動ポリシー)、ログの集約、起動オプションの切替(ポート、暗号化やヘッダの有無など)を提供します。Linux専用と明記されており、カーネルレベルのソケット操作やネットワーク設定と併用することでルーティングやNATトラバーサルを補助可能です。設計上、軽量に保つためにGUIは無くCLI中心で、運用者が個別のバックエンド設定を編集して最適化する前提になっています。また、検閲回避ツールであるため利用は法令・利用規約に従う必要があり、導入時はネットワークポリシーやセキュリティ面の評価が推奨されます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file — 不要ファイルや一時ファイルの除外設定
  • LICENSE: file — MITライセンス(利用・改変・再配布が許可)
  • README.md: file — プロジェクト概要、使い方、注意事項の紹介
  • gfk: dir — GFW-Knocker 関連の実装や補助スクリプトを格納(バックエンド)
  • paqctl.sh: file — メインの制御スクリプト。バックエンド起動、監視、停止を行う
  • …他 1 ファイル

まとめ

軽量なシェルベースでPaqetとGFW-Knockerを同時運用できる、検閲回避向けの統合管理ツール。

リポジトリ情報:

READMEの抜粋:

                            _   _
 _ __   __ _  __ _  ___| |_| |
| '_ \ / _` |/ _` |/ __| __| |
| |_) | (_| | (_| | (__| |_| |
| .__/ \__,_|\__, |\___|\__|_|
|_|             |_|

Version License Server