Code Monkey home page Code Monkey logo

clash-verge's People

Contributors

angrylid avatar arom1a avatar boatrainlsz avatar ctaoist avatar dyxushuai avatar foundthewout avatar goooler avatar hougelangley avatar inrm3d avatar keiko233 avatar kimiblock avatar limsanity avatar loosheng avatar madoka773 avatar me1ting avatar moeshin avatar mr-spade avatar mzhao-ouo avatar particleg avatar priestch avatar riverscn avatar shvchk avatar solancer avatar tatiustaitus avatar ttys3 avatar w568w avatar whitemirror33 avatar yettera765 avatar zzzgydi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

clash-verge's Issues

tun模式无法命中域名,全命中IP

手动增加了wintun.ddl,并且管理员启动,tun模式正常能用。但是tun模式下,域名规则无法命中,全命中了IP规则或者命中最后的“漏网之鱼”。已知开启了fake-ip和dns-hijack。用其他GUI或者clash core直接启动,是能够正常域名命中的。部分配置如下

# 混合代理端口
mixed-port: 1080

# 允许局域网的连接
allow-lan: true

# 绑定局域网ip
bind-address: "*"

# Clash 的 RESTful API
external-controller: "127.0.0.1:9090"

# RESTful API 的口令
secret: ""

# 规则模式:Rule(规则) / Global(全局代理)/ Direct(全局直连)
mode: Rule

# 设置日志输出级别 (默认级别:silent,即不输出任何内容,以避免因日志内容过大而导致程序内存溢出)。
# 5 个级别:silent / info / warning / error / debug。级别越高日志输出量越大,越倾向于调试,若需要请自行开启。
log-level: info

ipv6: true

# 您可以将静态网页资源(如 clash-dashboard)放置在一个目录中,clash 将会服务于 `${API}/ui`
# external-ui: folder

dns:
    enable: true
    # or redir-host
    enhanced-mode: fake-ip
    # fake ip 池
    fake-ip-range: 198.18.0.1/16
    use-hosts: true # lookup hosts and return IP record
    # fake ip 白名单
    fake-ip-filter:
        - "*.lan"
        - localhost
        - "gitee.com"
        - "github.com"
    # 用于解析nameserver中的域名
    default-nameserver:
        - 114.114.114.114
        - 8.8.8.8
    nameserver:
        - 119.29.29.29
        - 223.5.5.5
    # 与 nameserver 内的服务器列表同时发起请求,当规则符合 GEOIP 在 CN 以外时,fallback 列表内的域名服务器生效。F
    fallback:
        - tls://dot.pub:853
        - https://doh.pub/dns-query
    fallback-filter:
        geoip: true # 默认
        ipcidr: # 在这个网段内的 IP 地址会被考虑为被污染的 IP
            - 240.0.0.0/4
tun:
    enable: true
    stack: system # gvisor
    dns-hijack:
        - 198.18.0.2:53
    auto-route: true
    auto-detect-interface: true
...

# 规则
rules:
    # 网易云音乐APP
    - PROCESS-NAME,cloudmusic.exe,🎵网易云
    # 代理服务器
    - DOMAIN-SUFFIX,ilee.gq,DIRECT
    - DOMAIN-SUFFIX,ilee.ga,DIRECT
    - PROCESS-NAME,Clash.exe,DIRECT
    - PROCESS-NAME,xray.exe,DIRECT
    - PROCESS-NAME,wv2ray.exe,DIRECT
    - PROCESS-NAME,v2ray.exe,DIRECT

    - RULE-SET,Unbreak,🍪国内服务
    - RULE-SET,CustomDirect,DIRECT
    - RULE-SET,CustomGlobal,🔰国际服务
    - RULE-SET,Speedtest,💤测速
    - RULE-SET,China,🍪国内服务
    - RULE-SET,Streaming,🎥国际媒体
    - RULE-SET,StreamingSE,🎥国际媒体
    - RULE-SET,Global,🔰国际服务
    - RULE-SET,Global2,🔰国际服务

    ############## IP规则 ##################

    # 家庭局域网
    - IP-CIDR,192.168.2.0/24,🏠回家
    # Local Area Network
    - RULE-SET,LocalAreaIP,DIRECT
    # 使用来自 ipipdotnet 的 ChinaIP 以解决数据不准确的问题,使用 ChinaIP.yaml 时可禁用下列直至(包括)「GEOIP,CN」规则
    - RULE-SET,ChinaIP,🍪国内服务
    # GeoIP China
    # - GEOIP,CN,DIRECT
    - MATCH,🐟默认

