taamarin / ClashforMagisk

Transparent proxy(Tproxy) for android (root)
682 stars 47 forks source link

出现了一个奇怪的问题,有没有人能解决一下。 #26

Closed ghost closed 1 year ago

ghost commented 1 year ago

用的是最新版的3.5.1,导入的配置文件在所有其他客户端都能用,clashforAndorid,clashforwindows都能用,但是在这个模块里面导入进去后只有Global,一个DIRECT一个REJECT,我查看了run目录下的config.yaml文件,这个文件里面是没有配置信息的,也就是说我的配置文件在导入后直接把节点全部丢失了,请问有人知道是什么问题吗?

ghost commented 1 year ago

主要就是配置文件和模板合并之后配置文件里面的节点全部不翼而飞就很恼火

taamarin commented 1 year ago

主要就是配置文件和模板合并之后配置文件里面的节点全部不翼而飞就很恼火

可能复制文件有问题, https://github.com/taamarin/ClashforMagisk/blob/master/scripts/clash.service#L76

# port: 9494
# socks-port: 9595
# mixed-port: 9696
redir-port: 9797
tproxy-port: 9898
mode: rule
allow-lan: true
unified-delay: true
bind-address: '*'
# info / warning / error / debug / silent
log-level: warning
ipv6: false
geodata-mode: true
geodata-loader: memconservative
external-controller: 0.0.0.0:9090 
external-controller-tls: 0.0.0.0:9091 # RESTful API HTTPS device
# secret: "123456"
external-ui: ../dashboard/dist
tcp-concurrent: false
inbound-tfo: true
# global-client-fingerprint: chrome
# interface-name: ""
# routing-mark: 233
geox-url:
  mmdb: "https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb"
  geoip: "https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/geoip.dat"
  geosite: "https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/geosite.dat"
#  - always, Diaktifkan untuk memaksa semua proses agar cocok
#  - strict, Secara default, ini dinilai dari √clash apakah diaktifkan atau tidak
#  - off, tidak cocok dengan prosesnya, disarankan untuk menggunakan mode ini di router
find-process-mode: off # always, strict, off

profile:
  store-selected: true
  store-fake-ip: false

experimental:
  sniff-tls-sni: false
  udp-fallback-match: false
  fingerprint: ""

sniffer:
  enable: false
  ## 对 redir-host 类型识别的流量进行强制嗅探
  ## 如:Tun、Redir 和 TProxy 并 DNS 为 redir-host 皆属于
  force-dns-mapping: true
  parse-pure-ip: true
  override-destination: true
  sniff:
    TLS:
    #  ports:[443, 8443]
    HTTP:
      ports: [80, 8080-8880]
      override-destination: true
  force-domain:
    - +.v2ex.com
  # skip-domain:
    # - +.google.com
  sniffing:
    - tls
    - http
  port-whitelist:
    - "80"
    - "443"

tun:
  enable: false
  # biarkan default utun
  device: utun
  mtu: 9000
  # gvisor / lwip / system
  stack: system
  dns-hijack:
    - any:53
  auto-route: false
  auto-detect-interface: false
  inet4-address: 172.19.0.1/30
  inet6-address: [fdfe:dcba:9876::1/126]
  strict_route: false
  # inet4_route_address:
    # - 0.0.0.0/1
    # - 128.0.0.0/1
  # inet6_route_address:
    # - "::/1"
    # - "8000::/1"
  # include_android_user:
  # - 0
  # - 10
  # include_package:
  # - com.android.chrome
  # exclude_package:
  # - com.android.captiveportallogin

dns:
  enable: true
  ipv6: false
  prefer-h3: true
  default-nameserver:
    - '1.1.1.1'
    - '8.8.8.8'
  listen: 0.0.0.0:1053
  use-hosts: true
  # redir-host / fake-ip
  enhanced-mode: fake-ip
  fake-ip-range: 43.0.0.1/8
  fake-ip-filter:
    - '+.lan'
    - '+.stun.*.*'
    - '+.stun.*.*.*'
    - '+.stun.*.*.*.*'
    - '+.stun.*.*.*.*.*'
  nameserver:
    - '1.1.1.1'
    - 'tls://1.0.0.1:853'
    - '8.8.8.8'
    - 'tls://8.8.4.4:853'
    # - '127.0.0.1'
    # - 'tls://1.1.1.1:853' # DNS over TLS
    # - 'tls://1dot1dot1dot1.cloudflare-dns.com:853'
    # - dhcp://rmnet_data+ # dns from dhcp
    # - https://doh.pub/dns-query # DNS over HTTPS
    # - https://dns.alidns.com/dns-query#h3=true
    # - https://mozilla.cloudflare-dns.com/dns-query#clash&h3=true
  # proxy-server-nameserver:
    # - '1.1.1.1'
  # # nameserver-policy:
    # # '+.googlesyndication.com': 1.1.1.1
    # # 'geosite:category-ads-all': 127.0.0.1
  # fallback:
    # - 'https://8.8.8.8/dns-query'
    # - 'tcp://8.8.4.4'
    # # - 'quic://dns.adguard.com:784' # DNS over QUIC
  # fallback-filter:
    # geoip: false
    # geoip-code: 'ID'
    # geosite:
      # # - gfw
    # ipcidr:
      # # - 240.0.0.0/4
    # domain:
      # - '+.google.com'
      # - '+.facebook.com'
      # - '+.youtube.com'
      # - '+.github.com'
