tun2tor is a Rust library that creates a
utun (userspace tunnel) interface, and connects it to to a stream-based proxy like
tor. It is primarily intended to be embedded in the iCepa project, but it can also be used as a standalone utility.
Currently, only macOS and iOS are supported, although Linux support is almost there.
tun2tor as a standalone utility is primarily useful for debugging at the moment. Here is how to get it running:
$ git clone --recursive https://github.com/iCepa/tun2tor.git $ cd tun2tor $ cargo build $ sudo target/debug/tun2tor
$ tor --DnsPort 12345
Running it requires root privileges in order to create a
tun2tor is currently hardcoded in
main.rs to create an interface with an IP address of
172.30.20.1, look for a SOCKS proxy at
127.0.0.1:9050, and look for a DNS server at
In order to route traffic through the interface, you need to modify the route table:
$ sudo route add 126.96.36.199 172.30.20.1 $ dig @188.8.131.52 facebookcorewwwi.onion