博文

目前显示的是标签为“compile”的博文

修改V2rayN 节点列表 右键菜单 清空速度测试结果 清空延迟测试结果

图片
需求 节点列表数量比较多, 很些节点的测试结果已经旧了, 没有可参考性, 但是又不想重新测试, 只是想把测试结果清空. 思路 相当于在原有的测试功能的流程上, 不执行实际的测试动作, 直接填写空白的测试结果.

修改V2rayN 加载所有节点去重时 不要影响原来的各分组订阅

图片
问题 上一篇修改加载节点列表后自动去重, 最后发现一个问题. 点击 "所有" 以后, 调用 节点去重 功能, 然后再回到单独的分组订阅里面, 有节点被去掉了.

修改V2rayN 加载节点列表后自动去重

图片
需求 白嫖党会到处收集节点订阅, 而这些订阅其实也是到处爬一些免费公开的节点再整合而成, 所以这些订阅里面会有很多重复的节点. 每次都要右键菜单点 "移除重复的服务器", 重复操作浪费时间. https://github.com/2dust/v2rayN/issues/4272 思路 找到"移除重复的服务器"实际上运行的函数. (a) 找到 切换订阅分组 时运行的函数. (b) 在 (b) 函数的逻辑执行完后, 调用一下 (a) 函数, 就达到要修改的效果了.

修改V2rayN 订阅分组设置界面 更新时间单位修改为小时

图片
需求 订阅地址的自动更新间隔改为按小时计算.  https://github.com/2dust/v2rayN/issues/4271 思路 修改界面显示的文字. 修改自动更新的定时器逻辑.

修改v2rayN 设置显示订单/分组的组件最大尺寸 解决当订阅数量较多时,占用窗口空间太大的问题

图片
需求 当订阅数量较多时,占用窗口空间太大. 特别是笔记本屏幕上.  https://github.com/2dust/v2rayN/issues/4224

解决使用多个屏幕时, v2rayN窗口大于当前窗口的问题 获取窗口所在当前屏幕 WPF与WinForms共存

图片
需求 上一篇 的需求 " 设置窗口的尺寸, 不要超过当前屏幕 " 其实并没有解决得很完满. 在上一篇中, 只解决了使用一个屏幕的情况. 虽然从使用的单词来看, 似乎WorkArea应该指当前操作的屏幕, 但是很遗憾, 它在程序世界中的定义不是单词的语义让我们想象的那样. 很明确, 它的定义是主屏幕的工作区域(除去任务栏, 也就是最底下有开始按钮的那一条).

修改v2rayN创建节点的窗口, 长宽不超过屏幕

图片
需求 在笔记本的屏幕上, 使用v2rayN时, 有些设置界面太高了, 显示不全. 如果你是个1080p的笔记本, 屏幕13寸, 你再把缩放开到175%, 就会遇到上面的情况了.

搭建C++编译环境 手动编译aria2

图片
参考 https://weair.cc/build-aria2/ https://ivo-wang.github.io/2019/04/18/%E5%85%B3%E4%BA%8Earia2%E6%9C%80%E5%AE%8C%E6%95%B4%E7%9A%84%E4%B8%80%E7%AF%87/

caddy自行编译, 同时打包 naive 和 trojan 插件共存, 同时可以作为V2ray/Xray的前置web服务器

图片
搭建 Go 环境 wget https://go.dev/dl/go1.19.5.linux-amd64.tar.gz rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin 检查环境是否搭好了 go version 应该输出 go 的版本 编译 安装 xcaddy go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest 编译 caddy 带上插件 naive 和 trojan ~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive --with github.com/imgk/caddy-trojan 使用 配置Caddyfile {   order forward_proxy before file_server   order trojan before file_server   servers :443 {     listener_wrappers {       trojan     }   }   trojan {     caddy     no_proxy     users e16d9cb045d7  #密码   } } :443, npp.tzzhu.gq:443 {   tls e16d9cb045d7@gmail.com   forward_proxy {     basic_auth e16d9cb045d7 e16d9cb045d7   #密码     hide_ip     hide_via     probe_resistance   }   file_server {     root /var/www/html   } } trj.tzzhu.gq:443 {   tls e16d9cb045d7@gmail.com   trojan {     connect_method     websocket   }   file_

xray去掉日志打印

