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. | 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: | Unwrap a TLS connection: | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| $ sclient whatever.com:443 localhost:3000 | sclient whatever.com:443 localhost:3000 | ||||||
|  | 
 | ||||||
| > [listening] whatever.com:443 <= localhost:3000 | > [listening] whatever.com:443 <= localhost:3000 | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Connect via Telnet | Connect via Telnet | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| $ telnet localhost 3000 | telnet localhost 3000 | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Connect via netcat (nc) | Connect via netcat (nc) | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| $ nc localhost 3000 | nc localhost 3000 | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| cURL | cURL | ||||||
| 
 | 
 | ||||||
| ```bash | ```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`. | 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 | ### Downloads | ||||||
| 
 | 
 | ||||||
| * [Windows 10](https://telebit.cloud/sclient/dist/windows/amd64/sclient.exe) | Check the [Github Releases](https://github.com/therootcompany/sclient/releases) for | ||||||
| * [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/> |  | ||||||
| 
 | 
 | ||||||
| ### 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: | # Usage | ||||||
| 
 |  | ||||||
| * <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 |  | ||||||
| ===== |  | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| sclient [flags] <remote> <local> | sclient [flags] <remote> <local> | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| * flags | - flags | ||||||
|   * -k, --insecure ignore invalid TLS (SSL/HTTPS) certificates |   - -k, --insecure ignore invalid TLS (SSL/HTTPS) certificates | ||||||
|   * --servername <string> spoof SNI (to disable use IP as <remote> and do not use this option) |   - --servername <string> spoof SNI (to disable use IP as <remote> and do not use this option) | ||||||
| * remote | - remote | ||||||
|   * must have servername (i.e. example.com) |   - must have servername (i.e. example.com) | ||||||
|   * port is optional (default is 443) |   - port is optional (default is 443) | ||||||
| * local | - local | ||||||
|   * address is optional (default is localhost) |   - address is optional (default is localhost) | ||||||
|   * must have port (i.e. 3000) |   - must have port (i.e. 3000) | ||||||
| 
 | 
 | ||||||
| Examples | # Examples | ||||||
| ======== |  | ||||||
| 
 | 
 | ||||||
| Bridge between `telebit.cloud` and local port `3000`. | Bridge between `telebit.cloud` and local port `3000`. | ||||||
| 
 | 
 | ||||||
| @ -127,3 +120,32 @@ sclient --servername "Robert'); DROP TABLE Students;" -k example.com localhost:3 | |||||||
| ```bash | ```bash | ||||||
| sclient --servername "../../../.hidden/private.txt" -k example.com localhost:3000 | 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