mirror of
				https://github.com/therootcompany/sclient
				synced 2025-10-30 20:52:50 +00:00 
			
		
		
		
	update build / install instructions
This commit is contained in:
		
							parent
							
								
									828344802b
								
							
						
					
					
						commit
						af639f0b2e
					
				
							
								
								
									
										114
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										114
									
								
								README.md
									
									
									
									
									
								
							| @ -1,5 +1,4 @@ | ||||
| sclient.go | ||||
| ========== | ||||
| # sclient | ||||
| 
 | ||||
| Secure Client for exposing TLS (aka SSL) secured services as plain-text connections locally. | ||||
| 
 | ||||
| @ -8,81 +7,75 @@ Also ideal for multiplexing a single port with multiple protocols using SNI. | ||||
| Unwrap a TLS connection: | ||||
| 
 | ||||
| ```bash | ||||
| $ sclient whatever.com:443 localhost:3000 | ||||
| sclient whatever.com:443 localhost:3000 | ||||
| 
 | ||||
| > [listening] whatever.com:443 <= localhost:3000 | ||||
| ``` | ||||
| 
 | ||||
| Connect via Telnet | ||||
| 
 | ||||
| ```bash | ||||
| $ telnet localhost 3000 | ||||
| telnet localhost 3000 | ||||
| ``` | ||||
| 
 | ||||
| Connect via netcat (nc) | ||||
| 
 | ||||
| ```bash | ||||
| $ nc localhost 3000 | ||||
| nc localhost 3000 | ||||
| ``` | ||||
| 
 | ||||
| cURL | ||||
| 
 | ||||
| ```bash | ||||
| $ curl http://localhost:3000 -H 'Host: whatever.com' | ||||
| curl http://localhost:3000 -H 'Host: whatever.com' | ||||
| ``` | ||||
| 
 | ||||
| A poor man's (or Windows user's) makeshift replacement for `openssl s_client`, `stunnel`, or `socat`. | ||||
| 
 | ||||
| Install | ||||
| ======= | ||||
| # Table of Contents | ||||
| 
 | ||||
