Arachnidium README

The project's README from github.com/p2r3/Arachnidium. As one markdown file: README.md.

Arachnidium

Data-optimizing HTTP(S) proxy, powered by mitmproxy.

Setup

  1. Find a home server - this can be any internet-connected computer, like an old laptop. Currently, pre-built releases exist for x64 Windows and Linux. If you need ARM or Mac support, clone the repository and run it from source.
  2. On your home server, download the portable archive for your system in Releases.
  3. Extract the archive and run Arachnidium.exe (or Arachnidium on Linux).
  4. Install the WireGuard client on your device: Android | iOS
  5. Add the VPN preset using the QR code displayed in Arachnidium. Alternatively, use the automatically generated wireguard.cfg file.
  6. This is where things get a little hairy - if you want to actually use this outside of your home WiFi, you'll have to configure your network to listen for incoming VPN connections. To do this, you will have to forward UDP port 51820 from your home server to your router. The exact process for this is vastly different for every network and router, and it would be impossible to give a universal guide in this document, so please research this yourself. Searching for "port forward udp <router model>" should be enough to get you on the right track. Alternatively, call your internet service provider and ask if they can help.
  7. Connect to the VPN and visit mitm.it on your phone's browser. Follow the instructions there to set up the certificate authority. Make sure to read all of the instructions.

If you run into issues, please make sure you've followed these steps carefully. Do your own troubleshooting first to make sure the issue isn't on your end (e.g. misconfigured network). Please do not message me personally asking for help - I sadly don't have the time (or patience) to be able to assist everyone, sorry.

Configuration

There are two ways to configure Arachnidium: via the graphical interface, or by editing defaults.json. Changes made in the GUI are not saved between restarts - for that, use the JSON file. If you want to run Arachnidium without the GUI, set ENABLE_GUI to false in defaults.json.

Running from source

To run this project from source code without building it (for development purposes, or to run on unsupported platforms):

  1. Install Python and uv.
  2. Install Bun.
  3. Clone this repository with submodules (using --recursive).
  4. Run uv run main.py
  5. In another terminal, change directory to bun-api and run bun i, then bun run index.ts

Contributing

Contributions are welcome, though please note that I am personally unlikely to continue working on this project in the long term. This was something that I've wanted to experiment with for a while, but unlike some of my other projects, I have little intention of actually growing this into its own thing. I might still merge pull requests from time to time, but I probably won't close issues on my own (unless it's something critical).

Before submitting an issue, make sure you've read and followed the usage instructions carefully and have done your own troubleshooting. I would prefer that you do not use LLMs in submitted code, but if you do, please be transparent about it. State where an LLM was used, and explain (in your own words) what it did.

Acknowledgements

The name "Arachnidium" is a homage to nature's earliest web developers. The arachnidium is, generally, the part of a spider's body responsible for producing webs. It also sounds really cool.

Arachnidium (p2r3/Arachnidium)

Searching Database…

这是什么?Arachnidium 是一个由 mitmproxy 驱动的自托管 HTTP(S) 优化与压缩代理,旨在运行在家里的闲置电脑上,让你的设备通过 WireGuard VPN 隧道连接使用。
这是我手机上的应用,还是运行在家用服务器上的东西?它是一个服务器应用:你把它安装并运行在一台常开的家用电脑上(旧笔记本也行),然后让手机或笔记本通过 WireGuard VPN 连接到它,这样你的流量就会由 mitmproxy 代理并压缩。
怎么让 Arachnidium 在我的网络里跑起来?从 Releases 下载适合你操作系统的便携压缩包,解压并运行 Arachnidium.exe(Linux 上为 Arachnidium),在设备上安装 WireGuard 客户端,然后通过二维码或生成的 wireguard.cfg 文件添加 VPN 配置。
在家里的 WiFi 之外使用它有什么坑?在外使用时,你必须把家用服务器的 UDP 51820 端口转发到路由器上,而具体步骤因路由器/运营商差异极大,没有提供通用指南;此外,作者也不打算长期积极地扩展或维护这个项目。
哪些设备可以作为客户端连接它?任何装有 WireGuard 客户端的设备都可以;README 特别链接了 Android 和 iOS 的设置说明。
它能以明文看到我的 HTTPS 流量吗?能——Arachnidium 依赖 mitmproxy,因此你必须在设备上访问 mitm.it 并安装本地生成的证书颁发机构,这让代理能在流量到达你之前解密并重新压缩你的 HTTPS 流量。
mitmproxy 在这里到底做什么?它拦截并解密你的 HTTPS 连接,让 Arachnidium 能够压缩并优化传输中的数据,然后再传回你的设备。
不开 GUI 也能配置它吗?可以,设置可以直接在 defaults.json 中编辑,而且 GUI 里的更改如果不保存到那里,重启后就不会保留;你也可以把 ENABLEGUI 设为 false 来彻底禁用 GUI。
它为什么叫 Arachnidium?这是一个俏皮的引用:arachnidium 指蜘蛛体内产生蛛网的器官——呼应“自然界最早的 web 开发者”。
Creator
p2r3
Size
0.2 MB
Stars
398
Age
25d
Commits · 90 Days