🌐

WindowsでTorをビルドする

2025/02/20に公開

Torのデーモンはリレーや出口ノードをホストしたり、Socks5プロキシとしてTorネットワークを利用する場合に使用されます。この記事では、公式ではエキスパートバンドルとして配布されているものをソースからビルドする方法を紹介します。

https://gitlab.torproject.org/tpo/core/tor

ビルドにはMSYS2/MinGW64|Clang64が必要です。MinGW/GCCとClangの二通り紹介します。

MinGW/GCC

gcc --version
pacman -S mingw-w64-x86_64-gcc mingw-w64-gcc-x86_64-toolchain

Clang

clang -v
pacman -S mingw-w64-x86_64-clang mingw-w64-clang-x86_64-toolchain

依存関係

pacman -S --needed --noconfirm autoconf automake libtool make libevent-devel

libeventはMinGW64(/mingw64)とClang(/clang64)でインストールされる場所が異なるので個別にインストールする必要があります。

  • GCC:
    pacman -S --needed --noconfirm mingw-w64-x86_64-libevent
    
  • Clang:
    pacman -S --needed --noconfirm mingw-w64-clang-x86_64-libevent
    

ビルド

git clone https://gitlab.torproject.org/tpo/core/tor.git
cd tor
./autogen.sh

スタンドアロンのtor.exeをビルドするために--enable-static-torを指定してTor含め全ての依存関係を静的リンクします。

./configure --enable-static-tor \
    --with-libevent-dir=$MINGW_PREFIX/lib \
    --with-openssl-dir=$MINGW_PREFIX/lib \
    --with-zlib-dir=$MINGW_PREFIX/lib \
    --disable-unittests --disable-module-dirauth \
    --disable-manpage --disable-html-manual \
    --disable-asciidoc
make

ビルド成果物はtor/src/app/tor.exetor/src/tools/tor-gencert.exeに生成されます。

Discussion