Няма описание

Rod Hynes cc81d2e91d Merge pull request #511 from efryntov/master преди 7 години
ClientLibrary 49dee335f7 Remove unused struct преди 7 години
ConsoleClient 357e4d6754 Dump profiles during delayed/hung shutdown преди 7 години
MobileLibrary 6e4b09ef5f Added proguard rule to keep psi.* classes to the Android library преди 7 години
Server d74692910c Truncate the panic log field when it exceeds the ELK maximum преди 7 години
contributors be51a98b62 Sign CLA преди 7 години
psiphon 6d1bdbcf2a Fix: comments преди 7 години
vendor 15bf18769a Update vendored utls преди 7 години
.gitignore 7f591512c3 Update C measurement lib and add example преди 7 години
.travis.yml 158caea562 Add server-side SSH KEX randomization преди 7 години
CLA-entity.md 39d02d38f5 Fix Contributor License Agreement преди 10 години
CLA-individual.md 39d02d38f5 Fix Contributor License Agreement преди 10 години
CONTRIBUTING.md ac381d0f93 Added Contributor License Agreement преди 10 години
LICENSE 878ccd5658 initial version преди 11 години
README.md dfb41a67f0 Fix acknowledgements text преди 7 години

README.md

Build Status Coverage Status

Psiphon 3 Tunnel Core README

Overview

Psiphon client and server components implemented in Go. These components provides core tunnel functionality, handling all aspects of evading blocking and relaying traffic through Psiphon. In the client, local proxies provide an interface for routing traffic through the tunnel.

The client component does not include a UI and does not handle capturing or routing local traffic. These major aspects are handled by other parts of Psiphon client applications.

Status

This project is in production and used as the tunneling engine in our Windows and Android clients, which are available at our Psiphon 3 repository.

Client Setup

Build

  • Go 1.9 (or higher) is required.
  • This project builds and runs on recent versions of Windows, Linux, and Mac OS X.
  • Note that the psiphon package is imported using the absolute path github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon; without further local configuration, go will use this version of the code and not the local copy in the repository.
  • In this repository, run go build in ConsoleClient to make the ConsoleClient binary, a console Psiphon client application.

    • Build versioning info may be configured as follows, and passed to go build in the -ldflags argument:

      BUILDDATE=$(date --iso-8601=seconds)
      BUILDREPO=$(git config --get remote.origin.url)
      BUILDREV=$(git rev-parse --short HEAD)
      GOVERSION=$(go version | perl -ne '/go version (.*?) / && print $1')
      DEPENDENCIES=$(echo -n "{" && go list -f '{{range $dep := .Deps}}{{printf "%s\n" $dep}}{{end}}' | xargs go list -f '{{if not .Standard}}{{.ImportPath}}{{end}}' | xargs -I pkg bash -c 'cd $GOPATH/src/pkg && echo -n "\"pkg\":\"$(git rev-parse --short HEAD)\","' | sed 's/,$/}/')
      
      LDFLAGS="\
      -X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common.buildDate=$BUILDDATE \
      -X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common.buildRepo=$BUILDREPO \
      -X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common.buildRev=$BUILDREV \
      -X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common.goVersion=$GOVERSION \
      -X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon/common.dependencies=$DEPENDENCIES \
      "
      

Configure

  • Configuration files are standard text files containing a valid JSON object. Example:

  {
      "PropagationChannelId" : "<placeholder>",
      "SponsorId" : "<placeholder>",
      "LocalHttpProxyPort" : 8080,
      "LocalSocksProxyPort" : 1080
  }

Note: The lines <!--BEGIN-SAMPLE-CONFIG--> and <--END-SAMPLE-CONFIG--> (visible in the raw Markdown) are used by the config test. Do not remove them.

  • All config file parameters are documented here.
  • Replace each <placeholder> with a value from your Psiphon server. The Psiphon server-side stack is open source and can be found in our Psiphon 3 repository.

Run

  • Run ./ConsoleClient --config psiphon.config where psiphon.config is created as described in the Configure section above

Other Platforms

Acknowledgements

Psiphon Tunnel Core uses:

Licensing

Please see the LICENSE file.

Contacts

We maintain a developer mailing list at [email protected]. For more information about Psiphon Inc., please visit our web site at www.psiphon.ca.