.. _configuration_escaper_divert_tcp: divert_tcp ========== This escaper will redirect all streams to a next proxy server by sending a PROXY Protocol V2 message first. The PPv2 Type-Values are: * 0xE0 | Upstream Address The target upstream address, encoded in UTF-8 without trailing '\0'. This will always be set. And the next proxy server should connect to this upstream address. * 0xE1 | TLS Verify Name The TLS verify name, encoded in UTF-8 without trailing '\0'. This will be set only if the TLS handshake is started on our side. * 0xE2 | Username The username of the client, encoded in UTF-8 without trailing '\0'. This will be set only if client auth is enabled on our side. * 0xE3 | Task ID The task id in UUID binary format. This will always be set. The following interfaces are supported: * tcp connect * http(s) forward There is no path selection support for this escaper. The following common keys are supported: * :ref:`shared_logger ` * :ref:`resolver `, **required** only if *proxy_addr* is domain * :ref:`resolve_strategy ` * :ref:`tcp_sock_speed_limit ` * :ref:`bind_interface ` * :ref:`no_ipv4 ` * :ref:`no_ipv6 ` * :ref:`tcp_connect ` * :ref:`happy eyeballs ` * :ref:`tcp_misc_opts ` * :ref:`extra_metrics_tags ` proxy_addr ---------- **required**, **type**: :ref:`upstream str ` | seq Set the target proxy address. The default port is 3128 which can be omitted. For *seq* value, each of its element must be :ref:`weighted upstream addr `. proxy_addr_pick_policy ---------------------- **optional**, **type**: :ref:`selective pick policy ` Set the policy to select next proxy address. The key for ketama/rendezvous/jump hash is *[-]-*. **default**: random bind_ipv4 --------- **optional**, **type**: :ref:`ipv4 addr str ` Set the bind ip address for inet sockets. **default**: not set bind_ipv6 --------- **optional**, **type**: :ref:`ipv6 addr str ` Set the bind ip address for inet6 sockets. **default**: not set tcp_keepalive ------------- **optional**, **type**: :ref:`tcp keepalive ` Set tcp keepalive. The tcp keepalive set in user config won't be taken into account. **default**: no keepalive set