daeuniverse / dae

eBPF-based Linux high-performance transparent proxy solution.
GNU Affero General Public License v3.0
3.03k stars 191 forks source link

[Bug Report] 在开启 dae 的情况下,PS5 上的糖豆人游戏无法登录 #338

Open EkkoG opened 11 months ago

EkkoG commented 11 months ago

Checks

Current Behavior

打开 dae,所有流量直连,糖豆人无法登录

Expected Behavior

正常登录

Steps to Reproduce

OpenWrt 主路由,其中运行 daed,启动后打开糖豆人,无法登录,卡在登录界面

dhcp 配置如下

root@OpenWrt:~# uci show dhcp
dhcp.@dnsmasq[0]=dnsmasq
dhcp.@dnsmasq[0].domainneeded='1'
dhcp.@dnsmasq[0].boguspriv='1'
dhcp.@dnsmasq[0].filterwin2k='0'
dhcp.@dnsmasq[0].localise_queries='1'
dhcp.@dnsmasq[0].rebind_protection='0'
dhcp.@dnsmasq[0].rebind_localhost='1'
dhcp.@dnsmasq[0].local='/lan/'
dhcp.@dnsmasq[0].domain='lan'
dhcp.@dnsmasq[0].expandhosts='1'
dhcp.@dnsmasq[0].nonegcache='0'
dhcp.@dnsmasq[0].cachesize='1000'
dhcp.@dnsmasq[0].authoritative='1'
dhcp.@dnsmasq[0].readethers='1'
dhcp.@dnsmasq[0].leasefile='/tmp/dhcp.leases'
dhcp.@dnsmasq[0].resolvfile='/tmp/resolv.conf.d/resolv.conf.auto'
dhcp.@dnsmasq[0].nonwildcard='1'
dhcp.@dnsmasq[0].localservice='1'
dhcp.@dnsmasq[0].ednspacket_max='1232'
dhcp.@dnsmasq[0].filter_aaaa='0'
dhcp.@dnsmasq[0].filter_a='0'
dhcp.@dnsmasq[0].localuse='1'
dhcp.lan=dhcp
dhcp.lan.interface='lan'
dhcp.lan.start='100'
dhcp.lan.limit='150'
dhcp.lan.leasetime='12h'
dhcp.lan.dhcpv4='server'
dhcp.lan.ra_slaac='1'
dhcp.lan.ra='server'
dhcp.lan.ra_flags='none'
dhcp.lan.min_preferred_lifetime='300s'
dhcp.lan.max_preferred_lifetime='2700s'
dhcp.lan.min_valid_lifetime='600s'
dhcp.lan.max_valid_lifetime='5400s'
dhcp.lan.dns_service='0'
dhcp.wan=dhcp
dhcp.wan.interface='wan'
dhcp.wan.ignore='1'
dhcp.odhcpd=odhcpd
dhcp.odhcpd.maindhcp='0'
dhcp.odhcpd.leasefile='/tmp/hosts/odhcpd'
dhcp.odhcpd.leasetrigger='/usr/sbin/odhcpd-update'
dhcp.odhcpd.loglevel='4'
dhcp.@srvhost[0]=srvhost
dhcp.@srvhost[0].srv='_vlmcs._tcp'
dhcp.@srvhost[0].target='OpenWrt'
dhcp.@srvhost[0].port='1688'
dhcp.@srvhost[0].class='0'
dhcp.@srvhost[0].weight='100'

daed 配置

{
  "id": "Y3Vyc29yMQ",
  "name": "global",
  "selected": true,
  "global": {
    "logLevel": "info",
    "tproxyPort": 12345,
    "allowInsecure": false,
    "checkInterval": "30s",
    "checkTolerance": "0s",
    "lanInterface": [
      "eth0"
    ],
    "wanInterface": [],
    "udpCheckDns": [
      "dns.google.com:53",
      "8.8.8.8",
      "2001:4860:4860::8888"
    ],
    "tcpCheckUrl": [
      "http://cp.cloudflare.com",
      "1.1.1.1",
      "2606:4700:4700::1111"
    ],
    "dialMode": "domain+",
    "tcpCheckHttpMethod": "HEAD",
    "disableWaitingNetwork": false,
    "autoConfigKernelParameter": true,
    "sniffingTimeout": "100ms",
    "tlsImplementation": "tls",
    "utlsImitate": "chrome_auto",
    "tproxyPortProtect": true,
    "soMarkFromDae": 0
  }
}

DNS 配置

upstream {
    tencent: 'udp://119.29.29.29:53'
}
routing {
    request {
        fallback: tencent
    }
}

Routing 配置

mac('2c:9e:00:7a:26:38') -> direct
fallback: proxy

修改 Routing 配置如下后,即可正常登录

mac('2c:9e:00:7a:26:38') -> must_direct
fallback: proxy

下面的配置也能正常登录

mac('2c:9e:00:7a:26:38') && dport(53) && !dip(geoip:cn) -> must_direct
mac('2c:9e:00:7a:26:38') -> direct
fallback: proxy

2c:9e:00:7a:26:38 是 PS5 的 MAC 地址

Environment

Anything else?

有 IPv6,IPv6 DNS 已禁用,只有 IPv4 DNS CleanShot 2023-09-27 at 00 57 07@2x

PS5 上除糖豆人外的服务都正常,商店能正常登录,原神可以正常玩,COD 也能正常登录

dae-prow[bot] commented 11 months ago

Thanks for opening this issue!

lchannng commented 11 months ago

老哥,你们用的openwrt是自行编译的吗,我改了很多编译选项,好像内核都有问题,dae开不起来

lchannng commented 11 months ago

https://github.com/daeuniverse/dae/issues/323 看看这个