David Manouchehri
c5f91232cb
Add TCP CONNECT support to MASQUE (RFC 9114)
...
Extend MASQUE implementation to support TCP tunneling via standard HTTP/3
CONNECT method, in addition to existing UDP support via CONNECT-UDP:
- Add StreamConn type for TCP data transfer over HTTP/3 stream body
- Update handler to dispatch based on :protocol pseudo-header:
- "connect-udp" for UDP (RFC 9298)
- Empty/"HTTP/3.0" for TCP (RFC 9114)
- Add handleConnectTCP() using bidirectional stream relay
- Update connector to support both TCP and UDP networks
- Add connectTCP() for standard CONNECT requests
TCP uses :authority for target address and stream body for data.
UDP uses path template and HTTP/3 datagrams for data.
2025-12-28 23:47:51 +00:00
David Manouchehri
1752b29df9
Add MASQUE/CONNECT-UDP support (RFC 9298)
...
Implement UDP tunneling over HTTP/3 using HTTP Datagrams (RFC 9297):
- Add masque handler for server-side CONNECT-UDP
- Add masque connector and h3-masque dialer for client-side
- Add enableDatagrams option to HTTP/3 listener
- Add shared utilities for datagram connections and path parsing
Resource management and connection caching:
- Add deferred stream cleanup in connector on error paths
- Add IsClosed() and Close() methods to Client for proper session management
- Clean up stale cached clients in dialer before reuse
- Close underlying stream when DatagramConn is closed
- Move RequestStream opening from connector to dialer to enable dead
connection detection and cache invalidation (follows QUIC dialer pattern)
2025-12-28 22:16:54 +00:00
RMT
0c97db3c05
Adapt new shadowsocks library.
...
1. Modify ss/ssu handler and connector
2. Add users to metadata of ss and ssu handler
2025-11-11 12:37:33 +08:00
Simon Hang
d2cc07d3ac
Pass username to new redis client
2025-10-30 13:26:11 +08:00
eWloYW8
eae322c7ba
feat: support custom ComponentID for Windows TAP device configuration
2025-10-11 22:01:24 +08:00
ginuerzh
e2072399dd
fix sniffing for websocket
2025-09-04 21:30:49 +08:00
ginuerzh
c7d16962ec
add service option for plugin
2025-08-29 23:36:31 +08:00
ginuerzh
52289bea6c
add network param for sniffing
2025-08-13 21:25:35 +08:00
ginuerzh
d0ff5358df
fix panic for nil pointer
2025-08-13 21:24:05 +08:00
ginuerzh
589c185053
forwarder: connect to sni host for empty node
2025-08-09 12:43:09 +08:00
ginuerzh
404aaae5f1
without cancel the context
2025-08-05 20:24:00 +08:00
ginuerzh
fd9dc6408a
fix ws listener
2025-08-05 00:13:48 +08:00
ginuerzh
b597467858
add context for conn
2025-08-04 19:29:38 +08:00
ginuerzh
ad5cf6fd61
add proxyProtocol support for dialer
2025-08-03 15:36:29 +08:00
ginuerzh
f71351f5ef
add interface xnet.SrcAddr/DstAddr
2025-08-03 10:15:53 +08:00
ginuerzh
db21de831a
fix xnet.Pipe
2025-08-01 23:00:50 +08:00
ginuerzh
a5309eee97
add buffer size option for udp connection
2025-07-30 21:40:53 +08:00
ginuerzh
87e454a6f1
tungo: additional metadata options
2025-07-30 10:07:18 +08:00
ginuerzh
208d18125c
replace xnet.Transport by xnet.Pipe
2025-07-28 20:52:15 +08:00
ginuerzh
35a049fb03
rename vtun to tungo
2025-07-26 16:17:04 +08:00
ginuerzh
afcf4a5252
parse real client IP
2025-07-15 19:59:10 +08:00
ginuerzh
d9a2f44a78
add src field for logger and recorder
2025-07-02 21:35:02 +08:00
ginuerzh
3ec2f9d487
update quic
2025-06-25 21:06:23 +08:00
ginuerzh
ce3c28baf5
rm deprecated library shadowsocks-go/shadowsocks
2025-06-25 21:05:39 +08:00
ginuerzh
d819fd3041
support http-100 continue for sniffer
2025-06-24 21:15:38 +08:00
ginuerzh
04d1587a77
set dns for tun
2025-02-25 20:39:33 +08:00
ginuerzh
e0915affda
use fixed buffer size
2025-02-18 17:38:27 +08:00
ginuerzh
fc12e33786
router handler: add cache for sd service
2025-02-09 16:16:44 +08:00
ginuerzh
355c72477a
add router handler & connector
2025-02-07 15:44:31 +08:00
ginuerzh
379d9a73ad
service: add limiter.scope option
2025-01-20 23:22:58 +08:00
ginuerzh
06d993023f
add traffic reset for stats
2024-12-24 20:11:22 +08:00
ginuerzh
a5d4774682
add ip range matcher for bypass
2024-12-23 21:06:55 +08:00
ginuerzh
2693ba61c4
forwarder: fix ip matcher for tls
2024-12-18 19:05:19 +08:00
ginuerzh
2e8a5d6f51
fix http keepalive for forwarding
2024-11-17 16:16:20 +08:00
ginuerzh
c2aedbabd9
add routing rule for node
2024-11-15 20:28:47 +08:00
ginuerzh
79b6b9138e
add limiterRefreshInterval option for limiter
2024-11-14 20:16:09 +08:00
ginuerzh
3db20563d2
add custom http response header for reverse proxy
2024-11-07 11:04:42 +08:00
ginuerzh
a12870e766
add compression flag option for http request
2024-11-02 20:41:23 +08:00
ginuerzh
88ba01b3dd
add redirect for handler recorder object
2024-10-31 19:14:21 +08:00
ginuerzh
a97ac1f30a
fix http body recorder
2024-10-22 22:51:33 +08:00
ginuerzh
3ca253537b
fix race condition for sniffing
2024-10-20 19:19:16 +08:00
ginuerzh
41f527aa46
sniffing: full websocket frame recording
2024-10-19 20:40:07 +08:00
ginuerzh
6b932e35bf
sniffing websocket frame
2024-10-19 19:36:06 +08:00
ginuerzh
7e51404ae5
fix handler sniffing
2024-10-16 23:01:12 +08:00
ginuerzh
24547b4332
add ClientAddr for websocket conn
2024-10-16 20:46:45 +08:00
ginuerzh
51ca9f620a
add transport for tunnel entrypoint
2024-10-15 18:47:36 +08:00
ginuerzh
5bba004324
add keepalive option for tunnel entrypoint
2024-10-14 23:09:07 +08:00
ginuerzh
0ffed81601
add sniffer for forwarding handler
2024-10-14 21:18:38 +08:00
ginuerzh
27242d0b66
recorder: add input/output traffic stats for handler recorder object
2024-10-11 20:32:56 +08:00
ginuerzh
8f994ab632
add handle options for sniffer
2024-10-10 22:49:56 +08:00