MetaCubeX / mihomo

A simple Python Pydantic model for Honkai: Star Rail parsed data from the Mihomo API.
https://wiki.metacubex.one
MIT License
16.52k stars 2.65k forks source link

[Bug] 无法正确路由IPv6: 2408:824*:511*:2030::1/60这样的ipv6地址 #1474

Closed liumingan closed 2 months ago

liumingan commented 2 months ago

Verify steps

Operating System

Linux

System Version

OpenWrt SNAPSHOT

Mihomo Version

alpha-6e04e1e9

Configuration File

Description

对于2408:824:511:203*::1这样的/60或者 /64ipv6地址,无法正确路由

Reproduction Steps

在openwrt上和安卓客户端均做过测试,如果不使用插件或者使用插件并打开绕过国内ip,该类/60或者/64的地址都可以正常ssh连接;如果打开插件,让所有流量都经过核心,该类地址都不能连接,openwrt下y提示time out,安卓下的ssh客户端提示,找不到路由

Logs

No response

xianren78 commented 2 months ago

QQ截图20240828102032

liumingan commented 2 months ago

win下经过核心 image

liumingan commented 2 months ago

安卓在安装了openwrt插件下: image 安卓在4g网络下运行插件: image

liumingan commented 2 months ago

使用的是域名,经验证,域名解析正常,获取的ip正确

liumingan commented 2 months ago

提供测试地址:myhome20.dynv6.net,不经过核心,可以正常连接,经过核心就无法连接

morytyann commented 2 months ago

之前来插件群问了,发现DDNS的IP是lan的,改成wan的就完全正常,不知道为什么你还要提这个Issue……

liumingan commented 2 months ago

因为不过核心或者是不开插件就正常,所以肯定是插件的问题,而且在不同的客户端都是一样的问题,所以不是第三方客户端的问题,是核心的问题,到这里提当然是对的呀 ,提供了测试的地址,完全可以复现,大侠们可以在不开插件和开插件的情况下试一试 ,wan口的ip是IPv6: 2408:824e:500:7ac4:f587:235f:a9c5:6676/64这样的,和lan的不一样,Ilan是这样的IPv6: 2408:824e:511:2030::1/60,DDNS是哪一个口并没有关系,ipv6的地址都是公网ip,都是可以独立访问的,在运营商没有封闭443,80口的时候,也是可以通过lan的DDNS绑定的域名直接访问的 在这里提的目的当然是想让核心更加完善

xishang0128 commented 2 months ago

请提供最简可复现配置以及debug日志

liumingan commented 2 months ago

配置文件如下:

ymixed-port: 7890 socks-port: 7891 # SOCKS5 代理端口 redir-port: 7893 # 透明代理端口,用于 Linux 和 MacOS tproxy-port: 7892 allow-lan: true bind-address: "" # 绑定 IP 地址,仅作用于 allow-lan 为 true,''表示所有地址 authentication: # http,socks 入口的验证用户名,密码

find-process-mode has 3 values:always, strict, off

- always, 开启,强制匹配所有进程

- strict, 默认,由 mihomo 判断是否开启

- off, 不匹配进程,推荐在路由器上使用此模式

find-process-mode: off # strict # off log-level: silent # 日志等级 silent/error/warning/info/debug ipv6: true # 开启 IPv6 总开关,关闭阻断所有 IPv6 链接和屏蔽 DNS 请求 AAAA 记录 external-controller: 0.0.0.0:9090

配置 WEB UI 目录,使用 http://{{external-controller}}/ui 访问

external-ui: ui external-ui-url: "https://mirror.ghproxy.com/https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip"

在RESTful API端口上开启DOH服务器!!!该URL不会验证secret, 如果开启请自行保证安全问题 !!!

external-doh-server: /dns-query

全局 TLS 指纹,优先低于 proxy 内的 client-fingerprint

global-client-fingerprint: random # "chrome","firefox","safari","ios","random","none"

TCP keep alive interval

keep-alive-interval: 600 unified-delay: true # 统一延迟 tcp-concurrent: false # false TCP并发

interface-name: en0 #出站接口

routing-mark: 6666

hosts: cn.bing.com: bing.com

自定义 geodata url

geodata-mode: true geox-url: geoip: "https://mirror.ghproxy.com/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip-lite.dat" geosite: "https://mirror.ghproxy.com/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat" mmdb: "https://mirror.ghproxy.com/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/country-lite.mmdb" asn: "https://mirror.ghproxy.com/https://github.com/xishang0128/geoip/releases/download/latest/GeoLite2-ASN.mmdb" geo-auto-update: false # 是否自动更新 geodata geo-update-interval: 24 # 更新间隔,单位:小时 profile: # 存储 select 选择记录 store-selected: true

持久化 fake-ip

store-fake-ip: false # true tun: enable: false stack: mixed # gvisor/mixed/system dns-hijack:

rules:

常见广告域名屏蔽

liumingan commented 2 months ago

[warning] | [TCP] dial DIRECT (match DomainSuffix/dynv6.net) [2408:824e:5116:2030:c91a:4832:d854:d8df]:50630 --> myhome20.dynv6.net:22 error: connect failed: dial tcp [2408:824e:5307:96c0::1]:22: i/o timeout 然而,同时ping是通的: image 关闭插件或者把插件设置为绕过国内,ssh就可以正常连接

xishang0128 commented 2 months ago

@liumingan 请提供"最简可复现配置"而不是一大堆对于debug无用的配置

liumingan commented 2 months ago

请提供最简可复现以及配置调试日志 我的配置已经贴出来了 大侠可以用自己的配置ssh连接一下myhome20.dynv6.net,很容易就复现了,看看是不是不通过核心可以连接,通过核心就无法连接

liumingan commented 2 months ago

@liumingan 请提供"最简可复现配置"而不是一大堆对于debug无用的配置

最简配置就是不用任何配置,直接用自己的配置去连接,看是不是通过核心了就不可以连接,不通过核心就可以连接

xishang0128 commented 2 months ago

@liumingan 请提供"最简可复现配置"而不是一大堆对于debug无用的配置

最简配置就是不用任何配置,直接用自己的配置去连接,看是不是通过核心了就不可以连接,不通过核心就可以连接

image image

xishang0128 commented 2 months ago

盲猜内核绑定wan接口导致无法连接lan,自行分流到lan

liumingan commented 2 months ago

盲猜内核绑定wan接口导致无法连接lan,自行分流到lan 绑定到lan???要连接的是远程ssh,不是本地的,分流到lan,外网都连接不上了,当然也连接不上远程路由器?流程是这样: 1/本地路由器ssh→远程路由器(myhome20.dynv6.net) ,本地路由器不开插件→可通; 开插件不过内核→可通;开插件过内核→不通。 2/远程路由器是官方原版,没有运行任何插件,开放了22端口用于远程管理,原来是为了防止ddns故障,所以绑定了两个ddns,一个绑定在wan口,一个绑定在lan口,绑定wan口的域名可以正常访问,上面说的所有情况(过核心或者不过核心)都是指的绑定在lan口的域名(myhome20.dynv6.net)。 3/以前一直在本地路由器上开启绕过国内,ssh连接远程路由器一直正常。 4/前几天想看看国内ip绕过核心会有多大的性能影响,故发现了此问题。

xishang0128 commented 2 months ago

不知道,没法复现,没救,另外你说了插件,这不是直接运行内核造成的问题,内核不负责解决