• Stars
    star
    192
  • Rank 202,019 (Top 4 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

outline-go-tun2socks

Go package for building go-tun2socks-based clients for Outline and Intra (now with support for Choir metrics). For macOS, iOS, and Android, the output is a library; for Linux and Windows it is a command-line executable.

Prerequisites

  • macOS host (iOS, macOS)
  • make
  • Go >= 1.18
  • A C compiler (e.g.: clang, gcc)

Android

Set up

  • sdkmanager
    1. Download the command line tools from https://developer.android.com/studio.
    2. Unzip the pacakge as ~/Android/Sdk/cmdline-tools/latest/. Make sure sdkmanager is located at ~/Android/Sdk/cmdline-tools/latest/bin/sdkmanager
  • Android NDK 23
    1. Install the NDK with ~/Android/Sdk/cmdline-tools/latest/bin/sdkmanager "platforms;android-30" "ndk;23.1.7779620" (platform from outline-client, exact NDK 23 version obtained from sdkmanager --list)
    2. Set up the environment variables:
      export ANDROID_NDK_HOME=~/Android/Sdk/ndk/23.1.7779620 ANDROID_HOME=~/Android/Sdk
      
  • gomobile (installed as needed by make)

Build

make clean && make android

This will create build/android/{tun2socks.aar,tun2socks-sources.jar}

If needed, you can extract the jni files into build/android/jni with:

unzip build/android/tun2socks.aar 'jni/*' -d build/android

Apple (iOS and macOS)

Set up

  • Xcode
  • gomobile (installed as needed by make)

Build

make clean && make apple

This will create build/apple/Tun2socks.xcframework.

Linux and Windows

We build binaries for Linux and Windows from source without any custom integrations. xgo and Docker are required to support cross-compilation.

Set up

Build

For Linux:

make clean && make linux

This will create build/linux/tun2socks.

For Windows:

make clean && make windows

This will create build/windows/tun2socks.exe.

Intra (Android)

Same set up as for the Outline Android library.

Build with:

make clean && make intra

This will create build/intra/{tun2socks.aar,tun2socks-sources.jar}

More Repositories

1

outline-apps

Outline Client and Manager, developed by Jigsaw. Outline Manager makes it easy to create your own VPN server. Outline Client lets you share access to your VPN with anyone in your network, giving them access to the free and open internet.
TypeScript
8,301
star
2

outline-server

Outline Server, developed by Jigsaw. The Outline Server is a proxy server that runs a Shadowsocks instance and provides a REST API for access key management.
TypeScript
5,726
star
3

Intra

An experimental tool that allows you to test new DNS-over-HTTPS services on Android
Java
1,349
star
4

outline-releases

Shell
493
star
5

outline-shadowsocksconfig

Serialize Shadowsocks configuration data to and from SIP002 and legacy URI formats.
TypeScript
143
star
6

net-analysis

Tools, libraries and applications to analyze network measurements and detect interference.
Jupyter Notebook
93
star
7

outline-sdk

SDK to build network tools based on Outline components.
Go
75
star
8

choir

Go library for privacy-preserving error reporting using DNS
Go
29
star
9

outline-i18n

TypeScript
25
star
10

utls

Fork of the Go standard library with unsafe extensions, for expert clients with unusual needs.
Go
19
star
11

rids

Remote Intrusion Detection System
Python
10
star
12

Content-Distribution

Learn to protect your site with static mirroring
8
star
13

getsni

Single-purpose library for reading the SNI out of the TLS ClientHello
Go
8
star
14

censoredplanet-analysis

Pipeline for Analysing CensoredPlanet Data.
Python
5
star
15

eml

An experimental concurrent, hierarchical, event-based state machine programming language intended for implementing distributed management systems and modeling complex protocols.
TeX
5
star
16

dox-detector

PureBasic
2
star
17

outline-brand

1
star