Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nwtgck/go-piping-tunnel
Tunneling from anywhere via Piping Server
https://github.com/nwtgck/go-piping-tunnel
cli http nat-traversal openssl piping-server port-forwarding socks socks5 tunneling
Last synced: 2 months ago
JSON representation
Tunneling from anywhere via Piping Server
- Host: GitHub
- URL: https://github.com/nwtgck/go-piping-tunnel
- Owner: nwtgck
- License: mit
- Created: 2020-07-08T12:02:58.000Z (over 4 years ago)
- Default Branch: develop
- Last Pushed: 2024-09-24T19:57:32.000Z (4 months ago)
- Last Synced: 2024-10-04T13:25:31.855Z (3 months ago)
- Topics: cli, http, nat-traversal, openssl, piping-server, port-forwarding, socks, socks5, tunneling
- Language: Go
- Homepage:
- Size: 280 KB
- Stars: 20
- Watchers: 4
- Forks: 3
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# piping-tunnel
![CI](https://github.com/nwtgck/go-piping-tunnel/workflows/CI/badge.svg)Tunneling over HTTP with [Piping Server](https://github.com/nwtgck/piping-server)
## Install for Windows
[Download](https://github.com/nwtgck/go-piping-tunnel/releases/download/v0.10.1/piping-tunnel-0.10.1-windows-amd64.zip)## Install for macOS
```bash
brew install nwtgck/piping-tunnel/piping-tunnel
```## Install for Ubuntu
```bash
wget https://github.com/nwtgck/go-piping-tunnel/releases/download/v0.10.1/piping-tunnel-0.10.1-linux-amd64.deb
sudo dpkg -i piping-tunnel-0.10.1-linux-amd64.deb
```Get more executables in the [releases](https://github.com/nwtgck/go-piping-tunnel/releases).
## Help
You can use `$PIPING_SERVER` env to set default Piping Server.
```txt
Tunneling from anywhere with Piping ServerUsage:
piping-tunnel [flags]
piping-tunnel [command]Examples:
Normal:
piping-tunnel server -p 22 aaa bbb
piping-tunnel client -p 1022 aaa bbbShort:
piping-tunnel server -p 22 mypath
piping-tunnel client -p 1022 mypathMultiplexing:
piping-tunnel server -p 22 --yamux aaa bbb
piping-tunnel client -p 1022 --yamux aaa bbbSOCKS proxy like VPN:
piping-tunnel socks --yamux aaa bbb
piping-tunnel client -p 1080 --yamux aaa bbbEnvironment variable:
$PIPING_SERVER for default Piping ServerAvailable Commands:
client Run client-host
completion Generate the autocompletion script for the specified shell
help Help about any command
server Run server-host
socks Run SOCKS serverFlags:
--dns-server string DNS server (e.g. 1.1.1.1:53)
-H, --header stringArray HTTP header
-h, --help help for piping-tunnel
--http-read-buf-size int HTTP read-buffer size in bytes (default 4096)
--http-write-buf-size int HTTP write-buffer size in bytes (default 4096)
-k, --insecure Allow insecure server connections when using SSL
--progress Show progress (default true)
-s, --server string Piping Server URL (default "https://ppng.io")
--verbose int Verbose logging level
-v, --version show versionUse "piping-tunnel [command] --help" for more information about a command.
```The following help is for server-host.
```
Run server-hostUsage:
piping-tunnel server [flags]Flags:
--cipher-type string Cipher type: aes-ctr, openssl-aes-128-ctr, openssl-aes-256-ctr, openpgp (default "aes-ctr")
--cs-buf-size uint Buffer size of client-to-server in bytes (default 4096)
-h, --help help for server
--host string Target host (default "localhost")
--pass string Passphrase for encryption
--pbkdf2 string e.g. {"iter":100000,"hash":"sha256"}
--pmux Multiplex connection by pmux (experimental)
--pmux-config string pmux config in JSON (experimental) (default "{\"hb\": true}")
-p, --port int TCP port of server host
-c, --symmetric Encrypt symmetrically
--unix-socket string Unix socket of server host
--yamux Multiplex connection by hashicorp/yamuxGlobal Flags:
--dns-server string DNS server (e.g. 1.1.1.1:53)
-H, --header stringArray HTTP header
--http-read-buf-size int HTTP read-buffer size in bytes (default 4096)
--http-write-buf-size int HTTP write-buffer size in bytes (default 4096)
-k, --insecure Allow insecure server connections when using SSL
--progress Show progress (default true)
-s, --server string Piping Server URL (default "https://ppng.io")
--verbose int Verbose logging level
```The following help is for client-host.
```
Run client-hostUsage:
piping-tunnel client [flags]Flags:
--cipher-type string Cipher type: aes-ctr, openssl-aes-128-ctr, openssl-aes-256-ctr, openpgp (default "aes-ctr")
-h, --help help for client
--pass string Passphrase for encryption
--pbkdf2 string e.g. {"iter":100000,"hash":"sha256"}
--pmux Multiplex connection by pmux (experimental)
--pmux-config string pmux config in JSON (experimental) (default "{\"hb\": true}")
-p, --port int TCP port of client host
--sc-buf-size uint Buffer size of server-to-client in bytes (default 4096)
-c, --symmetric Encrypt symmetrically
--unix-socket string Unix socket of client host
--yamux Multiplex connection by hashicorp/yamuxGlobal Flags:
--dns-server string DNS server (e.g. 1.1.1.1:53)
-H, --header stringArray HTTP header
--http-read-buf-size int HTTP read-buffer size in bytes (default 4096)
--http-write-buf-size int HTTP write-buffer size in bytes (default 4096)
-k, --insecure Allow insecure server connections when using SSL
--progress Show progress (default true)
-s, --server string Piping Server URL (default "https://ppng.io")
--verbose int Verbose logging level
```The following help is for SOCKS proxy.
```
Run SOCKS serverUsage:
piping-tunnel socks [flags]Flags:
--cipher-type string Cipher type: aes-ctr, openssl-aes-128-ctr, openssl-aes-256-ctr, openpgp (default "aes-ctr")
-h, --help help for socks
--pass string Passphrase for encryption
--pbkdf2 string e.g. {"iter":100000,"hash":"sha256"}
--pmux Multiplex connection by pmux (experimental)
--pmux-config string pmux config in JSON (experimental) (default "{\"hb\": true}")
-c, --symmetric Encrypt symmetrically
--yamux Multiplex connection by hashicorp/yamuxGlobal Flags:
--dns-server string DNS server (e.g. 1.1.1.1:53)
-H, --header stringArray HTTP header
--http-read-buf-size int HTTP read-buffer size in bytes (default 4096)
--http-write-buf-size int HTTP write-buffer size in bytes (default 4096)
-k, --insecure Allow insecure server connections when using SSL
--progress Show progress (default true)
-s, --server string Piping Server URL (default "https://ppng.io")
--verbose int Verbose logging level
```## References
The idea of tunneling over Piping Server was proposed by [@Cryolite](https://github.com/Cryolite). Thanks!
- (Japanese)## Related work
- [portwarp](https://github.com/essa/portwarp)