见log
2022-03-10-103751.log

Mac版本在MacBook Pro M1 Max 运行闪退

如题。打开后闪退。

直接打开应用里面的clash-verge,显示如下信息:

/Applications/clash-verge.app/Contents/MacOS/clash-verge ; exit;
thread 'main' panicked at 'called Result::unwrap() on an Err value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/utils/init.rs:72:30
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...none found.

感谢~~

有proxy-providers的配置好像用不了?

我一开始导入了个有proxy-providers的配置,然后软件就卡死了,重启也是一直卡死的状态,我把C盘.config的里的Clash Verge的全删了后又导入了个没有proxy-providers的配置可以正常使用,然后在用着这个配置的情况下去导入那个有proxy-providers的配置,切换过去还是会卡死。

该选什么 IDE 编译

本来是想自己去学习怎么去制作一个 Clash 的客户端,自己的需求是跨平台。在 github 闲逛的时候,发现了大大的开源库,因为之前自己都是用 idea 之类的,没接触过大大使用的这种方案,然后我自己平时也是做设计的,也想为开源库提供一点自己的贡献,所以想请教下大大是用什么编译的。

[bug] macOS 12.3 UI 出现闪烁

原因:safari 15.4的bug导致 material ui Grow 组件 transition flickers

修复方法:

  1. 等 material ui 修复
  2. 等 safari 修复
  3. 调整相关组件的动画设置

配置导入成功却无法使用

2022-03-09 09:25:58 - [clash]: panic: The specified module could not be found.
2022-03-09 09:25:58 - [clash]:
2022-03-09 09:25:58 - [clash]: goroutine 1 [running]:
2022-03-09 09:25:58 - [clash]: golang.org/x/sys/windows.(*LazyProc).mustFind(...)
2022-03-09 09:25:58 - [clash]: golang.org/x/[email protected]/windows/dll_windows.go:325
2022-03-09 09:25:58 - [clash]: golang.org/x/sys/windows.(*LazyProc).Addr(...)
2022-03-09 09:25:58 - [clash]: golang.org/x/[email protected]/windows/dll_windows.go:333
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/listener/device/wintun.CreateAdapter({0xb42737, 0x5}, {0xb42737, 0x5}, 0x126dfec0)
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/listener/device/wintun/wintun_windows.go:69 +0x1f5
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/listener/device.CreateTUNWithRequestedGUID({0xb42737, 0x5}, 0x126dfec0, 0x2328)
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/listener/device/tun_windows.go:104 +0x49
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/listener/device.CreateTUN({0xb42737, 0x5}, 0x2328)
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/listener/device/tun_windows.go:96 +0x126
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/listener/tun.New(0x12433080, 0x124330c0, 0x12433780, {0x126f0860, 0x2, 0x2})
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/listener/tun/adapter.go:287 +0xd8
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/listener.ReCreateTun.func2()
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/listener/listener.go:256 +0x31f
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/listener.ReCreateTun(0x12433080, 0x124330c0, {0x1, {{{0x0, 0xffffc6120001}, 0x12404100}, 0x10}, {0x126dfd00, 0x6}, 0x1, ...})
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/listener/listener.go:264 +0x542
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/hub/executor.updateTun(0x124336c0)
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/hub/executor/executor.go:138 +0x102
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/hub/executor.ApplyConfig(0x124336c0, 0x1)
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/hub/executor/executor.go:80 +0x130
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/hub.Parse({0x0, 0x0, 0x0})
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/hub/hub.go:48 +0x17c
2022-03-09 09:25:58 - [clash]: main.main()
2022-03-09 09:25:58 - [clash]: github.com/Dreamacro/clash/main.go:99 +0x89d
2022-03-09 09:26:00 - profile enhanced status ok

以上是log,看起来是缺了文件。

建议默认不加载msedgewebview2

