This repository has been archived by the owner. It is now read-only.
A pipe-like SOCKS5 tunnel system.
Clone or download
Permalink
Failed to load latest commit information.
libsodium @ e6b7bb0 Submodule Mar 21, 2017
pipesocks Submodule Mar 21, 2017
.gitignore Fuck .DS_Store Jul 8, 2016
.gitmodules Submodule Mar 21, 2017
Dockerfile further reduce size of Docker Mar 9, 2017
LICENSE Initial commit May 27, 2016
README.md libtool autoconf automake Mar 21, 2017

README.md

pipesocks

pipesocks

pipesocks yvbbrjdr powered platform license

A pipe-like SOCKS5 tunnel system.

Introduction

Pipesocks is aimed at going through firewalls which are built by national force, with strong encryption and relay servers to avoid content censorship.

This software consists of 3 parts: pump, pipe, and tap. Pump is the server outside the firewall to provide Internet data for tap. Pipe is a relay server which unconditionally transfers data through pump and tap. Tap is a client running in local with SOCKS5 interface for native clients and connects to pump or pipe. Tap can also provide PAC script if you request it using HTTP GET. You can also get GFWList PAC script if you include "gfwlist" in the HTTP packet.

A pipe or a tap is valid only if:

  1. It is directly connected to the pump.

Or

  1. It is connected to a valid pipe.
This program supports TCP and UDP.

Tutorial

A full tutorial in Mandarin about how to use pipesocks is located here.

Download

Pre-compiled files for various platforms can be found here.

Compilation

General

Download & install Qt Creator with Qt (above 5.7) and libsodium. Open the project with Qt Creator, set include path and link path and compile.

Ubuntu Server

Since most Ubuntu servers don't hold a GUI, here is the way to deploy pipesocks in them.

Type these commands in your terminal:

sudo apt-get -y install git make build-essential qt5-default qt5-qmake libtool autoconf automake
cd /tmp/
git clone https://github.com/pipesocks/pipesocks.git
cd pipesocks/
git checkout stable
git submodule update --init --recursive
cd libsodium/
./autogen.sh
./configure
make && sudo make install
sudo cp /usr/local/lib/libsodium.so.18 /usr/lib/
cd ../pipesocks/
qmake server.pipesocks.pro && make
sudo cp pipesocks /usr/bin/

And you'll be able to run pipesocks.

macOS

To install libsodium, you can type these commands in your terminal:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
brew install libsodium

Windows

If you don't want to compile libsodium yourself, you can download the precompiled library right here.

Usage

Graphical User Interface

You can start pipesocks GUI by double-clicking the program icon or running it in the terminal, providing no arguments.

Command-Line Interface

Following are the commands to be typed in the terminal.

./pipesocks pump [-p Local Port] [-k Password]
./pipesocks pipe <-H Remote Host> [-P Remote Port] [-p Local Port]
./pipesocks tap <-H Remote Host> [-P Remote Port] [-p Local Port] [-k Password]

Dependencies

Qt

libsodium