什么鬼,还不能上网了
首先声明:本文涉及的一切链接,软件仅限于学习和研究使用。
# 前言
前段时间,我的位于腾讯云的香港服务器经常出现IP被禁封问题,导致我的无法科学上网。
整个过程也多次请求腾讯客服更换IP,结果却总是不尽人意,新IP坚持不了3天就凉透了。
于是我开始思考我服务的稳定性,重新搭建服务。
# 掉坑里了
于是我重新找了台小白鼠机器运行起了我的一键脚本 (opens new window)
看这一道道命令从眼前闪过,想到我即将拥有一台崭新的VPS,我情不自禁的打开腾讯云点退款。
然后命令结束:Unit v2ray.service could not be found !!!
这怎么就失败了呢,往上一翻日志: 404 ❔ ❔ ❔
定位代码
installV2ray() {
rm -rf /tmp/v2ray
mkdir -p /tmp/v2ray
DOWNLOAD_LINK="https://github.com/v2fly/v2ray-core/releases/download/${NEW_VER}/v2ray-linux-$(archAffix).zip"
colorEcho $BLUE " 下载V2Ray: ${DOWNLOAD_LINK}"
curl -L -H "Cache-Control: no-cache" -o /tmp/v2ray/v2ray.zip ${DOWNLOAD_LINK}
if [ $? != 0 ];then
colorEcho $RED " 下载V2ray文件失败,请检查服务器网络设置"
exit 1
fi
mkdir -p '/etc/v2ray' '/var/log/v2ray' && \
unzip /tmp/v2ray/v2ray.zip -d /tmp/v2ray
mkdir /usr/bin/v2ray
cp /tmp/v2ray/v2ctl /usr/bin/v2ray/; cp /tmp/v2ray/v2ray /usr/bin/v2ray/; cp /tmp/v2ray/geo* /usr/bin/v2ray/;
chmod +x '/usr/bin/v2ray/v2ray' '/usr/bin/v2ray/v2ctl' || {
colorEcho $RED " V2ray安装失败"
exit 1
}
rm -rf /etc/systemd/system/v2ray.service
rm -rf /etc/systemd/system/multi-user.target.wants/v2ray.service
wget -O /etc/systemd/system/v2ray.service https://raw.githubusercontent.com/hijkpw/scripts/master/v2ray.service
systemctl enable v2ray.service
}
原来是 https://raw.githubusercontent.com/hijkpw/scripts/master/v2ray.service 这个地址不存在。 其实我很不理解,为啥要删除要用这个 v2ray.service,难道有魔改嘛?
想了想大佬的世界不理解正常,于是屁颠屁颠的到v2ray-core 去搞了个安装包。本来事情到这里也就结束了,结果选择协议时错把VLESS当做了VMESS协议。 协议区别 (opens new window)
结果就是部署完了,客户端没反应,Google 还是回复我令人痛心的:ERR_CONNECTION_TIMED_OUT
# 爬坑
于是我打开了GitHub,进入社区,混进了Tg群,找到了一个管理测试可用的脚本
bash <(curl -ksL tiny.one/one4all)
理智的我当然不会盲目执行了,顺着这个地址,我扒到了归档的github (opens new window)
一看这啥啊 😱😱😱
trojan-go, v2ray ,xray ,hysteria,瞬间触及到了我的知识盲区.
好吧!作为一个专一的男人,我选择V2ray。
什么V2ray 高版本不支持?
VLESS?那对不起,以后不要联系了,我怕xray误会。
嗯。。。VLESS不加密?
行吧,那我上xtls。
你朋友用的客户端是V2ray的
好说,去升级。。。
于是方案定下来了: xray+vless+tcp+xtls 。这么一大堆名称,我自己都吓一跳
对了还得搞对证书和域名做伪装。
好吧,一上午过去了。服务搭建好了,但是有两个。一个个切也不是办法,咋办呢!
诶,那就学人家机场搞订阅啊。
嗯,行。。怎么搞不会,不会就去学啊。
# 订阅
研究了下,订阅的机制是,通过解析一个链接的返回,达到更新节点的目的。不同的客户端解析方式不一样。
别人我不管,我用的V2rayN和Shadowrocket,可解析VMESS,和VLESS链接
附:
- VLESS编码 (opens new window)
- VLESS编码 (opens new window)
- 订阅内容组 N个编码地址字用 换行符(\n)分割,然后整体Base64编码
伪代码
String content = VLESS1+ "\n" + VLESS1 + "\n" + VLESS1 + "\n" + VMESS1+ "\n" + VMESS2;
String return = Bsse64(content);
# 结语
事情到这里,差不多就结束了。有时间再自己搭一个控制台管理吧。