Clash Verge打开后会默认加载配置界面,后台看有数个msedgewebview2的进程,占用不少内存,建议可以不默认加载msedgewebview2,打开配置界面时再加载,关闭配置界面后关闭相关进程,减少内存占用,这样相比CFW优势更大。

2022-04-09_183031

linux上没有标题栏

最新的release,linux上没有标题栏,没有那些最大化最小化关闭的按钮,在KDE上和Gnome上都没有

Add User-Agent request

Some airport's subscription API needs User-Agent to identify client type and return profile, could you add User-Agent support for this? Thanks.

Request to add very important features

Hi, this client is amazing, consumes little resources and is great
Please support the following features:

  • Ability to sort servers based on ping time
  • Ability to delete servers that give timeout or errors
  • Ability to ignore certain specific domains (be customizable): I need to load a domain or specific domain without using VPN traffic, for example, I need all Google sites without using VPN (*.google.com).
  • Ability to display (only in menu bar) and not display in the dock on macOS
  • Ability to activate multiple profiles together
  • Ability to test based on URL along with ping test option: Some servers give Ping, but they do not actually transfer data, so there is no need to add another option to test to the app to solve this issue, for example, the user can set Google.com or any other URL and the URL Tested by all clash servers and if any server has the ability to load this URL, display a response time.

Thanks to the developers of this project

建议:加上测速后自动按网速排序功能

  1. 可以自定义测速的站点?例如:Google或者YouTube之类
  2. 是否可以加上两轮测速(以防一轮测速有网络抖动)后自动过滤掉无法连通的节点(或者无法连通的直接放到最后面),以及按网速进行排序的功能?
  3. 是否可以支持选择指定的多个节点进行重新测速。例如,把最快的几个节点选中再测一遍。

谢谢!

关于开机自启的几个小问题和建议 [Windows 0.0.25]

  1. 开机自启时会打开界面,希望可以在开机自启的情况下默认不打开界面,只出现任务栏图标(不好区分的话也可以加个设置,打开后默认打开程序时不打开主界面)
  2. 当开启TUN模式时,启动时需要管理员权限来创建虚拟网卡,如果在兼容性里把“使用管理员权限启动程序”打勾,软件开机会没有启动。(测试了一下,这个和是否TUN没关系,只要勾选了使用管理员权限,开机就不能启动,原因不太清楚)

系统环境 Windows 11 21H2 22000.556 64位
软件版本 Clash.Verge_0.0.25_x64_green.zip

[Bug] 窗口拖动异常

版本:v0.0.21 x64.msi
系统:Windows 11
问题:窗口拖动速度缓慢,拖不动的感觉,松开的话会自行移动到最后地点。

gif图最后几帧鼠标已经拖出去了,窗口还在赶来的路上。

clash-verge1

[Bug] [Feature Request] 以服务(管理员)模式启动 Clash Verge

问题

打开 TUN 模式开机自启 后,Clash Verge 开机自启时无法拿到管理员权限,TUN 模式不生效。相关报错如下:

ERROR Start Tun interface error: error creating interface: Access is denied.

解决

参考 Clash For Windows,将 Clash Verge 注册为服务。

使用指南

由于没有提供啥文档,暂时用issue介绍其中一些功能。

Clash Core的使用

本项目依赖于 Dreamacro/clash 提供的clash core二进制。本项目只是对clash的部分配置提供方便易用的GUI操作,仅此而已。如果你发现某些clash config在本项目中存在问题,欢迎在issue里指出。

注意:当前版本对于clash的providers的支持还只是能看不能用的状态,如果目前你有这个需求,可以考虑社区里其他更全面更完备的项目。

如果你希望使用非Premium版本的clash core,可以在应用的安装目录里直接替换clash.exe即可(不同系统扩展名有差异)。需要注意的是,应用更新时可能会替换该程序,需要注意一下。

Profiles Enhanced Mode 增强模式(^0.0.21)

目前支持4种类型的配置文件,分别是Remote、Local、Script、Merge。其中,Remote和Local类型为 主配置文件,Script和Merge类型为 增强配置文件,用于修改主配置文件的。点New可以创建这些配置文件(如下图),对于Remote类型的,也可以直接输入url import即可。 (备注:该模式主要参考了CFW的实现)

image

Remote 远程配置

