github bytedance/g3 g3proxy-v1.12.1

latest releases: g3proxy-v1.12.2, g3iploc-v0.3.1, g3fcgen-v0.8.5...
25 days ago

This is the first version for the g3proxy v1.12 LTS branch.

New Features

HTTP

  • New standards supported:
  • allow to drop the default port part in Host header in http_proxy server
  • retry HTTP connection if upstream close connection without any data

TLS

  • support aws-lc-fips
  • add 'insecure' config option to OpenSSL Client config to skip cert verification
  • set supported ALPN protocols in HTTP Proxy server
  • use more detailed error message for OpenSSL stream

ICAP

  • improved ICAP connection pool
  • allow to connect via UNIX domain socket
  • allow ICAP 204 response for small HTTP/IMAP messages
  • try to receive as much as possible preview data in h1&h2 reqmod/respmod service

Socket Options

  • allow to set hop_limit and traffic_class ipv6 socket options
  • allow to set congestion control algorithm for TCP socket
  • allow to set tcp keepalive on tcp listen socket in server
  • allow to bind to interface in tcp & udp listen config

Resolver

  • update TTL calculation in resolver, cache longer and query earlier
  • support to set bind interface and many other socket options in hickory resolver
  • make server address in c-ares resolver optional

ACL

  • more effeicient match for regex domain rules

Log and Metrics

  • allow to emit task log on created/connected and periodically
  • log partial shutdown event in task/intercept log
  • emit more tokio runtime metrics
  • add more tcp connect and tls handshake metrics in escaper

Others

  • changed default idle-check-interval to 60s and set default max-idle-count to 5
  • support to use PROXY Protocol in direct-fixed escaper
  • add an extra exported-pdu layer to represent client side addresses when dump traffic to wireshark
  • keep wait and forward when TCP partial shutdown
  • allow to quit process on panic
  • support multi-threaded runtime in worker

Deprecated

The following config options are deprecated:

  • emit_duration in statsd config, use emit_interval instead
  • auto_reply_local_ip_map in socks server config, use transmute_udp_echo_ip instead
  • untrusted_read_limit in server config, use untrusted_read_speed_limit instead
  • tcp_conn_speed_limit/tcp_conn_limit/conn_limit in server & escaper config, use tcp_sock_speed_limit instead
  • udp_relay_speed_limit/udp_relay_limit/relay_limit in server & escaper config, use udp_sock_speed_limit instead
  • tcp_conn_speed_limit/tcp_conn_limit in user config, use tcp_sock_speed_limit instead
  • udp_relay_speed_limit/udp_relay_limit in user config, use udp_sock_speed_limit instead

Compatibility

  • The MSRV is 1.86
  • A recent version of Linux is required, such as Debian >= 11, or RHEL >= 8
  • The code would compile on the latest version of MacOS, Windows, FreeBSD, NetBSD, OpenBSD. Please fill a bug report if it doesn't work.

Don't miss a new g3 release

NewReleases is sending notifications on new releases.