Mirror von
				https://github.com/therootcompany/sclient
				synchronisiert 2025-10-31 05:02:50 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			44 Zeilen
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			44 Zeilen
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| /*
 | |
| sclient unwraps SSL.
 | |
| 
 | |
| It makes secure remote connections (such as HTTPS) available locally as plain-text connections -
 | |
| similar to `stunnel` or `openssl s_client`.
 | |
| 
 | |
| There are a variety of reasons that you might want to do that,
 | |
| but we created it specifically to be able to upgrade applications with legacy
 | |
| security protocols - like SSH, OpenVPN, and Postgres - to take
 | |
| advantage of the features of modern TLS, such as ALPN and SNI
 | |
| (which makes them routable through almost every type of firewall).
 | |
| 
 | |
| See https://telebit.cloud/sclient for more info.
 | |
| 
 | |
| Package Basics
 | |
| 
 | |
| In the simplest case you'll just be setting a ServerName and connection info:
 | |
| 
 | |
| 	servername := "example.com"
 | |
| 
 | |
| 	sclient := &sclient.Tunnel{
 | |
| 		ServerName:         servername,
 | |
| 		RemoteAddress:      servername,
 | |
| 		RemotePort:         443,
 | |
| 		LocalAddress:       "localhost",
 | |
| 		LocalPort:          3000,
 | |
| 	}
 | |
| 
 | |
| 	err := sclient.DialAndListen()
 | |
| 
 | |
| Try the CLI
 | |
| 
 | |
| If you'd like to better understand what sclient does, you can try it out with `go run`:
 | |
| 
 | |
| 	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
 | |
| 	curl http://localhost:3000 -H "Host: example.com"
 | |
| 
 | |
| Pre-built versions for various platforms are also available at
 | |
| https://telebit.cloud/sclient
 | |
| 
 | |
| */
 | |
| package sclient
 |