图片
需求  现在流行一波白嫖容器。有些容器提供方不支持xray,所以如果检测到是xray就会封停。 我们猜测,可能会检测运行过程中的日志。 分析 对代码进行了一番阅读理解,发现有这么两个打印日志的方法。 WriteToLog  阅读理解以后,发现是这里实现最终打印日志的动作。 把函数内容注释掉就行了。 Println 阅读理解了一下,还不能简单地全部都删。不然就可以 sed 和 grep 批量注释了。 把下面这两个地方注释了,就不会打印日志了。 注释了上面这几行以后,编译会报错 先后会报这么一些错 main/version.go:4:2: imported and not used: "fmt" main/version.go:24:9: s declared but not used main/version.go:23:2: version declared but not used main/version.go:6:2: imported and not used: "github.com/xtls/xray-core/core" 所以最终还需要修改结果是: nano main/version.go 实操过程 效果 ====== 后记 不知道怎么编译 xray 的参考此篇 下载xray v1.7.2代码 修改并编译 hash变得不一样

xray去掉config参数 配置文件内置 修改ConfigLoader函数

图片
需求 现在流行一波白嫖容器。有些容器提供方不支持xray,所以如果检测到是xray就会封停。 我们猜测,也许会检测启动时的参数 -config。 如果我们不使用 -config 参数,程序会从 stdin: 读取配置文件。 那么我们把配置文件写死在源码中,把程序原来要从 stdin: 读配置文件的,变成加载源码中写死的配置文件。 分析 运行xray时,提示要从stdin:读取配置文件 在源码中搜索 "stdin:",经过一番阅读理解,读取配置文件的代码位于  编辑这个文件,将ConfigLoader函数改为: io.ReadAll 用法参考:  https://pkg.go.dev/io/ioutil#ReadAll 这里使用反引号的字符串,因为是带有双引号的,有换行的字符串。 语法参考: https://gfw.go101.org/article/basic-types-and-value-literals.html 比如,我随便找一个最简单的配置文件  https://github.com/XTLS/Xray-examples/blob/main/VLESS-TCP/config_server.json 修改源码 nano main/confloader/external/external.go ConfigLoader函数修改为: func ConfigLoader(arg string) (out io.Reader, err error) {         var data []byte         switch {         case strings.HasPrefix(arg, "http://"), strings.HasPrefix(arg, "https://"):                 data, err = FetchHTTPContent(arg)         case arg == "stdin:": //              data, err = io.ReadAll(os.Stdin)                 strConfig := strings.NewReader(`{   "log":

下载xray v1.7.2代码 修改并编译 hash变得不一样

图片
现在流行一波白嫖容器。有些容器提供方不支持xray,所以如果检测到是xray就会封停。 我们猜测,也许会检测主程序。检测主程序的hash,判断是否与xray发布版相同。 那么对策就是修改源码,自行编译,这样再去算hash,就不会与发行版相同。 安装 go 环境 (官方) https://go.dev/doc/install 复制下载链接 wget 下载 wget https://go.dev/dl/go1.19.5.linux-amd64.tar.gz go官方脚本 rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin 检查是否输出 go 的版本,来验证是否go环境配置成功。 go version 下载 v1.7.2 源码 找到 Release 下载文件的地方 https://github.com/XTLS/Xray-core/releases/tag/v1.7.2 翻到最下面有源码的压缩包 复制下载链接, wget 下载 wget https://github.com/XTLS/Xray-core/archive/refs/tags/v1.7.2.zip 解压 unzip v1.7.2.zip 编译 进入源码目录 cd Xray-core-1.7.2 编译命令 (Xray官方) go build -o xray -trimpath -ldflags "-s -w -buildid=" ./main 第一次编译会下载很多依赖,需要一点时间,请耐心等待。 最后会得到xray可执行文件 查 SHA-1 MD5 hash sha1sum xray md5sum xray 修改源码 随便修改一个go文件 nano ./main/main.go 找个字符串,随便加点乱码,保存。 再编译一次 go build -o xray -trimpath -ldflags "-s -w -buildid=" ./main 再查一下 SHA-1 MD5 hash sha1sum xray md5sum xray 可以看到 hash 变化了。 ======== 后记 安装

根据操作系统架构, 取最新版本Go编译环境, 编译NaïveProxy的Caddy

图片
一键执行 bash <(curl -L https://github.com/crazypeace/naive/raw/main/buildcaddy.sh) 作为我的NaiveProxy一键脚本的一部分,如果系统环境不能直接使用NaïveProxy作者编译出来的Caddy,那就自己编译一份吧。 参考 Go 官方安装过程 https://go.dev/doc/install NaïveProxy 官方编译流程 https://github.com/klzgrad/naiveproxy 其它脚本中的代码 https://github.com/shell-script/naivecaddy/blob/master/naivecaddy.sh https://lhy.life/20211218-naiveproxy/ https://github.com/233boy/v2ray/blob/master/install.sh

The Hot3 in Last 30 Days

无服务器 自建短链服务 Url-Shorten-Worker 完整的部署教程

ClouDNS .asia免费域名 托管到CloudFlare开CDN白嫖Websocket WS通道翻墙 / desec.io