Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eycorsican/go-tun2socks
A tun2socks implementation written in Go.
https://github.com/eycorsican/go-tun2socks
tun2socks
Last synced: about 2 months ago
JSON representation
A tun2socks implementation written in Go.
- Host: GitHub
- URL: https://github.com/eycorsican/go-tun2socks
- Owner: eycorsican
- License: mit
- Archived: true
- Created: 2018-06-25T11:48:00.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-02-01T12:18:10.000Z (almost 4 years ago)
- Last Synced: 2024-05-17T06:49:43.687Z (7 months ago)
- Topics: tun2socks
- Language: C
- Size: 2.5 MB
- Stars: 1,283
- Watchers: 44
- Forks: 431
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- stars - eycorsican/go-tun2socks
README
# go-tun2socks
[![Build Status](https://travis-ci.com/eycorsican/go-tun2socks.svg?branch=master)](https://travis-ci.com/eycorsican/go-tun2socks)
A tun2socks implementation written in Go.
> If you're looking for an easy to use `tun2socks` implementation for iOS, you might be interested in [`leaf`](https://github.com/eycorsican/leaf) and [`ileaf`](https://github.com/eycorsican/ileaf).
> `leaf` [implements `tun2socks`](https://github.com/eycorsican/leaf/tree/master/leaf/src/proxy/tun/netstack) and it's written in Rust, with significantly less memory usage and significantly better performance compares to the Go version.To run the tun2socks command line program, depending on OS, you may need to run it as root, create the TUN interface and/or configure IP address of the interface manually. Moreover, you should add corresponding routes to the routing table manually. Mind that you often want to use some different system DNS resolvers, and your proxy server should support UDP.
To use go-tun2socks as a library in your own project, refer to the following files/repos for some ideas:
- https://github.com/eycorsican/go-tun2socks/tree/master/cmd/tun2socks
- https://github.com/eycorsican/go-tun2socks-mobile
- https://github.com/Jigsaw-Code/outline-go-tun2socksIt's recommended to write your own SOCKS layer. For example, you can create a "tun2shadowsocks" program by implementing a Shadowsocks handler, see https://github.com/Jigsaw-Code/outline-go-tun2socks/tree/master/shadowsocks
It's also recommended to write your own TUN layer to connect the TUN interface and go-tun2socks, see https://github.com/eycorsican/go-tun2socks/tree/master/tun for examples.
The following projects are using go-tun2socks:
- https://github.com/mellow-io/mellow
- https://github.com/eycorsican/kitsunebi-android