Closed woodlyer closed 1 year ago
QUIC and Hysteria are not the same, we can not simply replace.
quic of gost is very slow.
hysterial use replaced version of quic-go, Maybe gost can also use this modified quic-go
https://github.com/apernet/hysteria/blob/master/app/go.mod
replace github.com/quic-go/quic-go => github.com/apernet/quic-go v0.32.1-0.20230226201325-e07aae1a800b
You can try my branch of gost V2: https://github.com/happyharryh/gost/tree/hysteria-quic
# Build
git clone -b hysteria-quic https://github.com/happyharryh/gost.git
cd gost
go build ./cmd/gost
# Server
./gost -L='quic://127.0.0.1:8080?send_mbps=100'
# Client
./gost -L=auto://127.0.0.1:1080 -F='quic://127.0.0.1:8080?send_mbps=20&keepalive=true'
This branch only implements the basic transporter of the Hysteria-QUIC and does not include other encryption features of Hysteria. The data transmission rate is fixed based on the server-side/client-side configuration, rather than being negotiated during the connection establishment.
@happyharryh
In my test, hysteria is much faster than gost with quic.
Is your gost faster than original quic?
@happyharryh In my test, hysteria is much faster than gost with quic. Is your gost faster than original quic?
@woodlyer Yes. My purpose of creating this branch is to speed up the original QUIC in the gost. In fact, I made modifications to the code of gost based on the code of Hysteria as a reference. In my test, the gost with Hysteria-QUIC is as fast as Hysteria now.
@happyharryh good job.
Thanks to the contributors to this feature, I forked a v3 version of gost to implement Brutal and BBR congestion control.
The repo is: https://github.com/CloudPassenger/gost
The purpose of my Fork is to improve the reliability of cross-border traffic trasnfer (aka. climb over the wall/翻墙), which conflicts with the author's intent to provide cloud-native tunnel services. So I won't be submitting a Pull Request to request a merge.
Thanks again to the author and the many contributors of this project 🙏
Thanks to the contributors to this feature, I forked a v3 version of gost to implement Brutal and BBR congestion control.
The repo is: https://github.com/CloudPassenger/gost
Enhanced Features
- QUIC: Default to BBR, with Brutal fixed-rate congestion control by Hysteria
- REALITY: Support Transport Layer REALITY by Xray, can be used as server and client, supports multiplexing
- Forward: Traffic forwarding supports Proxy Protocol to pass client IP (TCP only)
The purpose of my Fork is to improve the reliability of cross-border traffic trasnfer (aka. climb over the wall/翻墙), which conflicts with the author's intent to provide cloud-native tunnel services. So I won't be submitting a Pull Request to request a merge.
Thanks again to the author and the many contributors of this project 🙏
There seems to be something wrong with your branch. After running for a while (about 4 to 5 hours), it will be unable to connect. I checked that the gost process is still alive and there is no error log output..
Thanks to the contributors to this feature, I forked a v3 version of gost to implement Brutal and BBR congestion control. The repo is: https://github.com/CloudPassenger/gost
Enhanced Features
- QUIC: Default to BBR, with Brutal fixed-rate congestion control by Hysteria
- REALITY: Support Transport Layer REALITY by Xray, can be used as server and client, supports multiplexing
- Forward: Traffic forwarding supports Proxy Protocol to pass client IP (TCP only)
The purpose of my Fork is to improve the reliability of cross-border traffic trasnfer (aka. climb over the wall/翻墙), which conflicts with the author's intent to provide cloud-native tunnel services. So I won't be submitting a Pull Request to request a merge. Thanks again to the author and the many contributors of this project 🙏
There seems to be something wrong with your branch. After running for a while (about 4 to 5 hours), it will be unable to connect. I checked that the gost process is still alive and there is no error log output..
Thanks for the feedback. Let me check this issue and try to resolve it.
hysteria is based on quic and is very fast. Because the quic is modified.
https://github.com/apernet/quic-go
shall we change default quic-go to this version to make quic faster?