added documentation for the new tcp.proxy module
This commit is contained in:
		
							parent
							
								
									138f59bea3
								
							
						
					
					
						commit
						b44ad7b17a
					
				
							
								
								
									
										57
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								README.md
									
									
									
									
									
								
							@ -64,13 +64,15 @@ some of which have modules:
 | 
			
		||||
  - [proxy (reverse proxy)](#tlsproxy)
 | 
			
		||||
  - [acme](#tlsacme)
 | 
			
		||||
* [tcp](#tcp)
 | 
			
		||||
  - [proxy](#tcpproxy)
 | 
			
		||||
  - [forward](#tcpforward)
 | 
			
		||||
* [udp](#udp)
 | 
			
		||||
  - [forward](#udpforward)
 | 
			
		||||
* [domains](#domains)
 | 
			
		||||
* [tunnel_server](#tunnel_server)
 | 
			
		||||
* [DDNS](#ddns)
 | 
			
		||||
* [tunnel_client](#tunnel)
 | 
			
		||||
* [mdns](#mdns)
 | 
			
		||||
* [mDNS](#mdns)
 | 
			
		||||
* [socks5](#socks5)
 | 
			
		||||
* api
 | 
			
		||||
 | 
			
		||||
@ -294,6 +296,37 @@ tcp:
 | 
			
		||||
      address: '127.0.0.1:2222'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### tcp.proxy
 | 
			
		||||
 | 
			
		||||
The proxy module routes traffic based on the servername contained in a SNI header.
 | 
			
		||||
As such this only works to route TCP connections wrapped in a TLS stream.
 | 
			
		||||
 | 
			
		||||
It has the same options as the [HTTP proxy module](#httpproxy-how-to-reverse-proxy-ruby-python-etc).
 | 
			
		||||
 | 
			
		||||
Example config:
 | 
			
		||||
```yml
 | 
			
		||||
tcp:
 | 
			
		||||
  modules:
 | 
			
		||||
    - type: proxy
 | 
			
		||||
      domains:
 | 
			
		||||
        - ssh.example.com
 | 
			
		||||
      port: 22
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
In order to use this to route SSH connections you will need to use `ssh`'s
 | 
			
		||||
`ProxyCommand` option. For example to ssh into `ssh.example.com` you could use
 | 
			
		||||
the following command.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
ssh user@ssh.example.com -o ProxyCommand='openssl s_client -quiet -connect ssh.example.com:443 -servername ssh.example.com'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Alternatively you could add the following lines to your ssh config file.
 | 
			
		||||
```
 | 
			
		||||
Host ssh.example.com
 | 
			
		||||
  ProxyCommand openssl s_client -quiet -connect ssh.example.com:443 -servername ssh.example.com
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### tcp.forward
 | 
			
		||||
 | 
			
		||||
The forward module routes traffic based on port number **without decrypting** it.
 | 
			
		||||
@ -366,13 +399,14 @@ udp:
 | 
			
		||||
To reduce repetition defining multiple modules that operate on the same domain
 | 
			
		||||
name the `domains` field can define multiple modules of multiple types for a
 | 
			
		||||
single list of names. The modules defined this way do not need to have their
 | 
			
		||||
own `domains` field.
 | 
			
		||||
own `domains` field. Note that the [tcp.forward](#tcpforward) module is not
 | 
			
		||||
allowed in a domains group since its routing is not based on domains.
 | 
			
		||||
 | 
			
		||||
Example Config
 | 
			
		||||
 | 
			
		||||
```yml
 | 
			
		||||
domains:
 | 
			
		||||
  names:
 | 
			
		||||
  - names:
 | 
			
		||||
      - example.com
 | 
			
		||||
      - www.example.com
 | 
			
		||||
      - api.example.com
 | 
			
		||||
@ -387,6 +421,23 @@ domains:
 | 
			
		||||
          to: /new/path
 | 
			
		||||
        - type: proxy
 | 
			
		||||
          port: 3000
 | 
			
		||||
      dns:
 | 
			
		||||
        - type: 'dns@oauth3.org'
 | 
			
		||||
          token_id: user_token_id
 | 
			
		||||
 | 
			
		||||
  - names:
 | 
			
		||||
      - ssh.example.com
 | 
			
		||||
    modules:
 | 
			
		||||
      tls:
 | 
			
		||||
        - type: acme
 | 
			
		||||
          email: john.smith@example.com
 | 
			
		||||
          challenge_type: 'http-01'
 | 
			
		||||
      tcp:
 | 
			
		||||
        - type: proxy
 | 
			
		||||
          port: 22
 | 
			
		||||
      dns:
 | 
			
		||||
        - type: 'dns@oauth3.org'
 | 
			
		||||
          token_id: user_token_id
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user