目前仅支持clash格式的配置链接,即响应体数据是符合clash配置格式的(utf8编码)。如果响应头中存在Subscription-Userinfo字段,则其对应的流量信息会展示出来。远程配置可以点击右上角的更新按键自动更新。

Local 本地配置

新建本地配置之后,右键 - File 即可打开对应的本地配置文件(默认会用VScode打开,如果找不到执行程序则用open打开)。在编写完本地配置之后右键 - select即可刷新该配置。

Merge 合并处理

该配置类型用于对主配置进行字段增加的操作,文件格式是yaml。该idea源于 CFW 配置预处理中的简便方法。目前仅支持6种操作类型。启用方法:右键 - enable,在修改了文件之后,右键 - Refresh触发刷新配置。

  • prepend-rules:类型和clash rules配置一致,内容合并到rules
  • append-rules:类型和clash rules配置一致,内容合并到rules
  • prepend-proxies:类型和clash proxies配置一致,内容合并到proxies
  • append-proxies:类型和clash proxies配置一致,内容合并到proxies
  • prepend-proxy-groups:类型和clash proxy-groups配置一致,内容合并到proxy-groups
  • append-proxy-groups:类型和clash proxy-groups配置一致,内容合并到proxy-groups

^0.0.26 新增

  • use:用于标记增强模式可以额外使用profile里的哪些字段,默认只会使用profile里的rules, proxies, proxy-groups, proxy-providers, rule-providers。类型为string[],可选值为tun, dns, hosts, script, profile, payload, interface-name, routing-mark
  • 其他clash的字段:5个默认使用的字段以及use可选值里提及的字段,直接设置这些字段将直接覆盖profile对应字段的内容。如果不是5个默认的字段,则需要在 use 里声明。

Script 脚本处理

该配置类型提供编写JS脚本修改配置的能力,JS运行时为browserjs而非nodejs。该idea源于 CFW 配置预处理中的Mixin方法。启用方法:右键 - enable,在修改了文件之后,右键 - Refresh触发刷新配置。

脚本中需要声明一个main函数,函数签名为main(params: object): object;,也支持异步函数async main(params: object): object;。函数入参为序列化为js object的clash配置,务必返回处理后的js object。

如果脚本中存在异常未处理,处理程序将跳过该脚本所做的操作,并且对应的profile项将变红和报错提示。

实现原理是利用Webview2里的JS引擎执行用户脚本,所以不能执行任何系统api的操作,即nodejs那些是不支持的。仅采用new Function和严格模式执行用户脚本。

脚本安全性的考虑:应该不存在脚本突破Webview2的沙盒产生威胁。可能存在脚本通过tauri注入的对象操作系统api产生威胁。由于tauri官方有安全方面的审计,所以如果本项目存在这些安全问题,可能是因为 tauri 相关feature没用到但是没关闭,或者是我也不懂的东西请指教。总而言之,不要随便运行别人的脚本。

Profiles 的处理流程

首先选择一个主配置文件,如果没有就是默认的空配置。其次如果存在Script和Merge这些增强配置,且已经enable启用了,则会按顺序进行链式处理。即前一个处理的结果作为下一个处理的输入。

程序会先用主配置进行clash启动,增强配置的更新是一个异步的过程,所以一定会存在更新延迟。

其他

todo

Windows Bug

刚才在 Windows 测试,Theme Blur 选项打开,最大化以后点击关闭选项,必出这个 Bug

IMG_20220316_132315.jpg

版本:0.0.23
平台:Windows

能咨询个关于软件更新的问题吗?

实在不好意思,找不到可以留言的地方,只能在Issues里给您发个消息

我看您的项目中有更新配置

    "updater": {
      "active": true,
      "endpoints": [
        "https://github.com/zzzgydi/clash-verge/releases/download/updater/update.json"
      ],
      "dialog": false
    }

我试尝试下载了 v0.0.12 版本,但打开软件后并没有触发更新提醒,想问下这个更新机制能正常使用吗?

之所以问这个问题,是因为我在学习使用Tauri开发小工具,在尝试使用更新配置时,可以看到更新提醒弹层,但没有真正的更新,看到您的项目中也有更新配置,所以特来向你请教一下。

Tun Mode Bug

打开 Tun Mode,重启客户端,然后客户端就炸了IMG_20220316_195353.jpg

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.