Finalmask: Add Realm (UDP hole punching in Hysteria v2.9.1)#6137
Conversation
|
call的依赖似乎有点多了 |
go mod 吗,
|
|
话说写 port: 0 行为居然不是 pickport 吗 |
Mux 也快该修整了,有这种打洞的东西最好还是弄成通用的吧,比如 KCP、WG 也能用上, |
没有 mux 对于 realm 服务器是不小的负载,真弄了搞不好给 hy 公共牵线搞掉了,我还是偏向给 quic,
就作为 client 使用来说感觉还是极简的,realm 还没看过 |
|
按 @tobyxdd 的想法也是 UDP 通用的,最好弄成通用的吧, |
|
行吧, 移到 mask 需要点时间,准备再糊个 ech 上去 dialerProxy 现在不支持 b.UDP,对 realm 没啥作用 |
|
应该 ready 了,安卓那个可能要在 |
|
为啥这东西要 -checklinkname=0 |
|
根据报错看的,只引用一个 stun 库带来七八个小库,有个小库使用了 go:linkname |
|
|
CI release 针对 Android 改 ldflags,不适合在这个 pr 改 类似 |
就在这个 PR 一起改了吧,目前已经有一些平台特定编译参数了,你参考下 |
|
@LjhAUMEM README 那个 Reproducible Releases 记得也加一条,加到 32-bit MIPS/MIPSLE 上面 |
|
done |
|
|
|
Xray-core/.github/workflows/release.yml Lines 174 to 184 in 4dcf802 |
|
|
|
可以stub掉 安卓支持不要了 |
|
|
|
它们用的好像反而是Linux arm |
|
( 不过,应如何决定连接牵线服务器 是否使用HTTPS呢?使用 |
https://hysteria.network/docs/advanced/Realms/#realm-address |
|
(奇怪,居然不是 |
相同的,主要是为了蹭 ech,其他字段你也可以试试 |
refer to hysteria 2.9.1
现在用的 net.DefaultResolver + http.DefaultClient,建议自建 realm 以及搭配 keepAlivePeriod 食用
{ "log": { "loglevel": "debug" }, "inbounds": [ { "listen": "127.0.0.1", "port": 1080, "protocol": "socks", "settings": { "auth": "noauth", "udp": true } } ], "outbounds": [ { "protocol": "hysteria", "settings": { "version": 2, "address": "127.0.0.1", "port": 1081 }, "streamSettings": { "network": "hysteria", "hysteriaSettings": { "version": 2, "auth": "5783a3e7-e373-51cd-8642-c83782b807c5" }, "security": "tls", "tlsSettings": { "pinnedPeerCertSha256": "f166838b984afe614cba418bf2ace575189d822e94c751428e41bb6a7b6f1465" }, "finalmask": { "udp": [ { "type": "realm", "settings": { "url": "realm://public@realm.hy2.io/57f9be7c-2810-4f5b-8cb9-260bc84d6c90", "stunServers": [ "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" ] } } ], "quicParams": { "keepAlivePeriod": 10 } } } } ] }{ "log": { "loglevel": "debug" }, "inbounds": [ { // "listen": "127.0.0.1", "port": 54321, "protocol": "hysteria", "settings": { "version": 2, "clients": [ { "auth": "5783a3e7-e373-51cd-8642-c83782b807c5" } ] }, "streamSettings": { "network": "hysteria", "hysteriaSettings": { "version": 2 }, "security": "tls", "tlsSettings": { "alpn": ["h3"], "certificates": [ { "certificate": [ "-----BEGIN CERTIFICATE-----", "MIIBnTCCAUKgAwIBAgIRAKKw0E+MG4CqeIxeCZtyfWMwCgYIKoZIzj0EAwIwJjER", "MA8GA1UEChMIWHJheSBJbmMxETAPBgNVBAMTCFhyYXkgSW5jMB4XDTI2MDQxMTE0", "NDg1OFoXDTI2MDcxMDE1NDg1OFowJjERMA8GA1UEChMIWHJheSBJbmMxETAPBgNV", "BAMTCFhyYXkgSW5jMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEpRY9GoCoKoKx", "bp0xH9OQiHmBhogW7nCRh7TtGvTwfyef6DSqUl26Ql3LxTAqNsK84g6EOO5hXkgN", "PYRhOnYRiKNRME8wDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMB", "MAwGA1UdEwEB/wQCMAAwGgYDVR0RBBMwEYIPd3d3LmV4YW1wbGUuY29tMAoGCCqG", "SM49BAMCA0kAMEYCIQC81N1lTIzfSsR6K8W2C3NKaR+iqyjYGo+L2mskYVQAVQIh", "APeXowIRcyk1ABfptJZ1DPRcAHpJ8H3antwzwh0okJ/e", "-----END CERTIFICATE-----" ], "key": [ "-----BEGIN RSA PRIVATE KEY-----", "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgaqqaEdlBoohy3xLT", "yjdJowGv8zU7NckAO8+fK1x2GqChRANCAASlFj0agKgqgrFunTEf05CIeYGGiBbu", "cJGHtO0a9PB/J5/oNKpSXbpCXcvFMCo2wrziDoQ47mFeSA09hGE6dhGI", "-----END RSA PRIVATE KEY-----" ] } ] }, "finalmask": { "udp": [ { "type": "realm", "settings": { "url": "realm://public@realm.hy2.io/57f9be7c-2810-4f5b-8cb9-260bc84d6c90", "stunServers": [ "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" ] } } ] } } } ], "outbounds": [ { "protocol": "freedom" } ] }