这篇文章不想写的像标题这么长,简单点,你写文章的方式简单点
最近闲的发慌,总想着折腾点东西。主要是搞了oracle的机子,也不能吃灰不是,我放博客是单独购买的vps。
原先我也是买机场的节点用的,后来看TG群里各种撸oracle的机子,各种自己用各种技术搭建科学上网工具。我也跟着照猫画虎,有样学样的操弄起来。就我这半瓶水的水平注定是各种坑的,因此也就有了本文的出现,希望给朋友们带来填坑的一种思路吧!
谁适合看
- 有Linux使用经验的人,不会的要能Google,就像你遇到问题了,也可以使用Google搜到本文一样。
- 要能理解组合里的各种名词是用来干什么的,做到看到这个词,脑海中有对应的中文翻译,我知道这很难,但看多了就记住了。
- 别对本文有过多期待,只把它作为一个参考,实在觉得看着没多大用处的话就右上角×。
- 遇到问题淡定的人,自己先想办法解决它,实在不行,再去求助。
哪些准备
- 一台Ubuntu 18.04以上的有公网ip的vps,当然你要是CentOS也行,这就需要自行对应命令了。
- 一个域名,免费的有freenom , 付费的有namesilo 。我两家都有域名,可以根据自己的情况注册,这个实在不会,就用Google了。
- cloudflare有一个账号,没有的话先注册个,然后把你域名注册商处的nameserver换成cloudflare家的,并把你的域名解析到你的vps的公网ip。
- 如果你实在不想敲更多的命令,可以安装宝塔面板,这个不影响的,只是为了让自己伪装的更难被发现。
步骤可能会有些跳
- 安装宝塔面板,我安装的是国际版的,安装方法参考官网 ,当然你也可以安装国内的,无非是使用习惯的问题,这里只是为了安装软件和配置时更“方便”点而已。
国际版安装好了之后,是这个样子的。
- 在你购买的域名管理后台,把nameserver换成cloudflare的,方便把域名由cloudflare托管。
这里举例以example.com演示,从这里开始就要换成自己的域名了,然后ip地址的话,使用自己vps的公网ip地址,到cloudflare里,添加域名解析。
过个5分钟,打开Windows下的命令行窗口,然后ping一下自己的域名,检查是否已经解析到自己的vps的公网ip地址了,如果正常说明域名已经托管在cloudflare了,如果不对可能要等一些时间。
- 安装v2-ui面板,参考官方教程。
面板搭建好了之后,你应该可以通过:http://example.com:65432 访问面板,进里面做进一步的配置,这里说一下,如果访问网址后打不开,可能需要到宝塔面板放行端口65432。 - 在宝塔里添加上一步解析的域名,然后为域名申请ssl证书。
- 然后宝塔里安装一下NGINX,为反代v2-ui面板和xray节点做准备。
在App Store里搜索NGINX安装下,可以安装下1.18.0以上的版本。安装好了后,默认会给你生成一些针对网站的配置文件,这一步基本不用动什么。 - 进入v2-ui面板配置面板证书,修改面板访问路径,实现NGINX反代后免输入端口来访问。
- 在面板设置里,修改面板端口,比如原先是65432,我现在修改为23456,并在宝塔安全里放行23456,以后就可以通过23456端口来访问v2面板了。也可以把65432端口删除,保证开放最少的端口。
- 把网页根路径也修改下,这个可以自由发挥,但是建议使用英文有意义的字母和数字组合,你自己要记住。例如:/freedom
- ssl 证书文件路径和ssl 密钥文件路径,这两个路径可以使用之前为网站申请的证书路径,使用绝对路径,可以到NGINX的配置文件里找到。
把上边证书和私钥的绝对路径复制黏贴到v2-ui面板设置里。然后重启面板。修改内容如下图所示:
修改过后,你应该可以通过类似如下形式访问面板了,
https://example.com:23456/freedom 这里的域名端口以及/后面的要替换成你自己设置的才可以。 - 下面进入宝塔那边进行v2面板反代设置。
找到你之前添加的网站,点击操作列下的配置,进入网站配置文件设置里,添加反代配置。 - 复制以下NGINX配置,替换/后面的freedom为自己面板上的路径标识符,然后proxy_pass中的端口和freedom都相应修改下,改为自己v2面板中设置好的。
location ^~ /freedom { proxy_pass https://127.0.0.1:23456/freedom; proxy_set_header Host host; proxy_set_header X-Real-IPremote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
这段代码的意思就是说当客户端对 www.example.comf/freedom 发起请求时,实际被代理到本地的23456端口,路径是/freedom。瞎理解。这样的话,我们就是访问v2-ui面板而不需要加端口了。
下面我们在宝塔面板的站点配置里,添加以下反代配置。
{
if (http_upgrade != "websocket") {
return 404;
}
proxy_pass http://127.0.0.1:23456;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgradehttp_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 300s;
}
可以看到我们只需要修改location后面的/freedom
,这个改为你那边在v2里设置的,然后就是proxy_pass
的端口23456,修改为你自己的设置。注意:这里端口不要使用23456了,location后面的/freedom也要修改,因为我在上面对站点进行反代使用过了,你自己重新设置为你v2节点里的。
配置好了,可以保存过后,重启下NGINX。这样节点的反代就设置好了。
- 客户端配置,其实到这里我们的vless节点配置工作已完成90%了,我都感觉没有多大的难度,但真正难的是你明明按照别人的教程一字不落的操作下来,最后满怀希望的去客户端配置了一通,最后打不开油管,上不了谷歌,心里一万只那个动物飘过哈。我就是在这里翻车的,v2ray给我的感觉是配置好了,它好用,但要用好,用出花来,那就要下点功夫,当然了我还是推荐你去用一键脚本,如果你也像我一样总觉得一键脚本缺点什么,其实就是不折腾不舒服斯基,再加上一点探索的欲望,那可以一步一步的这样做,扯远了。我们先来测试下不加cdn,不优选ip的情况下可不可以翻,如果这都不可以,那也就谈不上开减速cdn和优选了。
- 这里说一下我这边使用的客户端是Qv2ray ,可以参照教程安装下,客户端需要配置核心插件才能使用,我这里有个问题是我使用的xray核心,导入链接和扫二维码都报:"1: Unsupported share link format.",我是手动配置的客户端,如果你实在不想手输的话,你可以使用v2rayNG,我测试了下可以,这样是我最后我实在没招了,反复检查前面服务端配置和反代,后面只要一打开cdn,客户端输入优选ip就连不上了,后来想了下会不会是客户端的问题,一换客户端,之前困扰了好多天的问题,就这样解决了,FxxK.
配置好了后,右键配置好的节点,连接到此服务器,测试打开Google之类的,没问题证明之前的配置正常,如果有问题的话,那就是你之前有错,需要仔细检查下,再往下进行。 - 由于我这边网速比较差,就这样只开启bbr的情况下,哦,忘了说了,你在连上vps之后,什么都没操作之前可以把bbr安装上,这个就不说了,网上有教程的。看油管勉勉强强1080,连接速度也就2Mbps的样子。
- 虽然套cloudflare,常常被恶搞成减速cdn,还是要尝试下,万一可以带来惊(jing)喜(xia)呢?
之前我们在cloudflare解析的域名,那个点灰的按钮,可以打开了,变成橙黄色,就证明网站走cdn了,当然了生效时间可能不是那么快,反正我这边为了排查cdn连不上的问题,每一次都要等好久,我也是醉了,你套了cdn后,要打开window命令行窗口,ping一下自己的域名,如果已经不是自己vps的ip了,证明已经走cdn了,这样说可能比较模糊,我放几张图。
如果到这里你的节点还可以正常连接的话,那恭喜你的节点已经走cdn了。你客户端也不需要改动什么,就是这一步要确认你开启cdn,节点是否正常连接,顺便打开油管娱乐测下速度,给我的感觉是套了cdn后,客户端这边连接的延迟有点高,然后如果cloudflare那边给你分配的边缘节点比较远的话,可能是适得其反的,其实不理想是常态。先看测速吧!
- 如果上一步你套cdn后,节点连不上了,别慌,有可能答案在这一步,我之前记得优选ip是要开启cloudflare的加密模式为安全的,这样回源的时候和你的vps会有一个认证吧。这一步也是优选ip能否成功的关键。
边缘证书里要可以显示你的域名,还要开启通用ssl。
边缘证书里要有你的域名,状态要显示有效,我这里等了好久才显示。
如果你想让你的cloudflare的设置快速点生效,可以试一下这样清除下缓存。缓存时间调低一点。
查看自己网站的证书是否已经变成cloudflare这边的了。
如果上边都确保没有问题的话,我们就可以去优选ip了。
better-cloudflare-ip ,解压后运行,输入你的实际带宽,这里建议不要输入太大的数值,可能因为选不到ip,无限循环下去,如果你100M的带宽的话,你可以从50开始实验,你自己根据实际情况来输入这个数值。
最后优选出的ip。
把优选出的ip,输入到你v2ray客户端的主机里。
如果链接上了后,客户端刷的日志没有大量报错,并且还能继续打开油管之类的,证明你的优选ip这一步没有问题了,这种还是不够自动化,更多玩法,需要你自行解锁。
- 这里说一下我这边使用的客户端是Qv2ray ,可以参照教程安装下,客户端需要配置核心插件才能使用,我这里有个问题是我使用的xray核心,导入链接和扫二维码都报:"1: Unsupported share link format.",我是手动配置的客户端,如果你实在不想手输的话,你可以使用v2rayNG,我测试了下可以,这样是我最后我实在没招了,反复检查前面服务端配置和反代,后面只要一打开cdn,客户端输入优选ip就连不上了,后来想了下会不会是客户端的问题,一换客户端,之前困扰了好多天的问题,就这样解决了,FxxK.
- 遇到的问题。
- 上边的内容可能你实验过后,不是那么回事,还请仔细检查下,有些时候可能是文章写的不够好,也有可能自己看走眼了,都有可能,
开启cdn后连不上,客户端报:"app/proxyman/outbound: failed to process outbound traffic > proxy/vless/outbound: failed to find an available destination > common/retry: [transport/internet/websocket: failed to dial WebSocket > transport/internet/websocket: failed to dial to (wss://): > x509: certificate has expired or is not yet valid: ] > common/retry: all retry attempts failed"。
这里有可能是你的证书有问题,检查下自己生成证书的过程是否是使用宝塔来自动生成的。另外就是cloudflare有没有证书显示。 - Qv2ray客户端日志:
"app/proxyman/outbound: failed to process outbound traffic > proxy/vless/outbound: failed to find an available destination > common/retry: [transport/internet/websocket: failed to dial WebSocket > transport/internet/websocket: failed to dial to (wss://): > remote error: tls: handshake failure] > common/retry: all retry attempts failed"
。
这个一看还是证书问题,但是我在这个问题上处理了好久,我参考了大量文章,别人都是一遍过,我前面确保没有问题,就是这一步优选ip输入客户端后就连不上。最后我联想到v2ray的配置文件很重要,我的Qv2ray是无法导入vless链接的,我就试了其他客户端,这一试,问题解决了,我又想FxxK了。首先可以确认的一点v2-ui生成的配置文件在导入v2rayNG后,是要稍微修改下的,不知道是v2-ui的问题还是客户端的问题,然后使用手机扫描v2rayNG电脑客户端的二维码,可以连接,证明问题有可能出在配置文件上,我比对了下v2rayNG的json文件,和Qv2ray的配置文件,发现了Qv2ray识别出的连接,缺少出站设置配置。
右键你的Qv2ray里的节点,然后编辑为复杂配置,添加自由出站。
- 报错:
"app/proxyman/outbound: failed to process outbound traffic > proxy/vmess/outbound: failed to find an available destination > common/retry: [transport/internet/websocket: failed to dial WebSocket > transport/internet/websocket: failed to dial to (wss://): 403 Forbidden > websocket: bad handshake] > common/retry: all retry attempts failed"。
有可能是你节点的反代配置错误,可是试着把宝塔里站点配置文件的节点反代的部分的http改为https试一下。
- 上边的内容可能你实验过后,不是那么回事,还请仔细检查下,有些时候可能是文章写的不够好,也有可能自己看走眼了,都有可能,
- 这边文章就到这里吧。感觉TL;DR。可能会有总结的不到位的情况,只是提供个思路,比如问题和解决方案可能是一对多的关系,每个人的环境不一样,问题可能太多变化,有问题可以留言讨论,感谢你的耐心阅读,后面可能会继续优化这篇文章。
言下之意
也许是讲得最细的之一,nb
感谢分享,很详细!