hosts:
  'ota.googlezip.net': 127.0.0.1
  'ota-cache1.googlezip.net': 127.0.0.1
  'ota-cache2.googlezip.net': 127.0.0.1

proxies:

proxy-providers:
  proxies:
    type: http
    path: './proxies/proxies.yaml'
    url: ''
    interval: 86400
    health-check:
      enable: true
      url: http://www.gstatic.com/generate_204
      interval: 300
      lazy: true

rule-providers:
  unban:
    type: http
    behavior: classical
    path: ./rules/unban.yaml
    url: ''
    interval: 86400
  proxy-lite:
    type: http
    behavior: classical
    path: ./rules/proxy-lite.yaml
    url: ''
    interval: 86400
  proxy-media:
    type: http
    behavior: classical
    path: ./rules/proxy-media.yaml
    url: ''
    interval: 86400
  china-domain:
    type: http
    behavior: classical
    path: ./rules/china-domain.yaml
    url: ''
    interval: 86400
  china-company-ip:
    type: http
    behavior: ipcidr
    path: ./rules/china-company-ip.yaml
    url: ''
    interval: 86400
  telegram:
    type: http
    behavior: classical
    path: ./rules/telegram.yaml
    url: ''
    interval: 86400

proxy-groups:
  - name: PROXY
    type: select
    use: 
      - proxies
  - name: MATCH
    type: select
    proxies:
      - PROXY
      - DIRECT

rules:
  - AND,((DST-PORT,443),(NETWORK,UDP)),REJECT
  - RULE-SET,unban,DIRECT
  - GEOSITE,private,DIRECT
  - GEOIP,private,DIRECT,no-reslove
  - AND,((DST-PORT,5228-5230),(NETWORK,TCP)),DIRECT
  - RULE-SET,telegram,PROXY
  - RULE-SET,proxy-lite,PROXY
  - RULE-SET,proxy-media,PROXY
  - DOMAIN-KEYWORD,ole,PROXY
  - RULE-SET,china-domain,DIRECT
  - RULE-SET,china-company-ip,DIRECT,no-resolve
  - GEOIP,cn,DIRECT
  - MATCH,MATCH

config.yaml 文件将从 proxies: line 150 down 复制,确保它只显示 proxies: 前面没有符号

ghost commented 1 year ago

主要就是配置文件和模板合并之后配置文件里面的节点全部不翼而飞就很恼火

可能复制文件有问题, https://github.com/taamarin/ClashforMagisk/blob/master/scripts/clash.service#L76

# port: 9494
# socks-port: 9595
# mixed-port: 9696
redir-port: 9797
tproxy-port: 9898
mode: rule
allow-lan: true
unified-delay: true
bind-address: '*'
# info / warning / error / debug / silent
log-level: warning
ipv6: false
geodata-mode: true
geodata-loader: memconservative
external-controller: 0.0.0.0:9090 
external-controller-tls: 0.0.0.0:9091 # RESTful API HTTPS device
# secret: "123456"
external-ui: ../dashboard/dist
tcp-concurrent: false
inbound-tfo: true
# global-client-fingerprint: chrome
# interface-name: ""
# routing-mark: 233
geox-url:
  mmdb: "https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb"
  geoip: "https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/geoip.dat"
  geosite: "https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/geosite.dat"
#  - always, Diaktifkan untuk memaksa semua proses agar cocok
#  - strict, Secara default, ini dinilai dari √clash apakah diaktifkan atau tidak
#  - off, tidak cocok dengan prosesnya, disarankan untuk menggunakan mode ini di router
find-process-mode: off # always, strict, off

profile:
  store-selected: true
  store-fake-ip: false

experimental:
  sniff-tls-sni: false
  udp-fallback-match: false
  fingerprint: ""

sniffer:
  enable: false
  ## 对 redir-host 类型识别的流量进行强制嗅探
  ## 如:Tun、Redir 和 TProxy 并 DNS 为 redir-host 皆属于
  force-dns-mapping: true
  parse-pure-ip: true
  override-destination: true
  sniff:
    TLS:
    #  ports:[443, 8443]
    HTTP:
      ports: [80, 8080-8880]
      override-destination: true
  force-domain:
    - +.v2ex.com
  # skip-domain:
    # - +.google.com
  sniffing:
    - tls
    - http
  port-whitelist:
    - "80"
    - "443"