| - [Install](#install) | ||||
| - [Usage](#usage) | ||||
| - [Examples](#examples) | ||||
| - [Build from Source](#build-from-source) | ||||
| 
 | ||||
| # Install | ||||
| 
 | ||||
| ### Mac, Linux | ||||
| 
 | ||||
| ```bash | ||||
| curl -sS https://webinstall.dev/sclient | bash | ||||
| ``` | ||||
| 
 | ||||
| ```bash | ||||
| curl.exe -A MS https://webinstall.dev/sclient | powershell | ||||
| ``` | ||||
| 
 | ||||
| ### Downloads | ||||
| 
 | ||||
| * [Windows 10](https://telebit.cloud/sclient/dist/windows/amd64/sclient.exe) | ||||
| * [Mac OS X](https://telebit.cloud/sclient/dist/darwin/amd64/sclient) | ||||
| * [Linux (x64)](https://telebit.cloud/sclient/dist/linux/amd64/sclient) | ||||
| * [Raspberry Pi (armv7)](https://telebit.cloud/sclient/dist/linux/armv7/sclient) | ||||
| * more downloads <https://telebit.cloud/sclient/> | ||||
| Check the [Github Releases](https://github.com/therootcompany/sclient/releases) for | ||||
| 
 | ||||
| ### Build from source | ||||
| - macOS (x64) Apple Silicon [coming soon](https://github.com/golang/go/issues/39782) | ||||
| - Linux (x64, i386, arm64, arm6, arm7) | ||||
| - Windows 10 (x64, i386) | ||||
| 
 | ||||
| For the moment you'll have to install go and compile `sclient` yourself: | ||||
| 
 | ||||
| * <https://golang.org/doc/install#install> | ||||
| 
 | ||||
| ```bash | ||||
| git clone https://git.rootprojects.org/root/sclient.go.git | ||||
| pushd sclient.go | ||||
| go build -o dist/sclient cmd/sclient/main.go | ||||
| rsync -av dist/sclient /usr/local/bin/sclient | ||||
| sclient example.com:443 localhost:3000 | ||||
| ``` | ||||
| 
 | ||||
| Or | ||||
| 
 | ||||
| ```bash | ||||
| go get git.rootprojects.org/root/sclient.go/cmd/sclient | ||||
| go run git.rootprojects.org/root/sclient.go/cmd/sclient example.com:443 localhost:3000 | ||||
| ``` | ||||
| 
 | ||||
| Usage | ||||
| ===== | ||||
| # Usage | ||||
| 
 | ||||
| ```bash | ||||
| sclient [flags] <remote> <local> | ||||
| ``` | ||||
| 
 | ||||
| * flags | ||||
|   * -k, --insecure ignore invalid TLS (SSL/HTTPS) certificates | ||||
|   * --servername <string> spoof SNI (to disable use IP as <remote> and do not use this option) | ||||
| * remote | ||||
|   * must have servername (i.e. example.com) | ||||
|   * port is optional (default is 443) | ||||
| * local | ||||
|   * address is optional (default is localhost) | ||||
|   * must have port (i.e. 3000) | ||||
| - flags | ||||
|   - -k, --insecure ignore invalid TLS (SSL/HTTPS) certificates | ||||
|   - --servername <string> spoof SNI (to disable use IP as <remote> and do not use this option) | ||||
| - remote | ||||
|   - must have servername (i.e. example.com) | ||||
|   - port is optional (default is 443) | ||||
| - local | ||||
|   - address is optional (default is localhost) | ||||
|   - must have port (i.e. 3000) | ||||
| 
 | ||||
| Examples | ||||
| ======== | ||||
| # Examples | ||||
| 
 | ||||
| Bridge between `telebit.cloud` and local port `3000`. | ||||
| 
 | ||||
| @ -127,3 +120,32 @@ sclient --servername "Robert'); DROP TABLE Students;" -k example.com localhost:3 | ||||
| ```bash | ||||
| sclient --servername "../../../.hidden/private.txt" -k example.com localhost:3000 | ||||
| ``` | ||||
| 
 | ||||
| # Build from source | ||||
| 
 | ||||
| You'll need to install [Go](https://golang.org). | ||||
| See [webinstall.dev/golang](https://webinstall.dev/golang) for install instructions. | ||||
| 
 | ||||
| ```bash | ||||
| curl -sS https://webinstall.dev/golang | bash | ||||
| ``` | ||||
| 
 | ||||
| Then you can install and run as per usual. | ||||
| 
 | ||||
| ```bash | ||||
| git clone https://git.rootprojects.org/root/sclient.go.git | ||||
| 
 | ||||
| pushd sclient.go | ||||
|   go build -o dist/sclient cmd/sclient/main.go | ||||
|   sudo rsync -av dist/sclient /usr/local/bin/sclient | ||||
| popd | ||||
| 
 | ||||
| sclient example.com:443 localhost:3000 | ||||
| ``` | ||||
| 
 | ||||
| ## Install or Run with Go | ||||
| 
 | ||||
| ```bash | ||||
| go get git.rootprojects.org/root/sclient.go/cmd/sclient | ||||
| go run git.rootprojects.org/root/sclient.go/cmd/sclient example.com:443 localhost:3000 | ||||
| ``` | ||||
|  | ||||
							
								
								
									
										33
									
								
								build-all.sh
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								build-all.sh
									
									
									
									
									
								
							| @ -1,33 +0,0 @@ | ||||
| #GOOS=windows GOARCH=amd64 go install | ||||
| go tool dist list | ||||
| 
 | ||||
| gocmd=cmd/sclient/main.go | ||||
| golib="" | ||||
| echo "" | ||||
| 
 | ||||
| echo "" | ||||
| echo "Windows amd64" | ||||
| GOOS=windows GOARCH=amd64 go build -o dist/windows/amd64/sclient.exe $gocmd $golib | ||||
| echo "Windows 386" | ||||
| GOOS=windows GOARCH=386 go build -o dist/windows/386/sclient.exe $gocmd $golib | ||||
| 
 | ||||
| echo "" | ||||
| echo "Darwin (macOS) amd64" | ||||
| GOOS=darwin GOARCH=amd64 go build -o dist/darwin/amd64/sclient $gocmd $golib | ||||
| 
 | ||||
| echo "" | ||||
| echo "Linux amd64" | ||||
| GOOS=linux GOARCH=amd64 go build -o dist/linux/amd64/sclient $gocmd $golib | ||||
| echo "Linux 386" | ||||
| 
 | ||||
| echo "" | ||||
| GOOS=linux GOARCH=386 go build -o dist/linux/386/sclient $gocmd $golib | ||||
| echo "RPi 3 B+ ARMv7" | ||||
| GOOS=linux GOARCH=arm GOARM=7 go build -o dist/linux/armv7/sclient $gocmd $golib | ||||
| echo "RPi Zero ARMv5" | ||||
| GOOS=linux GOARCH=arm GOARM=5 go build -o dist/linux/armv5/sclient $gocmd $golib | ||||
| 
 | ||||
| echo "" | ||||
| echo "" | ||||
| 
 | ||||
| rsync -av ./dist/ root@telebit.cloud:/opt/telebit-relay/lib/extensions/admin/sclient/dist/ | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user