MetaCubeX / mihomo

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

[求助] ip 规则不走代理 #776

Closed fillpit closed 8 months ago

fillpit commented 9 months ago

我在家里的 docker 上装了一个 v2ray 服务端, 在公司用 clashX meta 分流连上家里的 v2ray服务来访问内网, 在浏览器上直接输入内网nas服务地址无法访问, 查看 clash的日志也没有访问日志, 但我用 ssh user@10.0.0.40 -o ProxyCommand='nc -x 127.0.0.1:10801 %h %p' 却可以连上家里的服务器, 希望大佬帮我看看我的配置哪出了问题

我的局域网网段: 10.0.0.1/24

clashX meta 版本:

image

clash 配置:

#---------------------------------------------------#
## 配置文件需要放置在 $HOME/.config/clash.meta/*.yaml

## 这份文件是clashX的基础配置文件,请尽量新建配置文件进行修改。

## 如果您不知道如何操作,请参阅
## Clash Meta wiki  https://docs.metacubex.one
## Clash Meta wiki  https://clash-meta.wiki
## Clash Meta Github文档  https://github.com/MetaCubeX/Clash.Meta/blob/Alpha/README.md

#---------------------------------------------------#

# port: 7890 # HTTP(S) 代理服务器端口
# socks-port: 7891 # SOCKS5 代理端口
mixed-port: 10801 # HTTP(S) 和 SOCKS 代理混合端口
# redir-port: 7892 # 透明代理端口,用于 Linux 和 MacOS

# Linux 透明代理服务器端口(TProxy TCP 和 TProxy UDP)
tproxy-port: 7893

allow-lan: true # 允许局域网连接
bind-address: "*" # 绑定 IP 地址,仅作用于 allow-lan 为 true,'*'表示所有地址

#  find-process-mode has 3 values:always, strict, off
#  - always, 开启,强制匹配所有进程
#  - strict, 默认,由 clash 判断是否开启
#  - off, 不匹配进程,推荐在路由器上使用此模式
find-process-mode: strict

# 规则匹配模型(rule/global/direct)
mode: rule

# GEO数据模式(更改geoip使用文件,mmdb或者dat,可选true / flase,true为dat,此项有默认值flase)
geodata-mode: true
# GEO文件加载模式(standard: 标准加载器, memconservative: 专为内存受限(小内存)设备优化的加载器(默认值))
geodata-loader: standard
# 自定义 geodata url
geox-url:
  geoip: https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat
  geosite: https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat
  mmdb: https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/country.mmdb

# 日志等级 silent/error/warning/info/debug
log-level: info

# 开启 IPv6 总开关,关闭阻断所有 IPv6 链接和屏蔽 DNS 请求 AAAA 记录
ipv6: true

# RESTful API 监听地址
external-controller: 0.0.0.0:9090
# API 的访问密钥
secret: '123456'
# TCP 并发连接所有 IP, 将使用最快握手的 TCP
tcp-concurrent: true
# 配置 WEB UI 目录,使用 http://{{external-controller}}/ui 访问
# external-ui: "/etc/Clash-Meta/ui"

# 全局 TLS 指纹,优先低于 proxy 内的 client-fingerprint
# 可选: "chrome","firefox","safari","ios","random","none" options.
# Utls is currently support TLS transport in TCP/grpc/WS/HTTP for VLESS/Vmess and trojan.
global-client-fingerprint: chrome

# 为 Linux 下的出站连接提供默认流量标记
routing-mark: 2233

# 缓存
profile:
  # 储存 API 对策略组的选择,以供下次启动时使用
  store-selected: true
  # 储存 fakeip 映射表,域名再次发生连接时,使用原有映射地址
  store-fake-ip: true

# 统一延迟, 更换延迟计算方式,去除握手等额外延迟
unified-delay: false

#【Meta专属】sniffer域名嗅探器
# 开启此功能 会导致如果不使用Clash内置的DNS解析服务,就无法准确还原域名,进行域名分流的问题。
sniffer:
  enable: true                          # 嗅探器开关  
  sniff:
    TLS:                                # TLS 默认如果不配置 ports 默认嗅探 443
      ports: [443, 8443]
    HTTP:                               # 需要嗅探的端口, 默认嗅探 80
      ports: [80, 8080-8880]
      override-destination: true        # 是否使用嗅探结果作为实际访问,默认 true
  force-domain:
    - +.v2ex.com
    - google.com
  # 白名单,跳过嗅探结果
  skip-domain:
    - Mijia Cloud
    - 'dlg.io.mi.com'
    - '+.apple.com'

