docs/tinyproxy.conf.5.scd
raw ยท 2884 bytes
tinyproxy.conf(5)
# NAME
tinyproxy.conf - tinyproxy configuration file
# DESCRIPTION
tinyproxy.conf defines TCP and UDP forwarding routes.
# GLOBAL OPTIONS
TINYPROXY_RUNTIME_DIR="/tmp/tinyproxy"
# ROUTES
listen <listen-proto> <listen-endpoint> <backend-proto> <backend-endpoint> [options...]
# OPTIONS
proxy_v2
Enable proxy v2 for upstream
Default: false
keep_alive
Enable keep alive for tcp
Default: false
idle_timeout=SECONDS
Idle timeout for both listen and upstream
Default: 60
connect_timeout=SECONDS
Connection timeout for both listen and upstream
Default: 5
# ENDPOINTS
unix /tmp/backend.sock
Unix sock
unix-dgram /tmp/socket.sock
Unix sock datagram
file /path/to/file
File contents in raw bytes
## Builtin
builtin clientaddr
Returns the observed client address as plain text, then closes.
Example response: 127.0.0.1:54321
builtin discard
- TCP: reads and discards client data until the client closes or timeout expires.
- UDP: silently drops each datagram.
builtin hang
Accepts the connection/datagram and intentionally produces no response.
- TCP: the connection remains open until the client closes or the route idle timeout expires.
- UDP: this is effectively a silent drop.
builtin close
- TCP: Accepts the connection and immediately closes it without reading or writing.
- UDP: this is equivalent to discard/drop because UDP has no connection to close.
buitin http-ok
Returns "HTTP/1.1 200 OK\\r\\nContent-Length: 2\\r\\nConnection: close\\r\\n\\r\\nOK" then close.
Useful for probing
# EXAMPLES
Forward HTTPS:
Direct tcp forward with default settings
- listen tcp 0.0.0.0:443 tcp 10.0.1.10:443
Upstream accepts proxy protocol v2
- listen tcp 0.0.0.0:443 tcp 10.0.1.10:443 proxy_v2
Redirect UDP:
- listen udp 0.0.0.0:53 udp 1.1.1.1:53
Serve a fixed HTTP response:
$ printf 'HTTP/1.1 200 OK\\r\\nContent-Type: text/plain\\r\\nContent-Length: 14\\r\\nConnection: close\\r\\n\\r\\nhello, world!\\n' > response.http
- listen tcp 0.0.0.0:8080 file response.http
Rule chaining:
```
Multiple rules can be chained together. This is useful for testing mixed
endpoint paths. For example, the following setup sends a client request
through TCP, UNIX stream sockets, more TCP hops, and finally a static file
backend:
client
=> tcp :14001
=> unix /tmp/tinyproxy-chain-4.sock
=> tcp 127.0.0.1:13003
=> tcp 127.0.0.1:13002
=> unix /tmp/tinyproxy-chain-1.sock
=> file examples/http-response.txt
Configuration:
listen unix /tmp/tinyproxy-chain-1.sock file examples/http-response.txt
listen tcp :13002 unix /tmp/tinyproxy-chain-1.sock
listen tcp :13003 tcp 127.0.0.1:13002
listen unix /tmp/tinyproxy-chain-4.sock tcp 127.0.0.1:13003
listen tcp :14001 unix /tmp/tinyproxy-chain-4.sock
```
# FILES
/etc/tinyproxy.conf
# SEE ALSO
tinyproxy(1)