介绍
v2ray默认使用的是vmess
协议,但vmess
作为代理协议,不管是安全上,还是性能上都已经不是最好的了,而且vmess
协议的特征也比较容易被识别,所以如果今天还是单纯用vmess
作为科学上网代理协议的话,被墙的概率是非常大的。
所以我们需要给vmess
外面再套一层TLS,相当于给vmess
套一个外壳,这时候从外面来看,vmess
就是普通的TLS流量了,由于TLS是互联网上最普遍的流量,所以被墙的概率就大大降低了。
VMESS + TLS 再加上传输层的TCP协议,我们就构建了一个即使是现代互联网上,也足够安全的传输协议栈: VMESS+TLS+TCP,不管是个人,还是团队甚至是企业用这一套协议栈都完全没有问题。
这节视频我们就来具体实现这个协议栈。
需要的工具:
- 1台VPS
- 1个域名
- v2ray
- cloudflare账户
- ssh客户端
VPS主机类型
首先准备1台VPS, VPS提供商有很多,主要有2种类型的厂商,
- 第一种是单主机VPS类,比较知名的有
bandwagonHost, vultr
等等。 - 第二种是云上的平台级VPS,像亚马逊(AWS),谷歌云(GCP),微软的(Azure), 这些都是平台级的头部大厂。
简单解释一下单主机(VPS)和云平台上的(VPS)的区别,单主机(VPS)它就是一台固定配置的裸机,你可以买高配置的,也可以买低配置的,但是VPS的配置是一开始就是固定的,基本没有什么伸缩性。这些VPS由用户自己托管,自己管理和维护,VPS之间没有内网上的互联互通,一般只能通过公网来互通。你可以把它理解为就是放在远程端一台独立的服务器。这也是大多数人的理解。
而云上的VPS不仅仅是一台独立的服务器,不管是AWS还是GCP,你都可以在后期对配置进行升级或者是降级,对,降级也是可以的。比如CPU,内存,硬盘,带宽,这些配置都是可以进行升级和扩展,所以它的伸缩性很强。另外云平台还会提供强大的安全功能来保护你的VPS,比如防火墙。单主机VPS是没有外部防火墙的。假如你在谷歌云上建的VPS,你都不需要在系统上装防火墙软件,直接使用谷歌云提供的防火墙就行了,非常强大,还不会占用系统资源。它是完全独立在你的VPS之外的,而你的VPS在防火墙里面,受到保护。
另外云平台上的VPS之间可以直接内部通信,不需要进入公网。假如你有2台3台以上的VPS,你就可以在云内部组成一个私人网络,就像使用公司内部的局域网一样,是完全私有的。如果需要做数据备份,这种方式既安全又高效。
对于搭建一个v2ray上网的代理来说,不管是单主机VPS还是云VPS,都没问题。具体用哪种,完全根据个人的预算和需求来选就行。但要注意一点,这2种VPS的计费方式是不同的,单主机VPS一般是固定价格,也就是一次性买断一个周期,比如一次性买1年或者买1个月,在这个周期内,费用是固定的。而云VPS的费用是动态的,它是根据计算资源的使用量来计费的,比如你用了多少CPU/或者GPU资源,用了多少内存资源,用了多少带宽等等。用多少算多少,所以它是一个弹性的机制。有人可能会以为云VPS会比单主机的VPS更贵,这可不一定,单主机VPS配置高的也是非常贵的。但从管理角度来说,云VPS要求的技术门槛更高,要不然可能会产生很多浪费。 后面有时间我会再来单独聊聊云VPS的管理技术相关的内容。欢迎大家关注我的频道,我还会发布很多很有用的视频。
言归正传。
我这里已经准备好了一台谷歌的云VPS,操作系统是ubuntu24
, 然后我们先ssh连接上去,ssh客户端软件有很多,我用的是putty。
连上VPS以后,我们就可以开始安装v2ray了, 整个v2ray代理的搭建流程,从安装到最后我们实现客户端连接上网,一共要做的就下面这几步:
安装v2ray,绑定域名(DNS),申请证书,配置v2ray, 客户端连接
每一步需要用到的工具,我都列出来了,除了绑定域名DNS要用到cloudflare
,申请证书要用到certbot
以外,其它都只需要v2ray
本身就可以了。并不需要很复杂的工具。下面我们就根据这个流程来搭建。
安装v2ray
1、下载官方安装脚本:会将脚本文件install-release.sh
下载到home目录下
|
|
你可以在v2ray
官方github仓库找到安装脚本的路径,我这里就是从github上的仓库里面down下来的。
2、下载好了,执行安装脚本,开始安装v2ray:
|
|
稍等一会,安装完成了。
绑定域名DNS
下面来绑定域名DNS,登录cloudflare
,我已经准备好了一个域名oonway.top
,关于域名注册我就不展开了。
找到根域名,如果你是刚注册的新域名,要先在这里添加这个根域名,我这里根域名已经添加好了,现在要添加一个子域名v2.oonway.top
, 这里我添加一条DNS-A记录。DNS-A记录的意思就是将域名和服务器IP地址进行一个绑定,这样当客户端访问这个域名的时候,就会被解析指向到我们VPS的IP地址。所以DNS就是建立域名和IP进行关联的记录的。
IP地址这里填写VPS的IP地址,名称填写v2,子域名的名称是我们自己定义的,你想怎么定义都可以,v3v4v5都可以。
域名和IP绑定好了以后,我们还要在这里做一件事。因为马上就要申请证书了,申请证书的时候,证书颁发机构CA需要验证这个域名的所有权。换句话说,就是验证我们是不是这个域名的所有者。这样的机制是为了保证我们的域名DNS不会被别人非法篡改。这是非常重要的事情。
验证域名所有权的方法大致是,CA机构会通过一个API口令,自动在域名的DNS记录中添加一条随机字符串的TXT记录,如果添加成功,并且字符串也正确,就表示验证成功了,然后才会给我们的域名颁发证书。这个过程是自动完成的,一般都不需要用户参与,用户只需要把API口令告诉CA就行。
cloudflare
提供这个API口令,所以我们要先在cloudflare
这里把API口令取出来。
API口令取出来后,我们先把它放一边,马上就要用它。这个口令非常重要,千万不要暴露出去,否则如果别人拿到你的API口令,就可以随意篡改你的DNS记录了。它可以将你的域名定向到一个小黄站,别人还以为你是做黄站的。或者导向到一些诈骗网站上去,所以一定要注意。
当然这个口令是可以改的,如果你怀疑自己的口令可能暴露了,像我这样放在公开视频里面,就等于是暴露了。等一下我只要回到这里,点一下轮转,cloudflare
就会重新生成一个口令,原先的那个就作废了。不过现在我还不能点,点了刚才复制的那个口令就没用了,我们证书还没有申请。
申请证书
域名和DNS都搞好了,下面来申请证书。证书客户端我推荐用certbot,这也是Let’s Encrypt官方推荐的客户端。
申请证书这一步,对于没有技术背景的朋友来说可能会显得有点复杂,所以我写了一个交互式脚本,你只需要输入API口令和你自己的域名就可以了,非常简单。
交互脚本👉: Certbot申请证书脚本
输入刚才取出来的API口令, 输入你的域名,支持通配符。前面输入根域名,然后逗号,再输入星号加上域名。通配符申请的好处是,它会自动匹配所有子域名。
输入一个邮箱地址, 按Y继续, 按Y继续,
配置v2ray
证书申请成功以后,现在开始配置v2ray。
👉:
v2ray服务端配置
这个配置文件是已经配置好的一个vmess+tls+tcp
方案,你只需要改动一下UID和证书路径就好了。
这是一个标准的vmess+tls+tcp
的配置方案,它足够轻,足够简单,不需要那么多无用的附加模块。同时,在安全性上也能达到互联网上的标准安全级别,因为采用的是标准的TLS加密。
配置好了,启动v2ray:
|
|
如果启动失败:解决办法有三种:
- 第一种是简单粗暴法,因为v2ray默认是以最低权限在操作系统上运行的,所以v2ray进程没有权限读取证书私钥,所以导致了启动失败。解决办法是,打开v2ray守护进程的配置文件
v2ray.service
,将文件中的user=nobody
这一行删除。没有这一行,v2ray将会以最高权限root
身份运行。这种方法简单粗暴,但是有潜在安全风险,我不推荐这么做。 - 第二种方法是将证书及其目录的权限设置为755,让任何用户都能读取证书私钥。这种方法风险更高,强烈建议不要这样做。
- 前面这2种方法都是不安全的做法,专业的做法是创建一个权限受限的新用户,并且给这个新用户赋予读取证书和私钥的权限,然后指定v2ray以这个新用户的身份运行,这样就完美解决了以上的安全问题。由于这一块内容本身有点长,为了避免干扰,我单独做了一期来讲,大家可以去翻下我的 Youtube频道 找出来看。👉 证书权限管理的最佳安全实践 **
客户端连接
服务端配置完成以后,现在就可以打开客户端来连接了。 如果你使用第三方的图形客户端,只要添加一下节点就可以连接上网了。这个很简单,这里不展开了。
我更推荐使用v2ray官方的客户端,虽然是命令行模式的,但更值得信任。
首先到v2ray官方仓库下载最新的软件包,选择对应操作系统的版本,下载完成以后,解压出来。
然后配置客户端,v2ray的配置相对比较复杂,不过我已经把配置文件写好了,
👉: v2ray客户端配置
使用这个配置,修改一下你的域名和UUID,全部替换客户端中的config.json
文件的内容。
配置写好以后,在v2ray客户端目录中右键,选择-打开终端(或者是命令提示符),输入: .\v2ray.exe run
, 回车,启动v2ray客户端。
为了以后打开方便,不需要每次都输入这个命令,可以创建一个批处理文件,然后创建一个快捷方式到桌面上,这样以后直接双击快捷方式启动v2ray。
Privoxy for Windows
对于windows操作系统来说,v2ray客户端启动以后,但是我们还不能马上就上网。还需另外一个工具——Privoxy,因为v2ray客户端在本地默认是监听socks5,但windows系统不直接支持socks5代理, windows默认支持的是http代理,所以要通过privoxy将http代理转换为socks5代理。
官方下载Privoxy: For Windows
Tips: 如果是macOS,不需要安装privoxy,直接支持配置socks5代理。
配置Privoxy:
打开Privoxy配置文件,在末尾添加以下这两行配置。保存退出。(第二行后面的.
点不要漏了)
|
|
然后设置系统代理,修改系统代理为127.0.0.1,端口是8118。
打开浏览器,google.com搜索, 成功实现v2ray代理上网。
欢迎关注我的 Youtube频道 观看视频。
END.