.. _configuration_escaper_proxy_socks5: proxy_socks5 ============ This escaper will access the target upstream through another http proxy. The following interfaces are supported: * tcp connect * udp_relay * udp_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:`udp_sock_speed_limit ` * :ref:`no_ipv4 ` * :ref:`no_ipv6 ` * :ref:`tcp_connect ` * :ref:`happy eyeballs ` * :ref:`tcp_misc_opts ` * :ref:`udp_misc_opts ` * :ref:`peer negotiation timeout ` * :ref:`extra_metrics_tags ` proxy_addr ---------- **required**, **type**: :ref:`upstream str ` | seq Set the target proxy address. The default port is 1080 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 proxy_username -------------- **optional**, **type**: :ref:`username ` Set the proxy username. The User auth scheme is used by default. proxy_password -------------- **optional**, **type**: :ref:`password ` Set the proxy password. Required if username is present. 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**: 60s transmute_udp_peer_ip --------------------- **optional**, **type**: bool or map Set this option if the UDP peer IP returned from the remote proxy should be transmuted. For map value, the key should be the returned IP, and the value should be the real IP to use. If the map is empty, the peer IP used by the tcp connection will be used. For bool value, an empty map will be used if set to true, or disabled if set to false. **default**: false .. versionadded:: 1.7.19