RelativityMC / raknetify

A Fabric mod / Velocity plugin / BungeeCord plugin that uses RakNet to improve multiplayer experience significantly under unreliable and rate-limited connections.
MIT License
152 stars 2 forks source link

[Feature Request] About HaProxy and the way this plugin works #25

Open 8MiYile opened 1 year ago

8MiYile commented 1 year ago

1.这个插件支持与Velocity的ProxyProtocol配置联动并正确使用吗?(然而测试不通过) 2.客户端方面能否支持UDP类型以及允许设置TCP+UDP混合工作(以通过UDP正确读到客户端IP地址) 3.绑定IP为全0导致刷日志的问题 (已经解决) Frp https://github.com/fatedier/frp/issues/3304

  1. Does this plugin support HAProxy from velocity's config?My Velocity server is configured with a hybrid port, configured via the plugin HaProxy-Detector plugin, allowing both HaProxy connections and direct connections
  2. Does it support loading RakNet when selecting a connection in the form of a button on the Edit Server Information Page.Mode:[Low,High,AutoDetect]
  3. TCP+UDP Mixed Mode?
  4. Can I disable certain IP segments? I don't want to see them working in the background, or only use IPs with 0.0.0.0
  5. If it doesn't work, just turn it on once according to Velocity.toml' bind configuration
  6. this log is loading
    [04:35:38] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /172.28.0.1:25565
    [04:35:38] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /172.17.0.1:25565
    [04:35:38] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /172.27.0.1:25565
    [04:35:38] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /172.18.0.1:25565
    [04:35:38] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /172.19.0.1:25565
    [04:35:38] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /172.20.0.1:25565
    [04:35:38] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /172.21.0.1:25565
    [04:35:38] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /192.168.250.1:25565
    [04:35:38] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /10.0.0.5:25565
    [04:35:38] [Velocity Async Event Executor - #2/INFO] [raknetify]: Raknetify server started on /127.0.0.1:25565

    wtf... including docker's IP?

    
    [04:38:38] [Velocity Task Scheduler - #10/INFO] [raknetify]: Raknetify server started on /192.168.250.1:25565
    [04:38:48] [Velocity Task Scheduler - #7/INFO] [raknetify]: Closing Raknetify server /192.168.250.1:25565
    [04:40:48] [Velocity Task Scheduler - #12/INFO] [raknetify]: Raknetify server started on /192.168.250.1:25565
    [04:40:58] [Velocity Task Scheduler - #12/INFO] [raknetify]: Closing Raknetify server /192.168.250.1:25565
    [04:44:58] [Velocity Task Scheduler - #7/ERROR] [raknetify]: Raknetify server failed to start on /[fe80:0:0:0:b4ec:89ff:fe6b:c2ae%vethfb8136a]:25565: bind(..) failed: 无法指定被请求的地址
    [04:44:58] [Velocity Task Scheduler - #13/INFO] [raknetify]: Raknetify server started on /192.168.250.1:25565

IP: 192.168.250.X is a Deepin UEngine's local IP
8MiYile commented 1 year ago

and ... w... wtf?

[04:38:38] [Velocity Task Scheduler - #7/INFO] [raknetify]: Raknetify server started on /[fe80:0:0:0:42:d6ff:fe23:520f%3]:25565
[04:38:38] [Velocity Task Scheduler - #9/INFO] [raknetify]: Raknetify server started on /[fe80:0:0:0:ced:3ff:fe2a:3f9d%25692]:25565
[04:38:38] [Velocity Task Scheduler - #10/INFO] [raknetify]: Raknetify server started on /192.168.250.1:25565
[04:38:48] [Velocity Task Scheduler - #11/INFO] [raknetify]: Closing Raknetify server /[fe80:0:0:0:42:d6ff:fe23:520f%3]:25565
[04:38:48] [Velocity Task Scheduler - #7/INFO] [raknetify]: Closing Raknetify server /192.168.250.1:25565
[04:38:48] [Velocity Task Scheduler - #12/INFO] [raknetify]: Closing Raknetify server /[fe80:0:0:0:ced:3ff:fe2a:3f9d%25692]:25565
[04:40:48] [Velocity Task Scheduler - #7/INFO] [raknetify]: Raknetify server started on /[fe80:0:0:0:42:d6ff:fe23:520f%3]:25565
[04:40:48] [Velocity Task Scheduler - #12/INFO] [raknetify]: Raknetify server started on /192.168.250.1:25565
[04:40:58] [Velocity Task Scheduler - #7/INFO] [raknetify]: Closing Raknetify server /[fe80:0:0:0:42:d6ff:fe23:520f%3]:25565
[04:40:58] [Velocity Task Scheduler - #12/INFO] [raknetify]: Closing Raknetify server /192.168.250.1:25565
[04:44:58] [Velocity Task Scheduler - #7/ERROR] [raknetify]: Raknetify server failed to start on /[fe80:0:0:0:b4ec:89ff:fe6b:c2ae%vethfb8136a]:25565: bind(..) failed: 无法指定被请求的地址
[04:44:58] [Velocity Task Scheduler - #13/INFO] [raknetify]: Raknetify server started on /192.168.250.1:25565
[04:44:58] [Velocity Task Scheduler - #12/INFO] [raknetify]: Raknetify server started on /[fe80:0:0:0:42:d6ff:fe23:520f%3]:25565
[04:45:08] [Velocity Task Scheduler - #12/INFO] [raknetify]: Closing Raknetify server /[fe80:0:0:0:42:d6ff:fe23:520f%3]:25565
[04:45:08] [Velocity Task Scheduler - #7/INFO] [raknetify]: Closing Raknetify server /192.168.250.1:25565
[04:48:08] [Velocity Task Scheduler - #7/INFO] [raknetify]: Raknetify server started on /[fe80:0:0:0:42:d6ff:fe23:520f%3]:25565
[04:48:08] [Velocity Task Scheduler - #14/INFO] [raknetify]: Raknetify server started on /192.168.250.1:25565
[04:48:08] [Velocity Task Scheduler - #12/INFO] [raknetify]: Raknetify server started on /[fe80:0:0:0:a864:f3ff:fead:7bc1%25710]:25565
[04:48:18] [Velocity Task Scheduler - #14/INFO] [raknetify]: Closing Raknetify server /[fe80:0:0:0:a864:f3ff:fead:7bc1%25710]:25565
[04:48:18] [Velocity Task Scheduler - #12/INFO] [raknetify]: Closing Raknetify server /[fe80:0:0:0:42:d6ff:fe23:520f%3]:25565
[04:48:18] [Velocity Task Scheduler - #7/INFO] [raknetify]: Closing Raknetify server /192.168.250.1:25565

无法指定被请求的地址? Is this an internal network test pass-through port?

8MiYile commented 1 year ago

And when I connected to the server through OpenFrp, I found that the UDP port was not loaded with the HaProxy Protocol (Proxy Protocol), which caused the backend to show that the IP connected through OpenFrp's UDP tunnel was my server's internal IP. Can you support reading Velocity's configuration items haproxy-protocol and HaProxy-Detector plugins?

8MiYile commented 1 year ago

image this server using mix protocol Bedrock+LanBoardcast+Haproxy+UDP(Raknet)

ishland commented 1 year ago
  1. As far as I know, proxy-protocol doesn't exist on UDP applications.
  2. No.
  3. Pretty sure that is out of scope of this mod.
  4. There are currently no way to know where the UDP packets come from when using 0.0.0.0 as bind address. That is a workaround for compatibility with multiple network interfaces.
  5. If that's the case, people will be confused with not being able to connect after the server (re)connecting a network.
8MiYile commented 1 year ago

In other words, is a TCP handshake followed by a UDP-assisted transmission out of scope?