博文

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

图片
有的时候你搭的梯子就是用不了,你不知道是梯子没搭好呢,还是你走到梯子中间的路出了问题。 其实,对于WebSocket的V2Ray梯子,一般来说你只要用浏览器访问 https://你的域名/节点path 看能否得到400 Bad Request的结果就知道v2ray通不通。 在你的VPS上,可以用curl https://你的域名/节点path 来看结果。 实在不信邪,那就在你的VPS上跑一个V2Ray的客户端,对接你的服务端来看一下。 具体实践 1. 下载V2Ray的Linux客户端 * 最常见的系统环境应该是 linux-x64  比如,RackNerd, Cloudcone, Bandwagon, Hax, Woiden ... 访问 https://github.com/v2fly/v2ray-core/releases/tag/v4.45.2 右键复制下载地址 下载  wget -N https://github.com/v2fly/v2ray-core/releases/download/v4.45.2/v2ray-linux-64.zip 2. 解压V2Ray的Linux客户端 用 unzip 解压 unzip v2ray-linux-64.zip ls 一下,应该是这么几个文件 3. 设置V2Ray的Linux客户端参数 V2Ray的配置文件想要手写不是一件容易的事情,所以我这里推荐小白直接把自己本地翻墙客户端的config.json文件传上去。 如果你是用的v2rayN,那么config.json就在v2rayN.exe同目录下。 上传小文件的方法,对小白最友好的就是rz。 先安装一下 apt install -y lrzsz 然后执行rz命令 rz -y 如果你的SSH工具是Xshell等支持sz rz的,那么就会弹出来一个选择文件框,你选定你自己的config.json就好了。 这样把你自己本地的config.json传上去。 你可以看一下文件内容,注意一下Socks的端口,可能需要修改一下以免冲突。下面以Socks的端口 10811 为例。 4. 运行V2Ray的Linux客户端 ./v2ray 这时,你的VPS上已经开了一个Socks代理了。 5. 使用你的这个Socks代理去访问网页 用到curl的-x参数指定代理  新开一个SSH窗口登录

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

图片
有的时候你搭的梯子就是用不了,你不知道是梯子没搭好呢,还是你走到梯子中间的网络出了问题。 其实NaiveProxy,如果你的Caddyfile的格式是写的像官方要求的一样(或者你根本就是一键脚本搭出来的)那么你只要访问你的naive域名:端口 能显示伪装站,就说明搭好了。 在你的VPS上,可以用curl https://你的域名:端口 来看结果。 实在不信邪,那就在你的VPS上跑一个NaiveProxy的客户端,对接你的服务端来看一下。 具体实践 1. 下载NaiveProxy的Linux客户端 * 最常见的系统环境应该是 linux-x64 比如,RackNerd, Cloudcone, Bandwagon, Hax, Woiden ... 访问 https://github.com/klzgrad/naiveproxy/releases/latest 右键复制下载地址 下载  wget -N https://github.com/klzgrad/naiveproxy/releases/download/v108.0.5359.94-1/naiveproxy-v108.0.5359.94-1-linux-x64.tar.xz 2. 解压NaiveProxy的Linux客户端 用 tar -xf 解压 tar -xf naiveproxy-v108.0.5359.94-1-linux-x64.tar.xz ls 看一下会发现多了一个目录。cd进去,再ls 你会看到和你在PC上使用时一样的几个文件 3. 设置NaiveProxy的Linux客户端参数 和在你自己的环境下同样的用法,编辑config.json。注意Socks端口不要和你自己的VPS上已经使用的端口冲突了。下面以Socks的端口 10811 为例。 {   "listen": "socks://127.0.0.1: 10811 ",   "proxy": "https:// naive用户名 : naive密码 @ naive域名 : naive端口 ",   "log": "" } 4. 运行NaiveProxy的Linux客户端 ./naive 这时,你的VPS上已经开了一个Soc

格式化带注释的json文件不报错的工具Visual Studio Code / DevToys / JSON5

图片
TL; DR Visual Studio Code 支持带注释的JSON,且格式化后保留注释 https://code.visualstudio.com/ 正文 json格式标准本身是不支持注释的,也正是因为这样,标准的json文件不管换不换行,哪怕一个字符一行或者整个文件全部变成一行都是可以喂给程序正常使用的。 人眼实际阅读时,当然还是带注释的格式比较方便阅读。v2ray的配置文件就是带注释规则的json格式。 网络上google出来的json文件格式化和图形化节点化工具有很多都不支持注释格式,如下图 我自己用下来, DevToys 工具小,启动快,支持过滤注释并格式化json,还是很好用的。它还有很多其它功能也很好用。 -update- JSON5 格式支持注释,在网络上搜索支持注释的JSON格式化工具就可以搜 "JSON5格式化" -update- Visual Studio Code 支持带注释的JSON,且格式化后保留注释 https://code.visualstudio.com/

NaiveProxy和V2Ray共存 Naive流量走Socks5代理进V2Ray 墙内CN域名和IP 路由到黑洞blackhole或WARP

