How do I install Psiphon on Ubuntu 14.04 LTS (Step by Step)

Take a look for this link, it should works for Ubuntu using Wine.

https://web.archive.org/web/20160113152746/https://community.linuxmint.com/tutorial/view/1926

Install wine:

sudo apt-get update
sudo apt-get install wine

Install Required Windows DLLs using Wintricks:

  • Run Winetricks(from ubuntu dash)
  • Choose "Select the default wineprefix" and then press OK.
  • Choose "Install a Windows DLL or component" and then press OK.
  • Check "wininet" and "winhttp" and then press OK.

Run Psiphon3 and Use the service it provides:

  • Simply run Psipon3.exe
  • It will provide its service using an "HTTP proxy on localhost port 8080".
  • Use "FoxyProxy" extension on Firefox or "Proxy SwitchySharp" extension on chrome for accessing the service.

full details and all rights reserved for the above link


Windows version of Psiphon on wine does not work. Instead of using wine, use native psiphon script for linux.

This linux version by Psiphon Inc. is much better and multifunctional than the windows one.

Here is the simplified,re-shared, modified version of psiphon. Readme contains a simple step by step guide for running psiphon through terminal.

Git Repo : https://github.com/thispc/psiphon

Clone the repo to get started.

$ git clone https://github.com/thispc/psiphon.git

$ cd psiphon

Open README.md for instructions.

Please ask in case of queries.


For the moment the only solution is use the phone as proxy using ssh.

@see https://askubuntu.com/a/881035/48496


Psiphon Inc. provides Linux binary of psiphon-tunnel-core . It does not contain a GUI but very useful. Download it from their GitHub repository.

After downloading, make it executable with the following:

chmod u+x /path/to/downloaded/file

Now create a folder and put the following contents to a file named psiphon.config inside that folder (copied from my own psiphon.config) :

{
    "Authorizations":[],
    "DeviceRegion":"US",
    "EgressRegion":"",
    "EmitDiagnosticNetworkParameters":true,
    "EmitDiagnosticNotices":true,
    "EmitServerAlerts":true,
    "LocalHttpProxyPort":8080,
    "LocalSocksProxyPort":1080,
    "NetworkID":"949F2E962ED7A9165B81E977A3B4758B",
    "ObfuscatedServerListRootURLs":
    [
        {
            "OnlyAfterAttempts":0,
            "SkipVerify":false,
            "URL":"aHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL3BzaXBob24vd2ViL21qcjQtcDIzci1wdXdsL29zbA=="
        },
        {
            "OnlyAfterAttempts":2,
            "SkipVerify":true,
            "URL":"aHR0cHM6Ly93d3cubGF0aW5vZmlybWRkaG9zdHMuY29tL3dlYi9tanI0LXAyM3ItcHV3bC9vc2w="
        },
        {
            "OnlyAfterAttempts":2,
            "SkipVerify":true,
            "URL":"aHR0cHM6Ly93d3cuY29ycG9yYXRlaGlyZXByZXNzdGguY29tL3dlYi9tanI0LXAyM3ItcHV3bC9vc2w="
        },
        {
            "OnlyAfterAttempts":2,
            "SkipVerify":true,
            "URL":"aHR0cHM6Ly93d3cuZ3BhbGx0aGluZ3NudW1iZXJ3ZWF0aGVyLmNvbS93ZWIvbWpyNC1wMjNyLXB1d2wvb3Ns"
        }
    ],
    "PropagationChannelId":"92AACC5BABE0944C",
    "RemoteServerListSignaturePublicKey":"MIICIDANBgkqhkiG9w0BAQEFAAOCAg0AMIICCAKCAgEAt7Ls+/39r+T6zNW7GiVpJfzq/xvL9SBH5rIFnk0RXYEYavax3WS6HOD35eTAqn8AniOwiH+DOkvgSKF2caqk/y1dfq47Pdymtwzp9ikpB1C5OfAysXzBiwVJlCdajBKvBZDerV1cMvRzCKvKwRmvDmHgphQQ7WfXIGbRbmmk6opMBh3roE42KcotLFtqp0RRwLtcBRNtCdsrVsjiI1Lqz/lH+T61sGjSjQ3CHMuZYSQJZo/KrvzgQXpkaCTdbObxHqb6/+i1qaVOfEsvjoiyzTxJADvSytVtcTjijhPEV6XskJVHE1Zgl+7rATr/pDQkw6DPCNBS1+Y6fy7GstZALQXwEDN/qhQI9kWkHijT8ns+i1vGg00Mk/6J75arLhqcodWsdeG/M/moWgqQAnlZAGVtJI1OgeF5fsPpXu4kctOfuZlGjVZXQNW34aOzm8r8S0eVZitPlbhcPiR4gT/aSMz/wd8lZlzZYsje/Jr8u/YtlwjjreZrGRmG8KMOzukV3lLmMppXFMvl4bxv6YFEmIuTsOhbLTwFgh7KYNjodLj/LsqRVfwz31PgWQFTEPICV7GCvgVlPRxnofqKSjgTWI4mxDhBpVcATvaoBl1L/6WLbFvBsoAUBItWwctO2xalKxF5szhGm8lccoc5MZr8kfE0uxMgsxz4er68iCID+rsCAQM=",
    "RemoteServerListURLs":
    [
        {
            "OnlyAfterAttempts":0,
            "SkipVerify":false,
            "URL":"aHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL3BzaXBob24vd2ViL21qcjQtcDIzci1wdXdsL3NlcnZlcl9saXN0X2NvbXByZXNzZWQ="
        },
        {
            "OnlyAfterAttempts":2,
            "SkipVerify":true,
            "URL":"aHR0cHM6Ly93d3cubGF0aW5vZmlybWRkaG9zdHMuY29tL3dlYi9tanI0LXAyM3ItcHV3bC9zZXJ2ZXJfbGlzdF9jb21wcmVzc2Vk"
        },
        {
            "OnlyAfterAttempts":2,
            "SkipVerify":true,
            "URL":"aHR0cHM6Ly93d3cuY29ycG9yYXRlaGlyZXByZXNzdGguY29tL3dlYi9tanI0LXAyM3ItcHV3bC9zZXJ2ZXJfbGlzdF9jb21wcmVzc2Vk"
        },
        {
            "OnlyAfterAttempts":2,
            "SkipVerify":true,
            "URL":"aHR0cHM6Ly93d3cuZ3BhbGx0aGluZ3NudW1iZXJ3ZWF0aGVyLmNvbS93ZWIvbWpyNC1wMjNyLXB1d2wvc2VydmVyX2xpc3RfY29tcHJlc3NlZA=="
        }
    ],
    "ServerEntrySignaturePublicKey":"sHuUVTWaRyh5pZwy4UguSgkwmBe0EHtJJkoF5WrxmvA=",
    "SponsorId":"1BC527D3D09985CF",
    "UseIndistinguishableTLS":true
}

