Featured image of post V2Ray,最安全的配置方式

V2Ray,最安全的配置方式

V2Ray 科学上网终极指南


介绍

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种类型的厂商,

  1. 第一种是单主机VPS类,比较知名的有 bandwagonHost, vultr等等。
  2. 第二种是云上的平台级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, 客户端连接 v2ray搭建步骤

每一步需要用到的工具,我都列出来了,除了绑定域名DNS要用到cloudflare,申请证书要用到certbot以外,其它都只需要v2ray本身就可以了。并不需要很复杂的工具。下面我们就根据这个流程来搭建。

安装v2ray

1、下载官方安装脚本:会将脚本文件install-release.sh 下载到home目录下

1
curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh

你可以在v2ray官方github仓库找到安装脚本的路径,我这里就是从github上的仓库里面down下来的。

2、下载好了,执行安装脚本,开始安装v2ray:

1
sudo bash install-release.sh

稍等一会,安装完成了。


绑定域名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:

1
2
3
4
sudo systemctl start v2ray    # 启动v2ray
sudo systemctl enable v2ray   # 开机自启动
sudo systemctl status v2ray   # 查看运行状态
sudo systemctl stop v2ray     # 停止运行

如果启动失败:解决办法有三种:

  1. 第一种是简单粗暴法,因为v2ray默认是以最低权限在操作系统上运行的,所以v2ray进程没有权限读取证书私钥,所以导致了启动失败。解决办法是,打开v2ray守护进程的配置文件v2ray.service,将文件中的user=nobody这一行删除。没有这一行,v2ray将会以最高权限root身份运行。这种方法简单粗暴,但是有潜在安全风险,我不推荐这么做。
  2. 第二种方法是将证书及其目录的权限设置为755,让任何用户都能读取证书私钥。这种方法风险更高,强烈建议不要这样做。
  3. 前面这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配置文件,在末尾添加以下这两行配置。保存退出。(第二行后面的.点不要漏了)

1
2
listen-address 127.0.0.1:8118  # 监听本机8118端口
forward-socks5 / 127.0.0.1:1080 .  # 转发数据到socks5代理,这里是v2ray监听的1080

然后设置系统代理,修改系统代理为127.0.0.1,端口是8118。

打开浏览器,google.com搜索, 成功实现v2ray代理上网。

欢迎关注我的 Youtube频道 观看视频。

END.

Designed By Jimmycai https://jimmycai.com