搭建V2Ray服务器(ws+tls+web)
Last updated
Last updated
本文是搭建V2Ray服务器(ws+tls+web)的完整教程。除了搭建V2Ray+ws+tls+web的过程,还包括配置CDN隐藏IP,打开BBR加速,以及简单配置防火墙防探测。最近(2020年初开始)防火墙加大了封杀VPN的力度,很多SS,SSR,纯VMess都开始间歇掉线,有些代理甚至直接被封IP。如果你打算自己搭建翻墙服务,强烈推荐V2Ray+ws+tls+web(CDN可选)一步到位。
本文面向小白,你只要会购买虚拟主机,会使用SSH连接服务器,那么看懂本教程就毫无压力。当然如果有搭建SS/SSR的经验,就更容易看懂了。建议能看懂本教程的,尽量购买VPS自建翻墙服务。按照本文搭建实在有困难的用户,可以考虑迷雾通或其它外资VPN。
不推荐使用一键脚本,很多一键脚本都存在安全隐患,轻则屏蔽掉几个网站,重则把你的服务器变成“肉鸡”(即黑客攻击别人电脑的跳板)。另外,就算用脚本搭建服务器,本文中的大部分操作,比如购买域名,配置域名解析等等,脚本无法自动完成。你恐怕还要亲自购买域名,亲自配置域名解析,亲自登录VPS执行脚本。本文中的方法只比一键脚本多出几步,但是可以大大降低安全风险。
自建V2Ray服务器首先要购买VPS(虚拟主机),为避免广告嫌疑,正文中不推荐VPS,我会在评论中补充一些常见的外资VPS。一般而言,自建服务的成本远远低于机场,大多数VPS每个月花费20-30元左右,流量1TB/月,有些外资VPS价格低到10-20元,甚至每月不到10元。如果愿意折腾,还可以用免费的谷歌云。此外,自建服务没有客户端数量限制,如果多人分摊成本,价格就更便宜了。
V2Ray+ws+tls+web是目前最稳定的翻墙技术之一,即使在十一也稳如泰山。和SSR的流量混淆不同,V2Ray+ws+tls用真正的https流量翻墙,没有必要做任何混淆。在防火长城看来,你的流量和不计其数的https流量没有任何区别。但是,如果有好事者主动访问你的代理服务器,就会发现一些不对劲:
尽管流量没有任何明显的特征,但是如果墙主动访问代理服务器,会发现流量的目的地没有真正的网站,从而识破https流量的目的。使用https流量不做掩护,反而增大了IP被墙的概率。因此你需要在V2Ray服务外面加一层真网站做掩护。
这就是V2Ray+ws+tls再加上web的原理。在配置了真实网站之后,只有你自己知道是个代理,在别人看来是个网站(包括墙)。反过来说,V2Ray+ws+tls+web也可以看作是自建了一个网站,然后利用这个网站来翻墙。因此,如果你读完本文,不仅能学会V2Ray翻墙,还能学到一点建网站的流程。
上面“https流量”的正确叫法是“tls流量”,这东西就是你平时浏览网页发出的流量。这里为了方便新手理解,叫做“https流量”。
安全提示:
如果服务器之前运行过SS,SSR,V2Ray(非TLS)等服务,请确保先停止原来的代理服务,再安装V2Ray。如果不知道怎么停止,请重装VPS(在网页控制面板上点reinstall,不到一分钟就搞定)。翻墙的隐蔽性取决于最薄弱的一环,如果服务器上同时运行其它代理软件,这些代理软件依然会被墙探测到,这种情况下V2Ray+ws+tls+web并不能保证隐蔽性。
自建网站看上去很复杂,其实很简单,只要按照以下步骤:
1 购买域名&配置域名解析:V2Ray需要域名伪装成真正的网站,因此你需要购买一个域名,并把域名绑定到服务器的IP地址上。
2 一键填写配置文件:本文已经写好了配置文件,只要把域名,UUID等信息填进去就行了。
3 一键安装v2ray+nginx
4 上传配置文件&一键运行
5 配置客户端
成功翻墙以后,还可以做以下事情进一步强化:
可选1. 加固服务器
可选2. 配置CDN隐藏IP
可选3. 使用BBR加速
下面按照以上顺序讲解配置。
这里从域名注册商GoDaddy购买域名,用Cloudflare提供域名解析。GoDaddy本身也提供域名解析服务,这里用Cloudflare是为了配置CDN方便。如果遇到墙加高,或者IP被墙等极端情况,只要简单的配置就可以切换成v2ray+ws+tls+web+cdn。CDN翻墙速度较慢,但是稳定性极高。
可能不少新手没听说过GoDaddy和Cloudflare,这里介绍一下,GoDaddy是世界上最大的域名提供商,占据市场30%的份额。Cloudflare是世界上最大的CDN提供商,全球半数的网站都在使用Cloudflare。注册不用担心隐私泄露或钓鱼风险。
注册GoDaddy和CloudFlare需要邮箱。特别注意,购买域名之后,域名服务商会公开邮箱地址。建议至少使用gmail注册,如果对隐私有较高要求,可以用Protonmail等匿名邮箱注册。
1.1 注册GoDaddy
点击这里进入GoDaddy的新加坡官网,全过程都有中文界面。出于安全考虑,选择邮箱注册。
1.2 选择一个域名
GoDaddy和淘宝的用法完全一样。注册完成以后,回到GoDaddy首页。点击搜索框,输入一个你想要的域名,查询价格。GoDaddy会根据域名包含的词汇定价,为了降低成本,域名尽量选得随机一些,其中不要包含任何单词,我这里头滚键盘输入hrw1rdzqa7c5a8u3ibkn。
可以看到不同后缀的域名价格差别很大,通常.com .net这类域名比较昂贵.website,.site,.rocks,.xyz价格较低,选一个最便宜的。这里我们选www.hrw1rdzqa7c5a8u3ibkn.website,这个域名一年不到7块钱。如果你购买时发现价格贵一些也是正常的,域名首年的价格通常不到10块钱。
接下来进入购物车,隐私保护不用选。
点进入购物车,进入结算页面。GoDaddy默认选购买2年,我们的域名只用来翻墙,选1年就可以了,到时候再换。 GoDaddy支持支付宝或信用卡付款。第一次购买域名,GoDaddy会要求你填写个人信息,这里姓名和手机号随便填一个假的就行。
购买完成,刚买到的域名不会马上在域名列表里出现,一般会有一两分钟的延迟。 接下来注册Cloudflare。GoDaddy的页面暂时不要关,一会还要回来配置域名服务器。
1.3 注册CloudFlare。
打开Cloudflare官网,用邮箱注册,如图。注册页面入口https://dash.cloudflare.com/sign-up
接下来输入刚才购买的域名,注意这里输入的是【二级域名】。所谓二级域名,可以理解为网址去掉www。 比如我的网站的网址是www.hrw1rdzqa7c5a8u3ibkn.website,那么这里应该输入hrw1rdzqa7c5a8u3ibkn.website,如图:
点【Add Site】,把域名交给Cloudflare托管。
接下来选择套餐,这里选择FREE套餐。
点【Confirm Plan】,进入管理页面,不要关掉页面,接下来配置域名解析。
1.4 配置域名解析
配置域名解析分两步:
配置域名服务器记录(也叫name server,NS记录)
配置地址解析记录(也叫address,A记录)
NS记录用来表明由哪台服务器对域名进行解析。从GoDaddy买到域名后,域名是由Godaddy的服务器进行解析的。我们这里把Godaddy的服务器换成Cloudflare的服务器。
如图是Cloudflare的管理界面,如果你的域名之前有配置域名解析,管理界面会显示之前的记录。暂时不用管这些。 点Continue,修改域名服务器。
点【Continue with default】
接下来Cloudflare会提示你变更域名服务器,并给出了方法。
画红框的部分就是Cloudflare提供的两个域名服务器,我这里是ns90.domaincontrol.com和ns91.domaincontrol.com, 你看到的的可能和我不一样。
回到GoDaddy,点击屏幕右上角的用户名,选择【我的产品】。
这里可以看到你拥有的域名,点击域名旁边的【DNS】,进入DNS管理页面。
在DNS管理界面向下拉,找到域名服务器。如图所示,这里可以看到GoDaddy提供的两个域名服务器,点击【更改】。
选择【输入我自己的域名服务器】
输入刚才Cloudflare提供的两个域名服务器,我这里是fccp.ns.cloudflare.com和xjp.ns.cloudflare.com, 点击【保存】。
注意不要有多余的域名服务器,不是CloudFlare提供的就要删除,否则可能会出问题。
接下来转移域名服务器可能需要几分钟,转移完成后会收到Cloudflare的邮件,可以先等一阵子。
配置地址解析(A记录) 转移域名服务器完成后,进入cloudflare的首页,点击右上角的【log in】,进入你的账户,如图:
点击买来的域名,进入下一步,如图:
点击【DNS】按钮,进入Cloudflare的DNS管理页面,如下图:
点击【Add record】,一次可以添加一条解析记录.
这里简单讲解一下,如果不想了解原理,可以跳过这一部分。
每条域名解析有四个部分:Type,Name,Address,TTL
Type是域名解析的类型,常见的几种有
A记录:即地址(Address)记录,用来指定域名的IPv4地址。如果需要将域名指向一个IP地址,就需要添加A记录。举个例子,我们要把域名www.hrw1rdzqa7c5a8u3ibkn.website指向VPS的IP地址218.30.118.6,就要添加A记录。
AAAA记录,指定域名的IPv6地址。
CNAME:即规范名字(Canonical Name)记录,俗称“别名”。如果需要把域名指向另一个域名,就要添加CNAME记录。
NS:域名服务器记录,如果要把域名交给其他DNS服务器解析,就需要添加NS记录。我们刚才修改的就是NS记录。
接下来说明每个选项应该填什么,以及为什么这么填:
Name
对于A记录,这里介绍三种填法
www:表示解析带www的域名,即www.hrw1rdzqa7c5a8u3ibkn.website
@:直接解析裸域名,即hrw1rdzqa7c5a8u3ibkn.website
:表示泛解析,即匹配其他所有域名.hrw1rdzqa7c5a8u3ibkn.website
Address
这里填VPS的IP地址,我这里是218.30.118.6
TTL
即 Time To Live,缓存的生存时间。指本地dns缓存解析记录的时间,缓存失效后会再次获取记录。在Cloudflare里,如果配置了CDN,则这里填Auto即可;如果没有配置CDN,可以选择Auto,也可以选择一个大于1小时的值。
理解了上面的内容以后,接下来添加两条A记录(如果VPS只有IPv6地址则添加AAAA记录)
点一下云朵,确保云是灰色的(DNS only)。橘色云朵表示此解析记录使用CDN,灰色云朵表示不使用 CDN,点击云朵可以切换。这里不要使用CDN,否则接下来的配置会出问题。
第一条A记录,name填www,address填服务器IP地址,TTL选择1小时。(表示解析带www的地址)
第二条A记录,name填@,address填服务器IP地址,TTL选择1小时。(表示解析不带www的裸域名)
填好之后的正确结果如图:
注意云一定是灰色的。
检查是否配置成功: 配置完成后点【save】就大功告成了,可以打开windows的powershell,输入
ping www.hrw1rdzqa7c5a8u3ibkn.website
(替换成你的域名)
Ping一下你的域名,如果能Ping通,就说明域名解析没问题。
V2Ray和Nginx的配置文件这里已经写好。你需要做的就是填表格,把配置中标出的地方换成自己的内容。 编辑配置文件可以用Windows记事本,不过推荐使用Notepad++。
下载地址: 网页链接,直接下载链接(7.8.4)
2.1 V2Ray配置文件
V2Ray配置文件如下:
是不是很短?接下来把标了符号的地方换成你自己的信息。
(1)
◆◆◆◆◆◆◆◆◆◆◆◆:标“◆”的地方填写UUID。
UUID可以从这个网站生成:https://www.uuidgenerator.net/。只要打开或者刷新这个网页就可以得到一个UUID。 举个例子,我生成的UUID是:
63c0042a-4a85-4d03-a488-3ba3aa002461
(2)
★★★★★★★★★★★★:标“★”的地方填写一个随机字符串。注意不要删掉前面的斜杠。
“随机字符串”就是你在键盘上胡乱敲打出来的东西,比如dsfhsdjfhref。推荐用这个网站生成一个,只要打开或刷新网页就可以得到一个随机字符串。
我用这个网站随机生成的字符串是mL7Gg8K
这个随机字符串就是WebSocket路径,不要抄我这里的例子,去自己生成一个!否则会被墙探测出来。建议WebSocket路径取得长一些(5个字符以上),过于简单,过于常见的路径(比如/ray,/v2,/v2ray之类的名称),很容易被墙探测出来。
填好之后的配置如下图:
最后,把V2Ray的配置文件另存为config.json
2.2 Nginx配置文件
Nginx配置文件如下:
看上去很长,实际上只有四处需要填写,配置文件里用#1,#2,#3,#4标出了位置,把标符号的地方换成你自己的信息。
●●●●●●●●●●●●:标注“●”的地方填写域名,注意这里的域名带www
这个域名就是前面购买的域名,本文中是www.hrw1rdzqa7c5a8u3ibkn.website,一共有三处需要填,都以“●”标出:
(1) server_name ●●●●●●●●●●●●; 注意域名和前面的server_name保持一个空格,后面的分号“;”不要删掉。 填好之后:(注意带www,以下皆相同)
server_name www.hrw1rdzqa7c5a8u3ibkn.website;
(2) ssl_certificate /etc/letsencrypt/live/●●●●●●●●●●●●/fullchain.pem; 两边的斜杠“/”不要删掉。
填好之后:
ssl_certificate /etc/letsencrypt/live/www.hrw1rdzqa7c5a8u3ibkn.website/fullchain.pem;
(3) ssl_certificate /etc/letsencrypt/live/●●●●●●●●●●●●/fullchain.pem; 一样,两边的斜杠“/”不要删掉
填好之后:
ssl_certificate /etc/letsencrypt/live/www.hrw1rdzqa7c5a8u3ibkn.website/fullchain.pem;
(4) ★★★★★★★★★★★★:标注“★”的地方填写一个随机字符串,这个随机字符串必须和V2Ray配置中的一样,不然无法工作。注意不要删掉前面的斜杠。
这个例子里,此处填mL7Gg8K。
填好之后的配置如下图:
最后,把Nginx的配置文件另存为default.conf(注意扩展名就是.conf)
3.1 连接到服务器,安装v2ray+Nginx
很多新手在买到VPS之后不知所措,其实VPS和游戏账号是一样的,买游戏账号付款之后,店家会私信告诉你两件东西:
用户名,密码
买VPS付款之后,VPS提供商会给你发邮件,告诉你四件东西:
IP地址,密码,登录账号,端口
IP地址和密码一定会有,登录账号如果没说,默认是root。端口如果没说,默认填22.
拿到登录信息之后,就可以登录服务器了。这里推荐Bitvise SSH,轻量级,但是功能强大。
下载链接:https://www.bitvise.com/ssh-client-download
直接下载链接:https://dl.bitvise.com/BvSshClient-Inst.exe
安装好之后的界面如下图,点红框圈起的下拉菜单,【Initial method】下拉菜单里面选【password】,在【Store encrypted password in profile】选项上打勾。
这里假定我们的IP地址是218.30.118.6,密码是12345,登录账号和密码分别是root和22. 如图:
【Host】:这里填IP地址
【Port】:这里填端口,如果没说就是22
【Username】:这里填用户名,如果没说就是root
【Password】:登录密码。
填好之后如下图,点【Log in】就可以登录了。
第一次登录服务器会弹出窗口,问是否要保存密钥,点【Accept and save】继续。
成功登录之后会弹出两个窗口。
一个是文件浏览窗口,使用方法和Windows资源管理器一样,这里可以浏览服务器上的文件。把电脑中的文件拖拽到这里,就可以把文件上传到服务器。
另一个黑色的窗口是命令窗口。在电脑上复制一段文字,在这个窗口上右键,就可以把文字粘贴到命令窗口。
3.2 配置SSL证书
为了用真正的https流量翻墙,我们的网站必须有合法的SSL证书。可以用自动化工具Certbot申请证书,只要把以下命令复制到命令窗口,依次执行即可。
这里说的“证书”,实际指的是“数字证书”。当然申请完全是免费的,申请时需要邮箱地址。如有必要,可以使用匿名邮箱。
(1) 安装Certbot: yum install -y python36 && pip3 install certbot
运行这条命令后,如果显示: Successfully installed xxxx, xxxx, xxxx (各种软件包名字)
就表示成功。
(2) 停止防火墙 systemctl stop firewalld && systemctl disable firewalld
注意,在CentOS7版本以上,默认开启防火墙,不关闭防火墙将无法申请证书。某些系统上没有安装firewalld防火墙,执行这一步命令会报错,但是不影响后面的操作。
运行这条命令后,如果显示:
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
就表示成功
(3) 申请SSL证书 这一步做个填空题,把这条命令里的域名和邮箱,换成你自己的信息。 certbot certonly --standalone --agree-tos -n -d www.●●●●●● -d ●●●●●● -m ▲▲▲@▲▲▲.▲▲▲
第一个-d加一个带www的域名,第二个-d加一个不带www的域名,-m后面加你的电子邮箱。
注意前后要带空格。
例子:(域名:www.hrw1rdzqa7c5a8u3ibkn.website,邮箱:xijinping@protonmail.com)
运行这条命令后,如果显示:
IMPORTANT NOTES:
Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/www.hrw1rdzqa7c5a8u3ibkn.website/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/www.hrw1rdzqa7c5a8u3ibkn.website/privkey.pem
Your cert will expire on 2020-06-04. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew all of your certificates, run
"certbot renew"
Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org
就表示成功。
注意:这一步比较容易出错,常见的问题有:
其它代理占用了80,443端口。解决方法:停止其它代理软件,或重装VPS。
没有正确配置域名解析。解决方法:ping一下域名,看看能不能正确解析到IP。注意不要打开CDN(云朵点灰)。
没有关闭防火墙。解决方法:回到(2),关闭防火墙。
(4) 配置证书自动更新 echo "0 0 1 */2 * service nginx stop; certbot renew; service nginx start;" | crontab
运行这条命令后,如果没有任何信息输出,就表示成功。
我们申请的证书只有三个月期限,上面的命令表示每隔两个月,证书就自动续命一次,从而保证可以一直用下去。
3.3 安装V2Ray和Nginx
(1) 一键安装
V2Ray和Nginx可以一键安装,把下列命令复制粘贴到控制台,运行即可。
yum install -y nginx && yum install -y curl && bash -c "$(curl -L -s https://install.direct/go.sh)"
运行这条命令后,如果最后一行显示: V2Ray v4.x.x is installed. 就表示成功。(如果V2Ray安装成功,那么Nginx也一定安装成功)
(2) 关闭SELinux
在某些系统上,需要关闭SELinux,否则Nginx无法正常将流量转发给V2Ray,输入 setsebool -P httpd_can_network_connect 1 && setenforce 0
关闭SELinux,没有提示就表示成功。
安装好V2Ray和Nginx后,我们终于来到了最后一步。在启动V2Ray之前,需要把之前的配置文件上传
4.1 上传配置文件
这一步把第(2)步编辑好的配置文件上传就可以了。 首先上传V2Ray的配置文件,V2Ray的配置文件存储在
/etc/v2ray
目录下,把上面这个路径,复制到文件管理器的路径栏,回车,即可跳转到该目录下。如图:
可以看到这里已经有一个config.json文件了,这是V2Ray安装时自动生成的。接下来的操作和Windows一样,把你编辑好的config.json拖拽到这里,就可以上传了。
文件管理器会提示你存在同名文件,选择【Overwrite】覆盖原来的文件即可。
上传完成好以后,最好再验证一下,输入
/usr/bin/v2ray/v2ray -test -config=/etc/v2ray/config.json
如果显示:
V2Ray 4.x.x (V2Fly, a community-driven edition of V2Ray.)
A unified platform for anti-censorship.
Configuration OK.
说明配置没有问题。
然后按同样的步骤上传nginx配置文件,Nginx的配置文件存储在
/etc/nginx/conf.d
目录下,转到这个目录,拖拽上传你编辑的default.conf文件即可。
再验证一下Nginx配置是否正确,输入:
nginx -t
如果显示:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
说明配置没有问题。
4.2 启动
V2Ray和Nginx都是守护进程,可以认为是Windows上的“后台服务”。把V2Ray和Nginx配置成守护进程以后,这两个程序就可以在服务器上持续运行了。Linux服务器的稳定性非常高,可以连续不重启运行一年,甚至更长。我们接下来就让V2Ray和Nginx在服务器上运行一年。
在Linux上启动一个守护进程很简单,输入以下两条命令就可以启动V2Ray和Nginx:
有启动,也有其它操作,这里列出所有有用的命令,方便管理后台:
启动V2Ray:
service v2ray start
重启V2Ray:
service v2ray restart
注:这一条是常用命令,每次修改配置文件后,都要重启一下V2Ray。
查看V2Ray状态:
service v2ray status
停止V2Ray:
service v2ray stop
查看V2Ray版本:
/usr/bin/v2ray/v2ray -version
测试V2Ray配置文件:
/usr/bin/v2ray/v2ray -test -config=/etc/v2ray/config.json
注:常用命令,每次修改配置文件后,最好检查一下配置文件是否正确。 配置文件位置:
/etc/v2ray/config.json
Nginx:
启动Nginx:
service nginx start
重启Nginx:
service nginx restart
查看Nginx状态:
service nginx status
停止Nginx:
service nginx stop
测试Nginx配置文件:
nginx -t
配置文件位置:
/etc/nginx/conf.d/default.conf
配置完成后,可以在浏览器里输入网址,如果显示Nginx的红色欢迎页面,就说明网址配置成功了!
接下来要做的是上传一个网页模板,这样别人访问你的服务器就会看到一个真的网站。
4.3 上传网页模板
去Google上搜“website template”可以找到很多提供网页模板的网站,这里随便找一家,例如https://colorlib.com/wp/templates/
网页模板强烈建议用纯英文模板,其中不要包含任何中文内容,否则(可能)会增加网站被墙的概率。
下载好以后,解压压缩文件,一路点开,如图,可以看到里面有一个index.html文件(有些是index.htm或index.php)
把这个文件夹里的所有东西,包括index.html,blog.html,以及css,fonts,img,js几个文件夹,全部上传到 /usr/share/nginx/html/ 目录下面。上传方法前面已有介绍,打开Bitvise SSH,拖动到文件管理窗口即可上传。
接下来打开网址,这时候可以看到一个真正的网站。
5.1 Windows客户端
Windows客户端推荐V2RayN,V2RayN是开源软件,下载地址: https://github.com/2dust/v2rayN/releases
可以看到有一个v2rayN-Core.zip和一个v2rayN.zip,这里下载v2rayN-Core.zip(GUI界面+V2Ray内核)。
安装好V2RayN之后,如图
点【服务器】按钮,选择【添加VMess】服务器。
地址:你的VPS的IP地址,这里我的IP是218.30.118.6。
端口:443
用户ID:就是2.1节中,V2Ray配置文件里的UUID,本文中是63c0042a-4a85-4d03-a488-3ba3aa002461
额外ID:0(保持默认值)
加密方式:随便选。
传输协议:选ws,即WebSocket
别名:随便填。
伪装类型:none(保持默认值)
伪装域名:绑定到服务器的域名,我的是www.hrw1rdzqa7c5a8u3ibkn.website
路径:即前面的随机字符串,注意前面必须要加上斜杠“/”,这里的例子是/mL7Gg8K
底层传输安全:选tls
配置完成后如下图:
5.2 Android客户端
安卓客户端推荐V2RayNG,配置和V2RayN可以互通。下载地址: https://github.com/2dust/v2rayNG/releases
分享配置很简单,在Windows的V2RayN客户端里,点击服务器列表,勾选右边的“显示分享内容”,可以显示配置的二维码。安卓端选择“扫描二维码”导入配置即可。
5.3 iOS客户端
iOS客户端全部要收费,常用有Shadowrocket(小火箭)等。配置方法略。
其它平台客户端(Mac OS,Linux)可以查看V2Ray官网的客户端列表:神一样的工具们
到这一步结束,整个V2Ray翻墙的搭建就结束了。接下来是一些可选配置,可以加强你的服务器的隐蔽性和安全性。
可选配置1:使用CDN隐藏IP
CDN相当于在服务器前又加了一层代理,墙只知道你的域名和CDN的IP,无法得知代理服务器的真实IP。如果伪装网站开启了DoH+ESNI,甚至连域名都可以隐藏。因此v2ray+ws+tls+web+CDN相当于事实上的双重代理,它的隐蔽性和安全性非常高。缺点是Cloudflare 会让访问延迟变高一些。除非遇到IP被墙,或者特殊节日前后等墙加高等极端情况,如果平时翻墙很稳定,就没有必要打开CDN。
因为前面已经注册了Cloudflare解析,所以使用CDN非常简单,只要两步即可。
(1) 登录Cloudflare账号,点击【DNS】按钮,进入Cloudflare的管理页面,如图:
点一下灰色的云,让颜色变成橙色即可。
点击切换后,域名不会马上解析到CDN的地址,一般会有几分钟的延迟。可以ping一下你的服务器的域名,如果返回地址是CDN的IP,就说明切换完成。
(2) 接下来配置客户端。客户端切换成CDN很简单,配置的其它地方不用改动,只要把地址一栏换成域名即可,如图
手机端配置方法类似,把IP换成网址即可。
可选配置2:加固服务器,配置防火墙
如果VPS上没有其它服务,建议打开防火墙。服务器对外只暴露80,443,SSH端口,可以降低代理服务器被探测的风险。
前面的步骤中禁用了防火墙firewalld,不是所有的机器都安装了firewalld,我们这里使用ufw防火墙作为替代。
安装ufw:
yum install -y epel-release && yum install -y ufw
打开SSH,HTTP,HTTPS端口,运行:
ufw disable && ufw allow ssh && ufw allow http && ufw allow https && ufw enable
如果ssh端口不是22,那么需要将ssh改为端口号。例如ssh端口为14320,则:
ufw disable && ufw allow 14320 && ufw allow http && ufw allow https && ufw enable
ufw和firewalld的底层实现都是一样的,都调用了linux iptables,本质并无太大区别。
可选配置3:使用BBR加速
BBR是谷歌开发的拥塞控制算法,可以降低延迟,加快访问速度。启用BBR需要4.10以上版本Linux内核,现在大多数VPS都满足这一条件,输入uname(空格)-a可以查看内核版本.
如果内核版本大于4.10就可以用BBR了,把以下三条命令复制到命令窗口执行:
然后运行以下命令,查看BBR是否启动成功:
sysctl net.ipv4.tcp_congestion_control
如果提示
net.ipv4.tcp_congestion_control = bbr
就表示成功启动了BBR加速。
到这里,整个V2Ray翻墙教程就结束了,过程总结:
购买域名 & 配置域名解析
安装Nginx和V2Ray
上传配置文件
可选步骤:
CDN隐藏IP
打开防火墙
BBR加速
VPS推荐
在此列出一些外资VPS提供商,主要是为了给出一些直观的参考,说明自建翻墙服务的成本相对较低。这里列出的VPS网上已有大量测评,可靠性有保证。但如果使用中出现问题,我也无法为此负责。 (以下信息可能会变动,供参考。此处价格单位是人民币)
Bandwagon:流量1TB/月,价格28元/月。
Vultr IPv4:流量0.5TB/月,价格24.5元/月
Vultr IPv6:流量0.5TB/月,价格17.5元/月
VIRMACH:流量0.5TB/月,价格8.75元/月
RamNode:流量1TB/月,价格21元/月
OneVPS:流量2TB/月,价格35元/月
ChangeIP:流量无限,价格14元/月
INVS:流量无限,价格10元/月
搭建V2Ray需要的配置很低,一般单核CPU,256MB内存就足够3-4个人看YouTube了。廉价VPS的配置都差不多(单核CPU,几百MB内存),出口带宽一般比较高(1Gbps,约合100MB/s)。挑选这类VPS最直观的指标就是价格和流量。
IP段,网络质量也是重要的指标,但这些指标无法直接给出,如果有特殊需求(比如看Netflix,比特币匿名付款),需要在网上多找相关测评。
总之,VPS的性价比很高,就是最廉价的VPS看高清Youtube也完全够用。如果愿意每个月花5美元以上,足够买到网络质量非常高,流量无限的机器。
补充一下配置时经常遇到的问题和解决方案
1.没有Nginx安装源 某些VPS商家提供的系统中,没有带nginx的安装源。因此在运行V2Ray和Nginx的一键安装命令时会出现以下错误:
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile
base: xxxxxx
extras: xxxxxx
updates: xxxxxx
No package nginx available.
Error: Nothing to do
解决办法:手动添加安装源即可,根据你的系统版本,运行以下命令:
CentOS7:(这是大多数VPS的系统版本)
rpm -ivh https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm
CentOS8:
rpm -ivh https://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.16.1-1.el8.ngx.x86_64.rpm
CentOS6:
rpm -ivh https://nginx.org/packages/centos/6/SRPMS/nginx-1.8.1-1.el6.ngx.src.rpm
2.V2Ray安装问题 换成以下一键命令:
yum install -y curl && yum install -y nginx && bash <(curl -L -s https://install.direct/go.sh)
3.使用IPv6
Nginx不会主动监听IPv6地址,如果配置了AAAA记录,需要在端口号前加上[::]:
填好之后:
4.提示“重定向次数过多”
登录cloudflare,在网站管理界面,点【SSL/TLS】。
在页面的四个选项中,选【full】。(默认为【flexible】)
5.客户端出现如下502错误
[Warning] failed to handler mux client connection > v2ray.com/core/proxy/vmess/outbound: failed to find an available destination > v2ray.com/core/common/retry: [v2ray.com/core/transport/internet/websocket: failed to dial WebSocket > v2ray.com/core/transport/internet/websocket: failed to dial to (wss://你的域名): 502 Bad Gateway > websocket: bad handshake] > v2ray.com/core/common/retry: all retry attempts failed
原因:Nginx无法把流量转发给V2Ray,原因是没有关闭SELinux。
解决办法:按照3.3节的方法,关闭SELinux。 输入:
setsebool -P httpd_can_network_connect 1 && setenforce 0
即可