tun:
  enable: true                          # 是否启用 tun 模式来路由全局流量。
  stack: gvisor                         # tun 模式堆栈,如无使用问题,建议使用 system 栈;MacOS 用户推荐 gvisor 栈
  dns-hijack:                           # dns 劫持,一般设置为 any:53 即可, 即劫持所有 53 端口的 udp 流量
    - any:53
    - tcp://any:53
  auto-route: true                      # 自动设置全局路由,可以自动将全局流量路由进入 tun 网卡。
  auto-detect-interface: true           # 自动选择流量出口接口,多出口网卡同时连接的设备建议手动指定出口网卡

# 使用系统的dns, 也就是dhcp服务器下发的dns服务地址(使用我自建的dns服务来分流)
dns:
  enable: true                         # 关闭将使用系统 DNS
  prefer-h3: true                       # 开启 DoH 支持 HTTP/3,将并发尝试
  listen: ':53'                        # 开启 DNS 服务器监听
  ipv6: true                            # false 将返回 AAAA 的空结果    
  ipv6-timeout: 300                     # 单位:ms,内部双栈并发时,向上游查询 AAAA 时,等待 AAAA 的时间,默认 100ms
  enhanced-mode: fake-ip                # or redir-host
  fake-ip-range: 28.0.0.1/8             # fake-ip 池设置
  fake-ip-filter:
    - '*'
    - '+.lan'
    - '+.local'
  nameserver:
    - tcp://223.5.5.5
  nameserver-policy:
    "geosite:cn,private":
      - tcp://223.5.5.5
  fallback:
    - tcp://1.1.1.1
    - tcp://8.8.8.8

proxies:
  - name: "🇸🇬 [vless-reality-vision] 新家坡-me"
    type: vless
    server: xxx
    port: xxx
    uuid: xxx
    network: tcp
    tls: true
    udp: true
    flow: xtls-rprx-vision
    servername: addons.mozilla.org
    reality-opts:
      public-key: "qhTzYYIgBzDLNYR79oxftqdo1kzL-1_hGJKfqrOliCY"
      short-id: 9ab288f7
    client-fingerprint: chrome
  - name: "🇸🇬 [trojan] 新家坡-me"
    type: trojan
    server: xxx
    port: xxx
    password: xxx
    udp: true
    skip-cert-verify: true

  - name: "🧙‍♂️[vmess] HOME"
    type: vmess
    server: xxx
    port: xxx
    uuid: xxx
    alterId: 32
    cipher: auto

# 游戏规则集下载地址: https://github.com/FQrabbit/SSTap-Rule/
# 其它第三方规则:
# 1. https://github.com/DivineEngine/Profiles/tree/master
# 2. https://github.com/dler-io/Rules
# 3. https://github.com/ACL4SSR/ACL4SSR/tree/master
rule-providers:
  # 守望先锋-亚服
  overwatch:
    type: file
    behavior: ipcidr
    path: ./providers/Overwatch-Asia.rules
    #【Meta专属】URL可根据rule设定匹配对应的策略,方便更新provider
    url: "https://fastly.jsdelivr.net/gh/FQrabbit/SSTap-Rule@master/rules/Overwatch-Asia.rules"
    interval: 600
  # apex
  Apex-uu:
    type: file
    behavior: ipcidr
    path: ./providers/Apex-uu.rules
    #【Meta专属】URL可根据rule设定匹配对应的策略,方便更新provider
    url: "https://fastly.jsdelivr.net/gh/FQrabbit/SSTap-Rule@master/rules/Apex-uu.rules"
    interval: 600
  LAN:
    type: http
    behavior: classical
    path: ./providers/LAN.yaml
    #【Meta专属】URL可根据rule设定匹配对应的策略,方便更新provider
    url: "https://fastly.jsdelivr.net/gh/dler-io/Rules@main/Clash/Provider/LAN.yaml"
    interval: 600

