Hax Woiden IPv6 only VPS 开启 TUN 为了安装 WARP

需求 Hax 的 US3 最近放机了,申请成功以后,发现网页控制板上没有开启TUN模式的按钮. 所以需要通过命令行开启TUN模式. Linux开启TUN的shell命令 (适合复制粘贴到 Xshell 的 撰写窗格 , 或者 Termius 的 Snippets ) cd /dev  mkdir net  mknod net/tun c 10 200  chmod 0666 net/tun 一行命令的形式  (适合放到 Xshell 的快速命令栏) cd /dev && mkdir net && mknod net/tun c 10 200 && chmod 0666 net/tun  测试 通过下面的命令检测是否打开 TUN cat /dev/net/tun 如果返回如下,则说明TUN已经打开 cat: /dev/net/tun: File descriptor in bad state 参考 https://blog.csdn.net/Aria_Miazzy/article/details/93637632 操作日志 实测 Hax US3 OpenVZ 可以命令行打开 TUN 模式,安装 Warp root@5128783602hax:/dev# mkdir net root@5128783602hax:/dev# mknod net/tun c 10 200 root@5128783602hax:/dev# chmod 0666 net/tun root@5128783602hax:/dev# cat /dev/net/tun cat: /dev/net/tun: File descriptor in bad state root@5128783602hax:~# bash <(curl -fsSL git.io/warp.sh) 4 __         __ _     _ __ _   _ __ _     _ __        ...

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

搭建 Go 环境 参考Go官方安装说明  https://go.dev/doc/install wget https://go.dev/dl/go1.23.4.linux-amd64.tar.gz rm -rf /usr/local/go && tar -C /usr/local -xzf go1.23.4.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  #trojan密码   } } :443, npp.tzzhu.gq:443 {   tls e16d9cb045d7@gmail.com   forward_proxy {     basic_auth e16d9cb045d7 e16d9cb045d7   #naieveproxy密码    ...

在自己的VPS上运行Trojan-go客户端 对接自己的服务端 排错 Troubleshoot

有的时候你搭的梯子就是用不了,你不知道是梯子没搭好呢,还是你走到梯子中间的网络出了问题。 那就在你的VPS上跑一个Trojan-go的客户端,对接你的服务端来看一下。 具体实践 1. 下载Trojan-go的Linux客户端 * 最常见的系统环境应该是 linux-x64  比如,RackNerd, Cloudcone, Bandwagon, Hax, Woiden ... 访问  https://github.com/p4gefau1t/trojan-go/releases/latest 右键复制下载地址 下载  wget https://github.com/p4gefau1t/trojan-go/releases/download/v0.10.6/trojan-go-linux-amd64.zip 2. 解压Trojan-go的Linux客户端 用 unzip 解压 unzip trojan-go-linux-amd64.zip ls 看一下 你会看到和你在PC上使用时一样的几个文件 3. 设置Trojan-go的Linux客户端参数 和在你自己的环境下同样的用法,编辑config.json。注意Socks端口不要和你自己的VPS上已经使用的端口冲突了。下面以Socks的端口 10888 为例。 {   "run_type": "client",   "local_addr": "127.0.0.1",   "local_port": 10888 ,   "remote_addr": " trojan域名 ",   "remote_port": trojan端口 ,   "password": [" trojan密码 "] } 4. 运行Trojan-go的Linux客户端 ./trojan-go 这时,你的VPS上已经开了一个Socks代理了。 5. 使用你的这个Socks代理去访问网页 用到curl的-x参数指定代理  新开一个SSH窗口登录你的VPS。 然后执行 curl -x socks5://127.0.0.1: 10888  google.com 命令...

Blogger 切换到 Google Analytics (分析) 4

得到你的 GA4 代码 登录 https://analytics.google.com/ ,点击 "全部网站数据" 选择 GA4 看到你需要添加的代码 G-XXXXXXXXXX 设置Blogger 效果

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:": //      ...