Нет описания

Michael Goldberger d7dae0699b switch make.bash to use non-deprecated LDFLAGS invocations; refactor dockerfile to be more optimized for image size 10 лет назад
AndroidLibrary 2bab4d853b Record and report server entry source and receipt time 10 лет назад
ConsoleClient d7dae0699b switch make.bash to use non-deprecated LDFLAGS invocations; refactor dockerfile to be more optimized for image size 10 лет назад
SampleApps 2a368cc328 Fix: don't use default locale when uppercasing region code 10 лет назад
openssl fe9210b74e OpenDDL build doc: note that ANDROID_NDK_ROOT needs to be set 10 лет назад
psiphon 645f2eb2e9 Fix: panic when getting RemoteAddr when upstream proxy in use 10 лет назад
.gitignore 46596f0cdb Added LEGACY_DATA_STORE_FILENAME (for sqlite db); changed DATA_STORE_FILENAME to psiphon.boltdb; moved dataStore_alt.go to dataStore.go; added migrateDataStore.go (copies in previous code for working with sqlite datastore); modified new dataStore.go to call out to migrateDataStore PrepareMigrationEntries and MigrateEntries methods; updated gitignore to ignore compiled binaries; TODO: windows specific build flags and runtime.GOOS checks for new code?, ConsoleClient/psiphonClient.go import needs to return to the proper github path before merging 10 лет назад
.travis.yml d00ba275e3 Coverage for psiphon package only 10 лет назад
LICENSE 878ccd5658 initial version 11 лет назад
README.md d28f30e281 Add Coverage Status badge 10 лет назад

README.md

Build Status Coverage Status

Psiphon 3 Tunnel Core README

Overview

A Psiphon client component implemented in Go. This component provide core tunnel functionality, handling all aspects of connecting to Psiphon servers and relaying traffic through those servers. Local proxies provide an interface for routing traffic through the tunnel.

This 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 currently at the proof-of-concept stage. Current production Psiphon client code is available at our Psiphon 3 repository.

Setup

Build

  • Go 1.5 (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 HEAD)
      LDFLAGS="\
      -X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildDate=$BUILDDATE \
      -X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildRepo=$BUILDREPO \
      -X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildRev=$BUILDREV \
      "
      

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

  • The project builds and runs on Android. See the AndroidLibrary README for more information about building the Go component, and the AndroidApp README for a sample Android app that uses it.

Licensing

Please see the LICENSE file.

Contacts

For more information on Psiphon Inc, please visit our web site at:

www.psiphon.ca