This is the first version for the g3proxy v1.12 LTS branch.
New Features
HTTP
- New standards supported:
- masque/http Well-Known URI
- easy-proxy Well-Known URI
- 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, useemit_interval
insteadauto_reply_local_ip_map
in socks server config, usetransmute_udp_echo_ip
insteaduntrusted_read_limit
in server config, useuntrusted_read_speed_limit
insteadtcp_conn_speed_limit
/tcp_conn_limit
/conn_limit
in server & escaper config, usetcp_sock_speed_limit
insteadudp_relay_speed_limit
/udp_relay_limit
/relay_limit
in server & escaper config, useudp_sock_speed_limit
insteadtcp_conn_speed_limit
/tcp_conn_limit
in user config, usetcp_sock_speed_limit
insteadudp_relay_speed_limit
/udp_relay_limit
in user config, useudp_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.