OpenClash icon indicating copy to clipboard operation
OpenClash copied to clipboard

[Bug] fake-ip模式下无法通过DDNS域名访问家里设备

Open himonster1 opened this issue 3 years ago • 7 comments

Verify Steps

  • [X] Tracker 我已经在 Issue Tracker 中找过我要提出的问题
  • [X] Latest 我已经使用最新 Dev 版本测试过,问题依旧存在
  • [X] Core 这是 OpenClash 存在的问题,并非我所使用的 Clash 或 Meta 等内核的特定问题
  • [X] Meaningful 我提交的不是无意义的 催促更新或修复 请求

OpenClash Version

v0.45.30-beta

Bug on Environment

Official OpenWrt, Lean

Bug on Platform

Linux-amd64(x86-64)

To Reproduce

开启fake-IP 无法访问家里设备,提示无法连接到服务器

Describe the Bug

ikuai(主路由) + openwrt(旁路由)

ikuai负责DDNS openwrt负责openclash,openwrt只开启了openclash没有开启其他任何的服务器

切换到fake-ip模式之后,无法访问家里的设备,但是通过公网IP可以访问

Redir-Host一切正常

OpenClash Log

OpenClash 调试日志

生成时间: 2022-06-17 18:30:04 插件版本: 隐私提示: 上传此日志前请注意检查、屏蔽公网IP、节点、密码等相关敏感信息


#===================== 系统信息 =====================#

