gitextract_5rjruq7m/ ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── bug_report.zh.md │ │ ├── feature_request.md │ │ └── feature_request.zh.md │ ├── dependabot.yml │ └── workflows/ │ ├── autotag.yaml │ ├── docker.yml │ ├── master.yml │ ├── release.yml │ └── scripts.yml ├── .gitignore ├── CHANGELOG.md ├── Dockerfile ├── LICENSE.md ├── PROTOCOL.md ├── README.md ├── app/ │ ├── cmd/ │ │ ├── client.go │ │ ├── client_test.go │ │ ├── client_test.yaml │ │ ├── errors.go │ │ ├── ping.go │ │ ├── root.go │ │ ├── server.go │ │ ├── server_test.go │ │ ├── server_test.yaml │ │ ├── share.go │ │ ├── speedtest.go │ │ ├── update.go │ │ └── version.go │ ├── go.mod │ ├── go.sum │ ├── internal/ │ │ ├── forwarding/ │ │ │ ├── tcp.go │ │ │ ├── tcp_test.go │ │ │ ├── udp.go │ │ │ └── udp_test.go │ │ ├── http/ │ │ │ ├── server.go │ │ │ ├── server_test.go │ │ │ ├── server_test.py │ │ │ ├── test.crt │ │ │ └── test.key │ │ ├── proxymux/ │ │ │ ├── .mockery.yaml │ │ │ ├── internal/ │ │ │ │ └── mocks/ │ │ │ │ ├── mock_Conn.go │ │ │ │ └── mock_Listener.go │ │ │ ├── manager.go │ │ │ ├── manager_test.go │ │ │ ├── mux.go │ │ │ └── mux_test.go │ │ ├── redirect/ │ │ │ ├── getsockopt_linux.go │ │ │ ├── getsockopt_linux_386.go │ │ │ ├── syscall_socketcall_linux_386.s │ │ │ ├── tcp_linux.go │ │ │ └── tcp_others.go │ │ ├── sockopts/ │ │ │ ├── fd_control_unix_socket_test.py │ │ │ ├── sockopts.go │ │ │ ├── sockopts_linux.go │ │ │ └── sockopts_linux_test.go │ │ ├── socks5/ │ │ │ ├── server.go │ │ │ ├── server_test.go │ │ │ └── server_test.py │ │ ├── tproxy/ │ │ │ ├── tcp_linux.go │ │ │ ├── tcp_others.go │ │ │ ├── udp_linux.go │ │ │ └── udp_others.go │ │ ├── tun/ │ │ │ ├── log.go │ │ │ └── server.go │ │ ├── url/ │ │ │ ├── url.go │ │ │ └── url_test.go │ │ ├── utils/ │ │ │ ├── bpsconv.go │ │ │ ├── bpsconv_test.go │ │ │ ├── certloader.go │ │ │ ├── certloader_test.go │ │ │ ├── certloader_test_gencert.py │ │ │ ├── certloader_test_tlsclient.py │ │ │ ├── geoloader.go │ │ │ ├── qr.go │ │ │ ├── testcerts/ │ │ │ │ └── .gitignore │ │ │ └── update.go │ │ └── utils_test/ │ │ └── mock.go │ ├── main.go │ ├── misc/ │ │ └── socks5_test.py │ └── pprof.go ├── core/ │ ├── client/ │ │ ├── .mockery.yaml │ │ ├── client.go │ │ ├── config.go │ │ ├── mock_udpIO.go │ │ ├── reconnect.go │ │ ├── udp.go │ │ └── udp_test.go │ ├── errors/ │ │ └── errors.go │ ├── go.mod │ ├── go.sum │ ├── internal/ │ │ ├── congestion/ │ │ │ ├── bbr/ │ │ │ │ ├── bandwidth.go │ │ │ │ ├── bandwidth_sampler.go │ │ │ │ ├── bbr_sender.go │ │ │ │ ├── clock.go │ │ │ │ ├── packet_number_indexed_queue.go │ │ │ │ ├── ringbuffer.go │ │ │ │ └── windowed_filter.go │ │ │ ├── brutal/ │ │ │ │ └── brutal.go │ │ │ ├── common/ │ │ │ │ └── pacer.go │ │ │ └── utils.go │ │ ├── frag/ │ │ │ ├── frag.go │ │ │ └── frag_test.go │ │ ├── integration_tests/ │ │ │ ├── .mockery.yaml │ │ │ ├── close_test.go │ │ │ ├── hook_test.go │ │ │ ├── masq_test.go │ │ │ ├── mocks/ │ │ │ │ ├── mock_Authenticator.go │ │ │ │ ├── mock_Conn.go │ │ │ │ ├── mock_EventLogger.go │ │ │ │ ├── mock_Outbound.go │ │ │ │ ├── mock_RequestHook.go │ │ │ │ ├── mock_TrafficLogger.go │ │ │ │ └── mock_UDPConn.go │ │ │ ├── smoke_test.go │ │ │ ├── stress_test.go │ │ │ ├── test.crt │ │ │ ├── test.key │ │ │ ├── trafficlogger_test.go │ │ │ └── utils_test.go │ │ ├── pmtud/ │ │ │ ├── avail.go │ │ │ └── unavail.go │ │ ├── protocol/ │ │ │ ├── http.go │ │ │ ├── padding.go │ │ │ ├── proxy.go │ │ │ └── proxy_test.go │ │ └── utils/ │ │ ├── atomic.go │ │ └── qstream.go │ └── server/ │ ├── .mockery.yaml │ ├── config.go │ ├── copy.go │ ├── mock_UDPConn.go │ ├── mock_udpEventLogger.go │ ├── mock_udpIO.go │ ├── server.go │ ├── udp.go │ └── udp_test.go ├── entrypoint ├── extras/ │ ├── auth/ │ │ ├── command.go │ │ ├── http.go │ │ ├── http_test.go │ │ ├── http_test.py │ │ ├── password.go │ │ ├── password_test.go │ │ ├── userpass.go │ │ ├── userpass_test.go │ │ └── v2board.go │ ├── correctnet/ │ │ └── correctnet.go │ ├── go.mod │ ├── go.sum │ ├── masq/ │ │ └── server.go │ ├── obfs/ │ │ ├── conn.go │ │ ├── salamander.go │ │ └── salamander_test.go │ ├── outbounds/ │ │ ├── .mockery.yaml │ │ ├── acl/ │ │ │ ├── compile.go │ │ │ ├── compile_test.go │ │ │ ├── matchers.go │ │ │ ├── matchers_test.go │ │ │ ├── matchers_v2geo.go │ │ │ ├── matchers_v2geo_test.go │ │ │ ├── parse.go │ │ │ ├── parse_test.go │ │ │ └── v2geo/ │ │ │ ├── load.go │ │ │ ├── load_test.go │ │ │ ├── v2geo.pb.go │ │ │ └── v2geo.proto │ │ ├── acl.go │ │ ├── acl_test.go │ │ ├── dns_https.go │ │ ├── dns_standard.go │ │ ├── dns_system.go │ │ ├── interface.go │ │ ├── interface_test.go │ │ ├── mock_PluggableOutbound.go │ │ ├── mock_UDPConn.go │ │ ├── ob_direct.go │ │ ├── ob_direct_linux.go │ │ ├── ob_direct_others.go │ │ ├── ob_http.go │ │ ├── ob_socks5.go │ │ ├── speedtest/ │ │ │ ├── client.go │ │ │ ├── protocol.go │ │ │ ├── protocol_test.go │ │ │ └── server.go │ │ ├── speedtest.go │ │ ├── utils.go │ │ └── utils_test.go │ ├── sniff/ │ │ ├── .mockery.yaml │ │ ├── internal/ │ │ │ └── quic/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── header.go │ │ │ ├── packet_protector.go │ │ │ ├── packet_protector_test.go │ │ │ ├── payload.go │ │ │ └── quic.go │ │ ├── mock_Stream.go │ │ ├── sniff.go │ │ └── sniff_test.go │ ├── trafficlogger/ │ │ └── http.go │ ├── transport/ │ │ └── udphop/ │ │ ├── addr.go │ │ └── conn.go │ └── utils/ │ ├── portunion.go │ └── portunion_test.go ├── go.work.sum ├── hyperbole.py ├── platforms.txt ├── requirements.txt └── scripts/ ├── _redirects └── install_server.sh