Homing So

Homing So

🎉 哈喽啊~各位
github

Windows で sing-box をエレガントに使用する方法

sing-box とは何ですか#

sing-boxは、次世代の汎用プロキシプラットフォームであり、Xray-coreと clash に対抗しており、さまざまなプロトコルをサポートしています(その名の通り)そして、非常に強力なパフォーマンスを持っています。

sing-box クライアント#

現時点では、sing-box の公式のグラフィカルユーザーインターフェース(GUI)クライアントは次のプラットフォームをサポートしています:

一方、Windows デスクトップ版はまだ開発中ですが、次のようなサードパーティの GUI クライアントもあります:

ただし、これらのクライアントの利用性は低く、多くのエアポート(空港)が提供するリンクは直接使用できず、追加の学習コストも必要です。公式の Windows GUI クライアントはまだ開発中ですが、NON-GUI は完全にサポートされています。CLI の使用基盤を持つ方にとって、この記事は Windows での sing-box cli のエレガントな使用をサポートします。

sing-box のインストール#

sing-box cli をインストールするための 2 つの方法を提供します:

最初の方法については、詳細な説明は必要ありませんが、注意する必要があるのは、すべての AMD64 アーキテクチャには 2 つのバージョン(darwin、linux、および windows のすべて)があることに気付いたかもしれないことです。1 つは「amd64」とだけ表示されており、もう 1 つは「amd64v3」と表示されています。どちらを選択すればよいですか?

これは、GO 1.18 で導入されたアーキテクチャレベルです。異なる点は、コンパイラが使用できる命令セットです:

  • GOAMD64=v1(デフォルト):ベースライン。すべての 64 ビット x86 プロセッサで使用できます。
  • GOAMD64=v2:v1 のすべての命令セットに加えて、CMPXCHG16B、LAHF、SAHF、POPCNT、SSE3、SSE4.1、SSE4.2、SSSE3 が含まれます。
  • GOAMD64=v3:v2 のすべての命令セットに加えて、AVX、AVX2、BMI1、BMI2、F16C、FMA、LZCNT、MOVBE、OSXSAVE が含まれます。
  • GOAMD64=v4:v3 のすべての命令セットに加えて、AVX512F、AVX512BW、AVX512CD、AVX512DQ、AVX512VL が含まれます。

簡単に言えば、レベルが高いほど使用可能な命令も新しくなり、コンパイルされたコードのパフォーマンスがわずかに向上する可能性がありますが、互換性は低くなります。CPU がどの命令セットをサポートしているかわからない場合は、「amd64」を使用すれば間違いありません。

2 番目の方法は、Windows プラットフォームのパッケージマネージャを使用してインストールすることです。たとえば、ScoopChocolateyなどのパッケージマネージャを使用する方法は、公式ドキュメントを参照してください。

# Scoopを使用する場合
scoop install sing-box

# Chocolateyを使用する場合
choco install sing-box

この方法の利点は、sing-box の更新などについて心配する必要がないことです。これらのことは、パッケージマネージャが代わりに行ってくれます。

sing-box サービスの設定#

毎回ターミナルを開いて sing-box を使用するのは面倒ですので、Windows のサービスとして設定するのが最善です。これにより、再起動するたびに手動で実行する必要がなくなります。これらの作業を Windows に任せましょう!この目的を達成するために、WinSWを使用します。これは、任意の実行可能ファイルを Windows サービスとして設定できるツールです。

まず、ディレクトリを作成します。ここではディレクトリを sing-box と呼びます。次に、WinSW-x64.exeをダウンロードし、このディレクトリに配置し、名前をwinsw.exeに変更します。そして、winsw.xmlを作成し、このファイルを使用して sing-box を設定します。注意!これらの 2 つのファイルの名前は必ず同じである必要があります。そうしないと、WinSW は設定ファイルを読み取ることができません。

次に、winsw.xmlを編集し、次の内容を書き込みます:

<service>
  <id>sing-box</id>
  <name>sing-box</name>
  <description>This service runs sing-box continuous integration system.</description>
  <download from="https://your-subscription-link" to="%BASE%\config.json" auth="sspi" />
  <executable>C:\Users\homin\scoop\shims\sing-box.exe</executable>
  <arguments>run</arguments>
  <log mode="reset" />
  <onfailure action="restart" />
</service>

ここでいくつかのパラメータを説明します:

  • <download>:指定された<executable>が実行される前に、WinSW は指定された URL からリソースを取得し、ファイルとしてローカルに配置します。%BASE%は WinSW のディレクトリを指し、ここではサブスクリプションリンクの内容をconfig.jsonとしてリネームして現在のディレクトリに配置します。
  • <executable>:起動する実行可能ファイルを指定します。ここでは、Scoop でインストールされた sing-box のパスを指定しています。このパスは、sing-box をインストールした後にwhereis sing-boxを使用して取得できます。
  • <arguments>:実行可能ファイルに渡す引数を指定します。ここではrunを渡しています。実行位置が現在のパスにあるため、config.jsonのパスを指定する必要はありません。

完了したら、./winsw.exe -hを使用して WinSW のすべてのコマンドを表示できます:

./winsw.exe -h

今、./winsw.exe installを使用してサービスをインストールします。インストールが完了すると、システムは再起動するたびに自動的に sing-box を実行しますが、まずは./winsw.exe startを使用してサービスを起動します。現在のディレクトリにwinsw.wrapper.logファイルが表示され、このファイルにはサービスの起動時のログが含まれています。すべてが正常であれば、ログは次のようになるはずです:

2024-02-07 11:34:16,941 DEBUG - Starting WinSW in console mode
2024-02-07 11:34:19,748 DEBUG - Starting WinSW in console mode
2024-02-07 11:34:19,802 INFO  - Starting service 'sing-box (sing-box)'...
2024-02-07 11:34:20,512 DEBUG - Starting WinSW in service mode
2024-02-07 11:34:20,559 INFO  - Service 'sing-box (sing-box)' started successfully.
2024-02-07 11:34:20,629 INFO  - Downloading: https://your-subscription-link to C:\Users\homin\workspace\sing-box\config.json. failOnError=False
2024-02-07 11:34:23,004 INFO  - Starting C:\Users\homin\scoop\shims\sing-box.exe run
2024-02-07 11:34:23,043 INFO  - Started process 27484
2024-02-07 11:34:23,063 DEBUG - Forwarding logs of the process System.Diagnostics.Process (sing-box) to WinSW.ResetLogAppender

ディレクトリ内のwinsw.out.logには、sing-box の実行時に生成されるログが保存されます。

ここまでで、Windows での sing-box のシームレスな使用と、サブスクリプションの自動更新が実現されました。

参考#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。