xitongsys / pangolin

VPN written by Golang

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

logo Pangolin

Pangolin is a Go implenmentation of VPN.

  • Support TCP/UDP/PTCP connection. (I suggest PTCP, which has the same performance with UDP and avoid some UDP issues)
  • For PTCP/TCP, it supports multi-user authentication, encryption transmission. For UDP, no authentication.
  • Using Docker/VM, it supports Linux/Windows/Mac.
  • For client, it supports Linux/Windows/Android now.

Server

Pangolin server can only run natively on Linux. But you can use docker to run it on Windows and Mac.

  • Download the latest release package and cd pangolin_linux/

  • Change the environment variables in start.sh to your own.

SERVERIP=0.0.0.0
SERVERPORT=12345
TOKENS='["token01", "token02"]'
ROLE=SERVER
  • Start the pangolin server: bash start.sh

Client

Linux

Same steps with the server. But ROLE=CLIENT.

SERVERIP=your.server.ip.address
SERVERPORT=12345
TOKENS='["token01", "token02"]'
ROLE=CLIENT

Windows

Windows Client

Android

Android Client

Docker

Build

  • cd pangolin/docker
  • Change the variables in pangolin_docker.sh
SOURCE_DIR="../"
SERVERIP="0.0.0.0"
SERVERPORT="12345"
TOKENS='["token01", "token02"]'
ROLE="SERVER"
  • Build: bash pangolin_docker.sh build

Start/Stop

bash pangolin_docker.sh start
bash pangolin_docker.sh stop

Status

This project is still in progress and you can contribute to it. Anything is welcome !

  • Mac/iOS client
  • Improve Android client
  • Add UT/Doc

About

VPN written by Golang

License:Apache License 2.0


Languages

Language:Go 92.4%Language:Shell 6.9%Language:Dockerfile 0.7%