tun:
  enable: false
  # biarkan default utun
  device: utun
  mtu: 9000
  # gvisor / lwip / system
  stack: system
  dns-hijack:
    - any:53
  auto-route: false
  auto-detect-interface: false
  inet4-address: 172.19.0.1/30
  inet6-address: [fdfe:dcba:9876::1/126]
  strict_route: false
  # inet4_route_address:
    # - 0.0.0.0/1
    # - 128.0.0.0/1
  # inet6_route_address:
    # - "::/1"
    # - "8000::/1"
  # include_android_user:
  # - 0
  # - 10
  # include_package:
  # - com.android.chrome
  # exclude_package:
  # - com.android.captiveportallogin

dns:
  enable: true
  ipv6: false
  prefer-h3: true
  default-nameserver:
    - '1.1.1.1'
    - '8.8.8.8'
  listen: 0.0.0.0:1053
  use-hosts: true
  # redir-host / fake-ip
  enhanced-mode: fake-ip
  fake-ip-range: 43.0.0.1/8
  fake-ip-filter:
    - '+.lan'
    - '+.stun.*.*'
    - '+.stun.*.*.*'
    - '+.stun.*.*.*.*'
    - '+.stun.*.*.*.*.*'
  nameserver:
    - '1.1.1.1'
    - 'tls://1.0.0.1:853'
    - '8.8.8.8'
    - 'tls://8.8.4.4:853'
    # - '127.0.0.1'
    # - 'tls://1.1.1.1:853' # DNS over TLS
    # - 'tls://1dot1dot1dot1.cloudflare-dns.com:853'
    # - dhcp://rmnet_data+ # dns from dhcp
    # - https://doh.pub/dns-query # DNS over HTTPS
    # - https://dns.alidns.com/dns-query#h3=true
    # - https://mozilla.cloudflare-dns.com/dns-query#clash&h3=true
  # proxy-server-nameserver:
    # - '1.1.1.1'
  # # nameserver-policy:
    # # '+.googlesyndication.com': 1.1.1.1
    # # 'geosite:category-ads-all': 127.0.0.1
  # fallback:
    # - 'https://8.8.8.8/dns-query'
    # - 'tcp://8.8.4.4'
    # # - 'quic://dns.adguard.com:784' # DNS over QUIC
  # fallback-filter:
    # geoip: false
    # geoip-code: 'ID'
    # geosite:
      # # - gfw
    # ipcidr:
      # # - 240.0.0.0/4
    # domain:
      # - '+.google.com'
      # - '+.facebook.com'
      # - '+.youtube.com'
      # - '+.github.com'
hosts:
  'ota.googlezip.net': 127.0.0.1
  'ota-cache1.googlezip.net': 127.0.0.1
  'ota-cache2.googlezip.net': 127.0.0.1

proxies:

proxy-providers:
  proxies:
    type: http
    path: './proxies/proxies.yaml'
    url: ''
    interval: 86400
    health-check:
      enable: true
      url: http://www.gstatic.com/generate_204
      interval: 300
      lazy: true

rule-providers:
  unban:
    type: http
    behavior: classical
    path: ./rules/unban.yaml
    url: ''
    interval: 86400
  proxy-lite:
    type: http
    behavior: classical
    path: ./rules/proxy-lite.yaml
    url: ''
    interval: 86400
  proxy-media:
    type: http
    behavior: classical
    path: ./rules/proxy-media.yaml
    url: ''
    interval: 86400
  china-domain:
    type: http
    behavior: classical
    path: ./rules/china-domain.yaml
    url: ''
    interval: 86400
  china-company-ip:
    type: http
    behavior: ipcidr
    path: ./rules/china-company-ip.yaml
    url: ''
    interval: 86400
  telegram:
    type: http
    behavior: classical
    path: ./rules/telegram.yaml
    url: ''
    interval: 86400

proxy-groups:
  - name: PROXY
    type: select
    use: 
      - proxies
  - name: MATCH
    type: select
    proxies:
      - PROXY
      - DIRECT

rules:
  - AND,((DST-PORT,443),(NETWORK,UDP)),REJECT
  - RULE-SET,unban,DIRECT
  - GEOSITE,private,DIRECT
  - GEOIP,private,DIRECT,no-reslove
  - AND,((DST-PORT,5228-5230),(NETWORK,TCP)),DIRECT
  - RULE-SET,telegram,PROXY
  - RULE-SET,proxy-lite,PROXY
  - RULE-SET,proxy-media,PROXY
  - DOMAIN-KEYWORD,ole,PROXY
  - RULE-SET,china-domain,DIRECT
  - RULE-SET,china-company-ip,DIRECT,no-resolve
  - GEOIP,cn,DIRECT
  - MATCH,MATCH

config.yaml 文件将从 proxies: line 150 down 复制,确保它只显示 proxies: 前面没有符号

谢谢,是我弄错了,根据模板重写了配置文件之后就能用了,是我配置文件没弄好QAQ

ghost commented 1 year ago

我的解决方案是,把clash.service文件中的temporary_config_file函数直接删了,然后把我自己的配置文件按照template文件的格式重写,然后直接把配置文件复制到/data/clash/run目录下,这样就行了