Giter Site home page Giter Site logo

woozoo86 / psiphon Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thispc/psiphon

0.0 1.0 0.0 2.33 MB

A multi-functional version of a popular network circumvention tool

License: GNU General Public License v3.0

Dockerfile 0.01% Python 1.37% Makefile 0.87% C 80.70% C++ 0.90% Shell 5.79% M4 3.50% Roff 6.55% Perl 0.05% Awk 0.25%

psiphon's Introduction

psiphon

Psiphon is a circumvention tool from Psiphon Inc. that utilizes VPN, SSH and HTTP Proxy technology to provide you with uncensored access to Internet content. Your Psiphon client will automatically learn about new access points to maximize your chances of bypassing censorship.

Psiphon is designed to provide you with open access to online content. Psiphon does not increase your online privacy, and should not be considered or used as an online security tool. This is a multifunctional modified linux version of the original tool by Psiphon Inc.

Forked the pyclient from https://bitbucket.org/psiphon/psiphon-circumvention-system/

Getting Started (Linux and Mac OS X 10.11 or older) (For Mac OS X (After 10.12) and Windows, instructions are at the end of this README)

$ git clone <repo url>
$ cd psiphon

Prerequisites

Things needed to get it working.

  • python 2.7 and above
  • python-pip
$ sudo apt-get install python-pip

Installing

A step by step guide :

  • Creating ssh binary

    However an ssh binary is provided for ubuntu 14.04, it is highly recommended to compile your ssh binary to remove compatibility issues.

    psiphon$ cd openssh-5.9p1
    openssh-5.9p1$ ./configure

    Install the required dependencies if error occurs. Use make command after successful verification of dependencies.

    openssh-5.9p1$ make

    A ssh binary will be created on successful completion of make command. After removing existing binary file, copy the new binary to main psiphon folder.

    openssh-5.9p1$ cd ..
    psiphon$ rm ssh
    psiphon$ cp openssh-5.9p1/ssh .

    Your binary is ready for running.

  • Updating server list

    However a server list has been provided, it is highly recommended to update servers from time to time.

    psiphon$ python psi_client.py -u

    It requires Internet connection. If error occurs in the script, Use pip to install required packages.

    Example:

    If error is "ImportError: No module named wget", Run the following command:

    $ sudo pip install wget

    etc.

    Upon successful completion, Use the following command to list all the servers.

    For obfuscated ssh (OSSH) servers only :

    psiphon$ python psi_client.py -s 

    For All servers including non obfuscated ssh ones :

    psiphon$ python psi_client.py -s -a 

    For further filtering region wise, add -r filter to the above commands. Ex, For India Servers (only ossh ones) :

    psiphon$ python psi_client.py -s -r IN
  • Final Step

    Use the Following command to run psiphon:

    psiphon$ python psi_client.py

    Connecting region wise (Lets say India):

    psiphon$ python psi_client.py -r IN

    These commands will establish a socks proxy on default port 1080. To change the default port use -p flag:

    psiphon$ python psi_client.py -r IN -p 1234

    To see all India servers add -s flag to the above commands:

    psiphon$ python psi_client.py -r IN -p 1234 -s

    To Connect to specific ip server with a serial number 2 from the above result:

    psiphon$ python psi_client.py -r IN -p 1234 -i 2

    In case of error: example- "ImportError: No module named pexpect"

    $ sudo pip install pexpect

    Make alias for convenience:

    $ echo 'alias psiphon="cd ~/psiphon && python psi_client.py"' >> ~/.bashrc

    Now on a new terminal:

    $ psiphon -h
    $ psiphon

    Psiphon should now be running successfully on your machine.

Commands:

psiphon$ python psi_client.py -h
Usage: psi_client.py [options]

Options:
  -h, --help            show this help message and exit
  -e, --expose          Expose SOCKS proxy to the network
  -t, --test-servers    Test all servers
  -r REGION, --reg=REGION
                        Regions
  -s, --show            Show available servers
  -p PORT, --port=PORT  Local Port
  -u, --update          Update Servers
  -i SID, --sid=SID     Server number
  -a, --all             Include Non OSSH servers also

Testing servers

All servers:

psiphon$ python psi_client.py -t

Region Specific:

psiphon$ python psi_client.py -t -r IN

Exposing Port

This can be used to share socks proxy created over a specific port.

Default (port 1080):

psiphon$ python psi_client.py -e

Specific (Ex- port 1234):

psiphon$ python psi_client.py -e -p 1234

For Mac OS X (After 10.12) and Windows (Docker Instructions)

You can use the docker image of the psiphon client and run psiphon on any OS.

First Time:

Get Docker https://www.docker.com
docker pull thepsiphonguys/psiphon

docker run -d -it -p 127.0.0.1:1080:1080 --name psiphon thepsiphonguys/psiphon

Subsequent runs:

docker start psiphon

docker exec -it psiphon bash

After that you will get access to the shell and can use all the psiphon commands. This method forwards all the docker's traffic on port 1080 (psiphon's default port) to the machine's 1080 port.

To stop psiphon

docker stop psiphon

PS: remember to use the -e option of psiphon otherwise it will not work

PPS: You can also use docker on linux if you do not wan't to compile your own ssh binary. Docker is system independent.

PPPS: If you do not want to use our docker image, it is totally fine. You can create your own docker image with the help of the Dockerfile. Refer to https://docs.docker.com/engine/reference/commandline/build/ for more details on how to build the docker image.

docker build -t psiphon .

psiphon's People

Contributors

thispc avatar tanmaytat11 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.