Now start psiphon with the following:

/path/to/downloaded/file -formatNotices -dataRootDirectory /path/to/created/folder -config /path/to/created/folder/psiphon.config

Explanation of arguments (from output of -help ):

  -config string
        configuration input file
  -dataRootDirectory string
        directory where persistent files will be stored
  -formatNotices
        emit notices in human-readable format

Here I used -dataRootDirectory because without this argument psiphon would create a folder named ca.psiphon.PsiphonTunnel.tunnel-core at current working directory every time it starts, this argument prevents it.

After executing the command above successfully you should see lots of outputs. When successfully connected you should see something like this:

2020-08-08T14:28:05.767Z Homepage {"url":"https://ipfounder.net/?sponsor_id=1BC527D3D09985CF\u0026sponsor=psiphon\u0026client_region=BD\u0026client_asn=24432\u0026client_platform=windows\u0026secret=580EfjEI29xL3hoyU6dgP4vSEVxdcGI7JDFkxgjds7PHulSEF0wmORpvzbqxyTwYtpowsY4xMFnfWEnTghe6l8jiV9K5QSZoir2i6fDeKJD6EhL6DkoYTEMu2EE9YJvy3LdCUZ7ncdVC6ipgWx06wznvDLbY1ajfcfRGCpfsQJei2q6tb0GSFh1QK3x3qXKwyjmNPc5J"}

Or you can append 2>&1 | grep 'Homepage {"url"' to above command which will , here 2>&1 redirects any output from stderr to stdout and grep searchs for Homepage {"url" which indicates connection success.

If you want to use another port for HTTP proxy then change the value of LocalHttpProxyPort and to use another port for Socks proxy then change the value of LocalSocksProxyPort .

After successful connection configure proxy settings in Settings. If you used default configuration for psiphon you can setup proxy settings like this:

Proxy configuration settings