Commit Graph

54 Commits

Author SHA1 Message Date
yiguous
a7ecd08046 fix escaped auth 2024-07-05 18:34:54 +08:00
Haruue
0c198abd2e fix: mod name major version suffix v2
ref: https://go.dev/ref/mod#major-version-suffixes
2024-05-18 11:28:47 +08:00
Toby
b216c4f128 feat: graceful client shutdown 2024-05-17 18:02:58 -07:00
Toby
234dc4508b Merge pull request from xchacha20-poly1305/dev-android-protect
feat: support Android protect path
2024-04-12 23:32:38 -07:00
Toby
e1d8901c16 chore: adjust import format 2024-04-12 10:49:56 -07:00
Haruue
34574e0339 refactor: proxymux
This commit rewrites proxymux package to provide following functions:

+ proxymux.ListenSOCKS(address string)
+ proxymux.ListenHTTP(address string)

both are drop-in replacements for net.Listen("tcp", address)

The above functions can be called with the same address to take
advantage of the mux feature.

Tests are not included, but we will have them very soon.

This commit should be in PR , but I ended up with it in a separate
branch here. Please rebase if you want to merge it.
2024-04-11 21:16:17 +08:00
Haruue
3e34da1aa8 refactor: protect => quic.sockopts
Android's VpnService.protect() itself is confusing, so we rename the
"protect" feature with the name `fdControlUnixSocket` and make it a
sub-option under `quic.sockopts`.

A unit test is added to make sure the protect feature works.

I also added two other common options to `quic.sockopts` that I copied
from my other projects but did not fully test here.
2024-04-05 02:20:45 +08:00
HystericalDragon
03c8b5e6b9 feat: support Android protect path
about: 1ac9d4956b

Signed-off-by: HystericalDragon <HystericalDragons@proton.me>
2024-04-03 18:09:40 +08:00
xmapst
02fa2cde0a 增强: HTTP/SOCKS5混合端口 2024-03-25 10:15:11 +08:00
Toby
2d7d67bf27 feat: also change client side errors to warns 2024-03-23 10:58:11 -07:00
Haruue
6374ea11c4 feat(tun): allow omit pfxlen in full len pfx route 2024-03-23 11:13:43 +08:00
Toby
dc8fe45a1a chore: adjust imports 2024-03-22 15:50:58 -07:00
Haruue
b287020daa chore(tun): show error on unsupported platform 2024-03-20 22:09:03 +08:00
Haruue
2e93c12cdc feat(tun): export sing-tun auto route config 2024-03-20 13:45:12 +08:00
Haruue
91406ab0f9 chore(tun): use /126 length in default prefix6 2024-03-19 20:35:42 +08:00
Haruue
0cde4f405f feat(tun): use time.Duration for timeout config
matches timeout config of other inbounds
2024-03-19 15:49:36 +08:00
Haruue
4aec8166b3 chore: switch to apernet sing-tun fork 2024-03-19 15:15:54 +08:00
Haruue
f10805dc13 init: tun support with sing-tun 2024-03-19 02:13:50 +08:00
Haruue
1ac9d4956b feat: allow set ListenUDP impl for udphop conn
Third-party clients can use this to set options on created sockets.
e.g. calling VpnService.protect() on Android.
2024-02-27 21:05:53 +08:00
Toby
d73edff71e fix: lazy mode should defer config evaluation 2023-12-28 15:10:21 -08:00
Toby
bb3b83f4de chore: reformat code 2 2023-11-26 20:57:35 -08:00
Haruue Icymoon
9476976950 chore: reformat code 2023-11-27 11:35:15 +08:00
Haruue Icymoon
e70838cd98 fix: ipv{4,6}-only listen on wildcard address
fix: 

when listening on a wildcard address like "0.0.0.0" or "[::]", hysteria
actually listened on both IPv4 and IPv6. this is a well-known bug of the
golang net package.

this commit introduces a fix for that, the intended behavior will be:

0.0.0.0:443 => listen on IPv4 only
[::]:443    => listen on IPv6 only
:443        => listen on both IPv4 and IPv6
2023-11-26 16:09:01 +08:00
Toby
0a77ce4d64 feat: client handshake info 2023-11-18 16:19:08 -08:00
Toby
83a6e5f9a9 feat: TCP redirect mode 2023-09-10 17:32:30 -07:00
Toby
5efd0f8f44 chore: small tweaks 2023-08-30 20:12:21 -07:00
Toby
3e5eccd6e3 feat: udp port hopping 2023-08-30 20:02:18 -07:00
Toby
353aacfd62 feat: options to disable update check & fix client lazy mode 2023-08-24 14:10:51 -07:00
Toby
09355c4e21 feat: wip update checker 2023-08-23 22:56:15 -07:00
Toby
332d2ea32d chore: move code around 2023-08-23 16:26:38 -07:00
Toby
3c3c2a51a8 feat: client TLS cert SHA256 pinning (pinSHA256) 2023-08-23 15:53:22 -07:00
Toby
ceb3c7f6a8 feat: TProxy 2023-08-10 22:06:46 -07:00
Toby
7307eea2a8 feat: userpass auth 2023-08-06 12:11:46 -07:00
Toby
601ad6b61c feat: lazy option for client 2023-08-05 17:50:03 -07:00
Toby
3b4af8035b chore: some code fixes 2023-08-04 17:48:07 -07:00
Toby
45c3fc54bd feat: BBR 2023-08-04 17:29:15 -07:00
Toby
a59111faad feat: reconnect 2023-07-28 16:09:23 -07:00
Toby
fb7e6ed915 feat(wip): test reworks for app 2023-07-27 13:13:07 -07:00
tobyxdd
07b7f14bef feat: client config URI support 2023-07-14 16:47:10 -07:00
tobyxdd
6aa60e12d1 chore: move print QR func to utils 2023-07-14 15:44:37 -07:00
tobyxdd
e21e5c67a8 feat: rework config handling code & add QR 2023-07-10 19:46:58 -07:00
tobyxdd
4c24edaac1 feat: salamander obfs 2023-07-09 16:37:18 -07:00
tobyxdd
7e177a22f7 feat: port forwarding 2023-07-02 15:40:16 -07:00
tobyxdd
e97a81a8a9 chore: change "validate" to "load" 2023-06-30 17:10:51 -07:00
tobyxdd
eb7e91e5ce feat: rework config parsing to use viper unmarshal 2023-06-30 13:16:01 -07:00
tobyxdd
fefabaf739 fix: mode str 2023-06-10 19:10:01 -07:00
tobyxdd
fcb8965987 feat: client http proxy 2023-06-10 19:08:00 -07:00
tobyxdd
5586303825 feat: bump quic-go version to v0.35.1 (mod wip), change client config format for sni 2023-06-02 16:51:17 -07:00
tobyxdd
9f54aade8f hysteria 2 prototype first public release 2023-05-25 20:24:24 -07:00
tobyxdd
20898f2990 chore: change info string 2023-02-18 20:01:01 -08:00