主机型号: QEMU Standard PC (Q35 + ICH9 - Intel(R) Pentium(R) CPU 4415U @ 2.30GHz : 2 Core 4 Thread
固件版本: OpenWrt SNAPSHOT r4573-23f225e84
LuCI版本: git-22.161.56906-efa5cfe-1
内核版本: 5.15.47
处理器架构: x86_64

#此项有值时,如不使用IPv6,建议到网络-接口-lan的设置中禁用IPV6的DHCP
IPV6-DHCP: 

#此项结果应仅有配置文件的DNS监听地址
Dnsmasq转发设置: 127.0.0.1#7874

#===================== 依赖检查 =====================#

dnsmasq-full: 已安装
coreutils: 已安装
coreutils-nohup: 已安装
bash: 已安装
curl: 已安装
ca-certificates: 已安装
ipset: 已安装
ip-full: 已安装
iptables-mod-tproxy: 已安装
kmod-ipt-tproxy: 已安装
iptables-mod-extra: 已安装
kmod-ipt-extra: 已安装
libcap: 已安装
libcap-bin: 已安装
ruby: 已安装
ruby-yaml: 已安装
ruby-psych: 已安装
ruby-pstore: 已安装
ruby-dbm: 未安装
kmod-tun(TUN模式): 已安装
luci-compat(Luci-19.07): 已安装
kmod-inet-diag(PROCESS-NAME): 未安装

#===================== 内核检查 =====================#

运行状态: 运行中
进程pid: 18268
运行权限: 18268: cap_dac_override,cap_net_bind_service,cap_net_admin,cap_net_raw,cap_sys_ptrace,cap_sys_resource=eip
运行用户: nobody
已选择的架构: linux-amd64

#下方无法显示内核版本号时请确认您的内核版本是否正确或者有无权限
Tun内核版本: 2022.05.18
Tun内核文件: 存在
Tun内核运行权限: 正常

Dev内核版本: v1.10.6-12-g09d49ba
Dev内核文件: 存在
Dev内核运行权限: 正常

Meta内核版本: alpha-g01d2e88
Meta内核文件: 存在
Meta内核运行权限: 正常

#===================== 插件设置 =====================#

当前配置文件: /etc/openclash/config/ji.yaml
启动配置文件: /etc/openclash/ji.yaml
运行模式: fake-ip
默认代理模式: rule
UDP流量转发(tproxy): 启用
DNS劫持: 启用
自定义DNS: 停用
IPV6代理: 停用
IPV6-DNS解析: 停用
禁用Dnsmasq缓存: 启用
自定义规则: 启用
仅允许内网: 启用
仅代理命中规则流量: 启用
仅允许常用端口流量: 停用
绕过中国大陆IP: 停用
DNS远程解析: 启用
路由本机代理: 启用

#启动异常时建议关闭此项后重试
混合节点: 停用
保留配置: 停用

#启动异常时建议关闭此项后重试
第三方规则: 停用

#===================== 自定义规则 一 =====================#
script:
##  shortcuts:
##    Notice: The core timezone is UTC
##    CST 20:00-24:00 = time.now().hour > 12 and time.now().hour < 16
##    内核时区为UTC,故以下time.now()函数的取值需要根据本地时区进行转换
##    北京时间(CST) 20:00-24:00 = time.now().hour > 12 and time.now().hour < 16
##    quic: network == 'udp' and dst_port == 443 and (geoip(resolve_ip(host)) != 'CN' or geoip(dst_ip) != 'CN')
##    time-limit: in_cidr(src_ip,'192.168.1.2/32') and time.now().hour < 20 or time.now().hour > 21
##    time-limit: src_ip == '192.168.1.2' and time.now().hour < 20 or time.now().hour > 21

##  code: |
##    def main(ctx, metadata):
##        directkeywordlist = ["baidu"]
##        for directkeyword in directkeywordlist:
##          if directkeyword in metadata["host"]:
##            ctx.log('[Script] matched keyword %s use direct' % directkeyword)
##            return "DIRECT"

rules:
##- SCRIPT,quic,REJECT #shortcuts rule
##- SCRIPT,time-limit,REJECT #shortcuts rule

##- PROCESS-NAME,curl,DIRECT #匹配路由自身进程(curl直连)
##- DOMAIN-SUFFIX,google.com,Proxy #匹配域名后缀(交由Proxy代理服务器组)
##- DOMAIN-KEYWORD,google,Proxy #匹配域名关键字(交由Proxy代理服务器组)
##- DOMAIN,google.com,Proxy #匹配域名(交由Proxy代理服务器组)
##- DOMAIN-SUFFIX,ad.com,REJECT #匹配域名后缀(拒绝)
##- IP-CIDR,127.0.0.0/8,DIRECT #匹配数据目标IP(直连)
##- SRC-IP-CIDR,192.168.1.201/32,DIRECT #匹配数据发起IP(直连)
##- DST-PORT,80,DIRECT #匹配数据目标端口(直连)
##- SRC-PORT,7777,DIRECT #匹配数据源端口(直连)
- DOMAIN-SUFFIX,ibaidu.love,DIRECT

##排序在上的规则优先生效,如添加(去除规则前的#号):
##IP段:192.168.1.2-192.168.1.200 直连
##- SRC-IP-CIDR,192.168.1.2/31,DIRECT
##- SRC-IP-CIDR,192.168.1.4/30,DIRECT
##- SRC-IP-CIDR,192.168.1.8/29,DIRECT
##- SRC-IP-CIDR,192.168.1.16/28,DIRECT
##- SRC-IP-CIDR,192.168.1.32/27,DIRECT
##- SRC-IP-CIDR,192.168.1.64/26,DIRECT
##- SRC-IP-CIDR,192.168.1.128/26,DIRECT
##- SRC-IP-CIDR,192.168.1.192/29,DIRECT
##- SRC-IP-CIDR,192.168.1.200/32,DIRECT

##IP段:192.168.1.202-192.168.1.255 直连
##- SRC-IP-CIDR,192.168.1.202/31,DIRECT
##- SRC-IP-CIDR,192.168.1.204/30,DIRECT
##- SRC-IP-CIDR,192.168.1.208/28,DIRECT
##- SRC-IP-CIDR,192.168.1.224/27,DIRECT

##此时IP为192.168.1.1和192.168.1.201的客户端流量走代理(策略),其余客户端不走代理
##因为Fake-IP模式下,IP地址为192.168.1.1的路由器自身流量可走代理(策略),所以需要排除

##仅设置路由器自身直连:
##- SRC-IP-CIDR,192.168.1.1/32,DIRECT
##- SRC-IP-CIDR,198.18.0.1/32,DIRECT

##DDNS
##- DOMAIN-SUFFIX,checkip.dyndns.org,DIRECT
##- DOMAIN-SUFFIX,checkipv6.dyndns.org,DIRECT
##- DOMAIN-SUFFIX,checkip.synology.com,DIRECT
##- DOMAIN-SUFFIX,ifconfig.co,DIRECT
##- DOMAIN-SUFFIX,api.myip.com,DIRECT
##- DOMAIN-SUFFIX,ip-api.com,DIRECT
##- DOMAIN-SUFFIX,ipapi.co,DIRECT
##- DOMAIN-SUFFIX,ip6.seeip.org,DIRECT
##- DOMAIN-SUFFIX,members.3322.org,DIRECT

##在线IP段转CIDR地址:http://ip2cidr.com
#===================== 自定义规则 二 =====================#
script:
##  shortcuts:
##    common_port: dst_port not in [21, 22, 23, 53, 80, 123, 143, 194, 443, 465, 587, 853, 993, 995, 998, 2052, 2053, 2082, 2083, 2086, 2095, 2096, 5222, 5228, 5229, 5230, 8080, 8443, 8880, 8888, 8889]

##  code: |
##    def main(ctx, metadata):
##        directkeywordlist = ["baidu"]
##        for directkeyword in directkeywordlist:
##          if directkeyword in metadata["host"]:
##            ctx.log('[Script] matched keyword %s use direct' % directkeyword)
##            return "DIRECT"

rules:
##- SCRIPT,common_port,DIRECT #shortcuts rule

##- DOMAIN-SUFFIX,google.com,Proxy #匹配域名后缀(交由Proxy代理服务器组)
##- DOMAIN-KEYWORD,google,Proxy #匹配域名关键字(交由Proxy代理服务器组)
##- DOMAIN,google.com,Proxy #匹配域名(交由Proxy代理服务器组)
##- DOMAIN-SUFFIX,ad.com,REJECT #匹配域名后缀(拒绝)
##- IP-CIDR,127.0.0.0/8,DIRECT #匹配数据目标IP(直连)
##- SRC-IP-CIDR,192.168.1.201/32,DIRECT #匹配数据发起IP(直连)
##- DST-PORT,80,DIRECT #匹配数据目标端口(直连)
##- SRC-PORT,7777,DIRECT #匹配数据源端口(直连)

#===================== 配置文件 =====================#

OpenClash Config

No response

Expected Behavior

查了很久的问题,其他issue的都看了,google也查了,都解决不了, 自定义规则设置了- DOMAIN-SUFFIX,ibaidu.love,DIRECT 不顶用 dns - 高级设置 添加了域名 不顶用

在这球一个官方的解决方案

Screenshots

No response

himonster1 avatar Jun 17 '22 10:06 himonster1

加到fakeip-filter

vernesong avatar Jun 17 '22 11:06 vernesong

加到fakeip-filter

vernesong avatar Jun 17 '22 11:06 vernesong

加到fakeip-filter

在自定义规则里面加吗? 加到fakeip-filter字段?

himonster1 avatar Jun 18 '22 09:06 himonster1

高级设置第一个

vernesong avatar Jun 18 '22 14:06 vernesong

感谢🙏

himonster1 avatar Jun 19 '22 09:06 himonster1

解决了嘛 我也遇到了 fakeip-filter在哪找不到

jupitersh avatar Aug 07 '22 10:08 jupitersh

遇到和楼主一模一样的问题,花了我大量时间搜索学习,但都未能圆满解决,总感觉与openclash有关,所以寻到这里看看大佬有没有亲自出面答疑解惑,非常感谢 @vernesong 大佬的指导和一直的辛勤付出,按上述方法处理后终于得到圆满的解决了!

qjwq avatar Aug 22 '22 16:08 qjwq

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Oct 22 '22 08:10 github-actions[bot]

试试把这个加入Clash的直连名单:

- DOMAIN-SUFFIX,synology.cn,DIRECT

- DOMAIN-SUFFIX,synology.com,DIRECT

- DOMAIN-SUFFIX,quickconnect.to,DIRECT

- DOMAIN-SUFFIX,quickconnect.cn,DIRECT

- DOMAIN-SUFFIX,akamai.com,DIRECT

- DOMAIN-SUFFIX,dyndns.com,DIRECT

- DOMAIN-SUFFIX,dyndns.org,DIRECT

至少对我有用(fake-ip模式下)

hejiajin720 avatar Feb 06 '23 03:02 hejiajin720

遇到一样,花一样的的的问题时间时间搜索,但搜索,但未未搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索时间时间,openclash有关,openclash有关,所以@vernesong大佬的指导和一直的辛勤付出,按上叙述方法处理后终于得到圆满的解决了!

fakeip-filter在哪里啊 找不到啊

kl79613 avatar Apr 07 '23 14:04 kl79613

高级设置第一个

fakeip-filter 具体怎么设置的啊,大佬

kl79613 avatar Apr 07 '23 14:04 kl79613

fakeip-filter

软路由中openclash在覆写设置-DNS设置-找到了fakeip-filter 选项;然后勾选后以”+.域名后缀“的方式成功解决了这个问题。非常感谢!真的困扰了很久,同时还解决苹果网络不挂代理无法访问AppleMusic和AppleTV的问题。

yzethan avatar Aug 05 '23 14:08 yzethan

试试把这个加入Clash的直连名单:

- DOMAIN-SUFFIX,synology.cn,DIRECT

- DOMAIN-SUFFIX,synology.com,DIRECT

- DOMAIN-SUFFIX,quickconnect.to,DIRECT

- DOMAIN-SUFFIX,quickconnect.cn,DIRECT

- DOMAIN-SUFFIX,akamai.com,DIRECT

- DOMAIN-SUFFIX,dyndns.com,DIRECT

- DOMAIN-SUFFIX,dyndns.org,DIRECT

至少对我有用(fake-ip模式下)

按照你的方式设置解决了 非常感谢 fake-ip肉眼可见的快多了

FlyRocker avatar Feb 23 '24 07:02 FlyRocker