Closed khashayarxy closed 10 months ago
Examples. No time for guessing problems like #53 again.
What do you mean by examples?
After connecting to h2 servers there is no internet at all.
This project currently does not have an issue template. So what I mean is your configuration in URI or JSON format. There's no use for me just providing some stream type isn't working.
Ok so I found the problem in json config. My h2 server doesn't have "host address" on my side. When I import it to Furious it fills "empty host address" with "server address".
here's the config:
vless://f8ed56d0-6ca2-4666-8ee2-f24f8f47abd6@example.com:443?security=reality&encryption=none&pbk=KKJRn45F3dZpCmRBZk1K1RCeWI80Cy30nkJ_i6S19mY&fp=chrome&type=h2&sni=mega.io&sid=721f9e372064136a#TEST
I can confirm that deleting the host part in json config resolved the issue in Furious.
"host": [
"example.com"
],
The issue seems not on the application side. Please confirm:
a. Parsing URI to client config follows a URI standard as posted here. In 4.3.3 part:
4.3.3 (HTTP/2) host
客户端进行 HTTP/2 通信时所发送的 Host 头部。
省略时复用 remote-host,但不可以为空字符串。
4.3.3 (HTTP/2) host
The Host header sent by the client during HTTP/2 communication.
When omitted, remote-host is reused, but it cannot be an empty string.
Implementation based on the standard, which uses remote_host
as host
by default:
b. The host
part is defined here, which requires:
若不写 "httpSettings" 或 "host": [] 值留空时,会使用默认值 "www.example.com",需要两端 "host" 值一致才能连接成功。"host": [""] 不是值留空。
If "httpSettings" is not written or the "host": [] value is left blank, the default value "www.example.com" will be used. The "host" value on both ends needs to be consistent for the connection to be successful. "host": [""] is not a value left blank.
So to solve this, you might want to specify consistent host
value on the server side, since the application will always fill host
value as remote_host
by default according to standard.
We have reported this issue to the Streisand team, and they have fixed it.
As I mentioned earlier, Nekoray works fine with this type of server. they fixed h2 issues several times in their latest releases.
It also works on v2rayN (v6.32), v2rayNG (v1.8.12), NekoBox (v.1.2.9), Shadowrocket (v2.2.44) and other apps.
So I'm sure there's a way around this on your side. as I did with Furious built-in Editor and it worked.
here's some (real-delay test) and (download/connection test) from v2rayN, NekoRay and Furious.
Edit: (The dates on v2rayN and NekoRay refers to that version release date and I censored addresses for privacy)
I don't care if other client follows the standard or not. I don't see any workaround on the application. If you want to use www.example.com
as host
, then explicitly specify this.
I think this could be the solution.
if self.protocol == 'vless':
host = self.remote_host or host
this basically uses remote_host if available otherwise falls back to host.
or maybe this
self.remote_host = remote_host or host
You are writing some alien logic. If you think there's bug in the code then create a PR and fix it.
Hello, hope you are well :)
The app seems to have an issue with h2 configs. I have recently added "vless h2 reality" configs to my subscription and they don't work on Furious.
These configs work with other apps like Nekoray.
Please kindly look into this, thanks.