go-gost / gost

GO Simple Tunnel - a simple tunnel written in golang
https://gost.run
MIT License
4.3k stars 521 forks source link

shall we use the quic of hysteria? #193

Closed woodlyer closed 1 year ago

woodlyer commented 1 year ago

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?

ginuerzh commented 1 year ago

QUIC and Hysteria are not the same, we can not simply replace.

woodlyer commented 1 year ago

quic of gost is very slow.

woodlyer commented 1 year ago

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
happyharryh commented 1 year ago

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.

woodlyer commented 1 year ago

@happyharryh In my test, hysteria is much faster than gost with quic.
Is your gost faster than original quic?

happyharryh commented 1 year ago

@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.

woodlyer commented 1 year ago

@happyharryh good job.

CloudPassenger commented 8 months ago

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

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 🙏

onlineie commented 4 months ago

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..

CloudPassenger commented 3 months ago

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.