proxy-groups:
  - name: "🚀 节点选择"
    type: select
    proxies:
      - "♻️ 自动选择"
      - "🇸🇬 [vless-reality-vision] 新家坡-me"
      - "🇸🇬 [trojan] 新家坡-me"
      - DIRECT
  - name: "♻️ 自动选择"
    type: url-test
    url: http://cp.cloudflare.com/generate_204
    interval: '180'
    tolerance: '100'
    proxies:
      - "🇸🇬 [vless-reality-vision] 新家坡-me"
      - "🇸🇬 [trojan] 新家坡-me"
  - name: "🏠 回家"
    type: select
    proxies:
      - DIRECT
      - "🧙‍♂️[vmess] HOME"
  - name: Ⓜ️ 微软服务
    type: select
    proxies:
      - DIRECT
      - "🇸🇬 [vless-reality-vision] 新家坡-me"
      - "🇸🇬 [trojan] 新家坡-me"
  - name: "🍎 苹果服务"
    type: select
    proxies:
      - DIRECT
      - "🇸🇬 [vless-reality-vision] 新家坡-me"
      - "🇸🇬 [trojan] 新家坡-me"
      - "🚀 节点选择"
  - name: "📺 哔哩东南亚"
    type: select
    proxies:
      - DIRECT
      - "🇸🇬 [vless-reality-vision] 新家坡-me"
      - "🇸🇬 [trojan] 新家坡-me"
      - "🚀 节点选择"
  - name: "🐟 漏网之鱼"
    type: select
    proxies:
      - "♻️ 自动选择"
      - "🇸🇬 [vless-reality-vision] 新家坡-me"
      - "🇸🇬 [trojan] 新家坡-me"
      - DIRECT
rules:
  # 自己的规则放
  - IP-CIDR,113.106.121.1/32,DIRECT,no-resolve
  - IP-CIDR,28.0.0.1/8,REJECT,no-resolve
  - DOMAIN-SUFFIX,fillpit.top,DIRECT
  - DOMAIN-SUFFIX,fillpit.cn,DIRECT
  - DOMAIN-SUFFIX,fillpit66.xyz,DIRECT
  - DOMAIN-SUFFIX,proxy.proxy302.com,DIRECT

  # 家庭网络
  - "IP-CIDR,10.0.0.0/24,🏠 回家"

  # 常用局域网 ip 段 直连
  - RULE-SET,LAN,DIRECT

  # ******** 自定义 规则区域 start ********
  # ****** 默认 非国内的域名和ip都走代理 ******
  # ****** 也就是说分流规则这里主要关注 需要直连的地址 和需要屏蔽的地址 (没匹配上的都走代理) ******

  # 测速网站 直连
  - GEOSITE,speedtest,DIRECT
    # 私有网络专用域名
  - GEOSITE,private,DIRECT
    # 哔哩哔哩 直连
  - GEOSITE,bilibili,DIRECT
  # xobx
  - GEOSITE,xbox,DIRECT
  # 微软家的服务 走代理
  - GEOSITE,microsoft,Ⓜ️ 微软服务
  # apple 的服务
  - GEOSITE,apple,🍎 苹果服务
  # telegram
  - GEOSITE,telegram,♻️ 自动选择
  # game
  - GEOSITE,category-games,🚀 节点选择
  # 娱乐类
  - GEOSITE,category-entertainment,♻️ 自动选择
  # 守望先锋-亚服
  - RULE-SET,overwatch,🚀 节点选择
  # apex
  - RULE-SET,Apex-uu,🚀 节点选择
  # dev
  - GEOSITE,category-dev,♻️ 自动选择

  # ******** 自定义 规则区域 end ********

  # 国内域名 直连
  - GEOSITE,CN,DIRECT
  # 国内 ip 直连
  - GEOIP,CN,DIRECT
  # 没匹配上的
  - DST-PORT,80,🐟 漏网之鱼
  - DST-PORT,443,🐟 漏网之鱼
  - DST-PORT,22,🐟 漏网之鱼
  - MATCH,DIRECT

家里v2ray 服务配置:

{
  "log" : {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "port": 8848,
      "listen": "0.0.0.0",
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "xxx",
            "level": 1,
            "alterId": 64
          }
        ]
      },
      "sniffing": {
        "enabled": true,
        "destOverride": [
          "http",
          "tls"
        ]
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {},
      "tag": "direct"
    },
    {
      "protocol": "freedom",
      "settings": {},
      "tag": "home"
    },
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],
  "routing": {
    "rules": [
      {
        "type": "field",
        "outboundTag": "home",
        "ip": [
          "10.0.0.0/16"
        ]
      }
    ],
    "domainStrategy": "IPOnDemand"
  }
}
xishang0128 commented 8 months ago

tun并不会路由局域网段,你需要手动将局域网段路由到tun网卡,或者配置自定义路由