图片
需求 如果共享NaiveProxy梯子给朋友,万一朋友开了全局模式,把墙内的CN流量丢进来了,然后梯子又去访问墙内,那么墙就知道这是个梯子了。 所以需要把 墙内CN域名和IP 路由到黑洞blackhole或WARP 而NaiveProxy服务端没有路由功能。

NaiveProxy 屏蔽墙内CN域名 使用mosdns-cn将CN域名列入黑名单 安装为服务自启动

需求 如果共享NaiveProxy梯子给朋友,万一朋友开了全局模式,把墙内的CN流量丢进来了,然后梯子又去访问墙内,那么墙就知道这是个梯子了。 所以需要把 墙内CN域名屏蔽掉。 思路 在VPS上不解析CN域名。这样,访问的请求到了NaiveProxy服务端往外走时,找不到网站的IP地址。 找了找,有个简单易用的 mosdns-cn https://github.com/IrineSistiana/mosdns-cn 实践操作 1. 下载release包 mkdir /etc/mosdns-cn && cd $_ wget -N https://github.com/IrineSistiana/mosdns-cn/releases/latest/download/mosdns-cn-linux-amd64.zip 2. unzip解压 unzip mosdns-cn-linux-amd64.zip 3. 获得geosite.dat 你可以挑你喜欢的版本下载,我这里偷懒直接把v2ray自带的拷过来算了。 cp /usr/local/share/v2ray/geosite.dat ./ 4. 修改系统dns文件 指定本机DNS服务为第一个 echo -e "nameserver 127.0.0.1\nnameserver 8.8.8.8" > /etc/resolv.conf 5. 运行一下看看效果 ./mosdns-cn -s :53 --blacklist-domain " geosite.dat:cn " --upstream 8.8.8.8 测试了一下 qq.com 和 ipw.cn , 浏览器的加载进度条就一直卡着不动。 6. 安装为服务 ./mosdns-cn  --service install  -s :53 --blacklist-domain " geosite.dat:cn " --upstream 8.8.8.8 7. 启动服务 ./mosdns-cn --service start 完

Shopify里面免了运费 Goaffpro里面计算佣金时是按产品价格计算 没有刨除运费的开销

问题 如, 产品1000, 运费200, 佣金比率20%, Goaffpro已经设置了按产品价格计算佣金. 商家设置了满899免运费的优惠, 客人实际支付1000. 本来应该计算佣金(1000-200)*20%= 160 但是因为Shopify把数据给Goaffpro时, 订单里面还是产品的价格1000. 于是, 实际佣金是1000*20%= 200 解决方案 方案1. 去掉免运费方案, 同时降低产品价格. 效果: Goaffpro的佣金计算会准确. 缺点: 消费者心理原因, 不利于促进用户买更多产品. 方案2. Shopify里面装APP, 根据运费自动生成运费折扣, 即: 产品1000, 运费200, 那么自动生成一个与运费相等的折扣, 所以最终订单是 价格800+运费200. 缺点: 还没找到这样的Shopify APP. 方案3. Goaffpro里面设置script, 如果订单的运费金额为0, 则按一定的规则扣除AFF的佣金. 当然, 这里无法得到准确的运费. 但是可以以一种近似的方法计算, 比如: 每价格1000的货物, 运往美国的运费是180, 运往德国的运费是220, 运往... 这样统计一下过往的订单, 计算出一个平均的比例, 比如 21.54% 那么Goaffpro的script可以支持这样的功能: 1) 判断运费是否为0. 如果不为0, 则按原有的逻辑计算佣金 2) 如果运费为0. 那么在计算出佣金以后, 将佣金的金额减去一个固定的比例, 如,  21.54% 缺点: 对某一个订单来说, 减去的佣金相对于实际的运费来说并不准确, 需要对AFF进行教育和解释.  不仅是不同的国家运费不一样; 不同的产品, 重量相对于售价来说的比例也不一样. 比如, 同样1000的售价, A产品是粉末, 重量0.5kg; B产品是液体, 重量2kg. 很明显运费会差别比较大.

程序中的日志等级 FATAL, ERROR, WARN, INFO, DEBUG, NOTSET

图片
1. 程序正常上线工作时,日志等级是INFO 2. 程序需要告知使用者知道的正常信息,用INFO 3. 程序记录的用于调试的信息,比如提示程序的执行的逻辑分支,打印原始数据流等。用DEBUG 4. 程序运行过程中的异常,用WARN或ERROR记录 5. 根据实际情况需要做出一些调整。 比如某些INFO出现太频繁,而程序已经跑了比较久,你相信这块功能不会出问题,那就可以把这些INFO调整为DEBUG。 比如某些WARN或ERROR出现太频繁,程序中已经做了对应的处理,而你又不能从数据的源头减少这些WARN或ERROR的话,也应该把它们视作DEBUG。也就是说它们实际上成为了"日常"。 总之,INFO及以上级别的日志是给正常工作的情况下看的,要注意有效信息的占比。

The Hot3 in Last 30 Days

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

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