一、安装前准备工作
1.文章来源(Source):https://dqzboy.com 1. 时间是否准确
1.2. Linux 版本的问题
- 由于 V2Ray 使用的编程语言的特点,V2Ray 可以不依赖其它软件(库)而运行,并且可以在许多操作系统上运行(Windows、Linux、BSD等)
1.3. 防火墙
- 使用VPS后,一般防火墙和SElinux都是关闭的状态,所以搭建好后就可以直接访问了;如果访问不了请确保防火墙是否开启了,如果开启了那么可以将防火墙关闭或者放开对应的V2Ray监听端口。
1.4. 启动问题
- 使用脚本新安装 V2Ray 后不会自动运行,而是要自己手动运行。另外如果修改了配置文件,要重新启动 V2Ray 新的配置才会生效。本文介绍使用一位大神开发的v2ui的一键部署脚本,可以直接安装v2Ray并自带UI界面,可以方便自己去管理VPN账号。
1.5. 配置文件的格式问题
- 因为 V2Ray 的配置文件比较长,层级也多,导致编辑时很容易出错,也难检查。所以使用V2-UI可以很方便的通过界面图形化的方式去创建VPN账号
二、注册Cloudflare[可选]
提示:
(1)此步骤主要是使用Cloudflare免费CDN服务来保护真实的服务器地址
(2)建议单独申请一个免费的域名用来给V2ray使用
1、登入官网注册
- Cloudflare中文官网地址:https://www.cloudflare.com/zh-cn/
- 此时Cloudflare会发送一份激活账号的邮件到你注册的邮箱中,然后登入邮箱并进入邮件中提供的地址进行激活账号
- 邮箱验证成功
- 选择免费版
- 此时会检查你的域名解析记录
注意:如果在其他的厂商已经做了域名解析,则这里不需要再次进行添加,不然会出现提示:该记录已存在
- 橘色云朵代表流量通过 CloudFlare 的 CDN,灰色云朵代表不通过 CDN,点击一下云朵即可切换。
2、修改域名服务器DNS
- 继续下一步,到这里会提示让你修改Nameservers(域名服务器),并提供了两个域名服务器地址,先去你的注册域名的网站修改域名的域名服务器,下面我就以 腾讯云 为例来说明如何修改域名服务器
- 进入到腾讯云的控制台,然后找到自己注册的域名后,点击域名进入如下界面后进行修改DNS服务器地址
- DNS地址修改完成
- 修改完域名服务器后回到 CloudFlare
原文链接:https://dqzboy.com 网页上来,点击continue,此时 CloudFlare 可能会提示你还没有修改域名服务器,不要担心,修改域名服务器需要一定的时间才能生效,等一等就好了,一般几分钟就会生效,生效之后 CloudFlare 会发邮件给你。
- 上图中的子域名的流量都是交由CloudFlar CDN进行加速处理了
- 然后会收到CloudFlare域名解析变更邮件;到此域名解析变更工作完成
3、添加一条CDN的记录
- 注意:目前 看国内大部分的CDN厂商加速的端口仅支持 80、443、8080 三个端口;而Cloudflare支持代理的端口更多,详情查看官网;所以这里添加的这个子域名对应的端口是需要Cloudflare所支持代理的端口,且需要确认V2Ray走的这个域名对应的端口未被占用;
- 这个解析的域名用来配置V2UI面板访问同时也是V2Ray程序所使用的
- 通过Dig命令检查域名解析的A记录
4、开启CloudFlare免费SSL认证
- CloudFlare提供了免费SSL认证功能和HSTS,为了保护网站安全,我们这里进行配置下
三、安装V2Ray和xray面板
- 项目地址:
https://github.com/sprov065/v2-ui/该项目已经不在更新了!目前新的面板为:x-uix-ui-msk xray-ui - 项目提供一键安装v2Ray程序和xray面板,只需要在服务器上运行项目提供的脚本即可完成安装
- 开发语言Go
- Telegram提醒
目前x-ui项目已经停更一年多了,目前部署之后存在一些问题,比如切换成 [Xray-core v1.8.0]内核错误,无法使用;这里建议使用基于x-ui进行改进后的项目 FranzKafkaYu/x-ui 、xray-ui 配置都与x-ui一样
1、功能介绍
- 系统状态监控
- 支持多用户多协议,网页可视化操作
- 支持的协议:
vmess、vless、trojan、shadowsocks、dokodemo-door、socks、http - 支持配置更多传输配置
- 流量统计,限制流量,限制到期时间
- 可自定义 xray 配置模板
- 支持 https 访问面板(自备域名 + ssl 证书;脚本提供一键生成ssl证书)
- 更多高级配置项,详见面板
2、执行安装
# x-ui一键部署脚本
bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)
# xray-ui一键部署脚本
bash <(curl -Ls https://raw.githubusercontent.com/qist/xray-ui/main/insinst.sh)
# FranzKafkaYu/x-ui部署脚本【推荐,可集成TG Bot】
bash <(curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/x-ui/master/install.sh)
注意:有时第一次运行会出现失败,然后重新再次运行该脚本即可安装成功
3、Nginx反代【可选】
说明:如果未使用CDN以及域名的朋友,此步骤可以跳过!
- 使用 CDN 的朋友们注意了,CDN 通常只支持常见的 http 和 https 端口,所以使用 54321 是访问不了的,建议将面板端口设置为 CDN 商家支持的端口,肯定受支持的端口号是 80(http)和 443(https)
- 我们这里通过Nginx反代进行访问前端页面
3.1:配置Nginx反代
- Nginx的安装步骤此处省略
- 添加一个v2ray的nginx反代配置文件,配置内容如下
- 如果在Cloudflare中配置SSL模式为FULL的话,这里Nginx就需要添加给该域名添加证书文件
- 为了安全我这里给当前反代的域名本地服务器上添加了SSL证书
- 证书可以选择免费的即可,我这里是腾讯提供的免费域名SSL证书
[root@dqzboy ~]# vim /etc/nginx/conf.d/v2ray.conf
server {
listen 443 ssl;
server_name cool.xxxx.com; #填写上面添加的子域名
ssl_certificate 1_www.xxxx.com_bundle.crt; #SSL证书存储路径,我这里是在nginx的主目录下/etc/nginx/,所以我这里直接填写证书名
ssl_certificate_key 2_www.xxxx.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://127.0.0.1:54321;
}
}
[root@dqzboy ~]# nginx -t
[root@dqzboy ~]# nginx -s reload
3.2:访问页面
- 这里就可以直接输入配置的域名进行访问了
- 注意:未配置域名的朋友,访问时请输入服务器公网IP + 上面安装时自定的访问端口进行访问
3.3:更改账号密码
4、Telegram提醒
4.1:Bot使用介绍
X-UI支持通过Telegram bot实现每日流量通知,面板登录提醒以及cmd控制等功能,使用Telegram bot,需要自行申请
由于X-UI会设定默认command,推荐使用新申请的Telegram bot进行使用,避免破坏使用者自己设定的command
使用说明:在面板后台设置机器人相关参数,具体包括
- Telegram bot Token
- Telegram bot ChatId
- Telegram bot 定时周期,可使用crontab语法
Token在申请Telegram bot时由自动生成,如Token泄漏或者遗失,可以通过 botfather 重新生成。而ChatId则与账户强绑定且具有唯一性,可通过 userinfobot 获取你的个人ChatId
4.2:Bot功能介绍
定时通知参考语法:
- 30 * * * * * //每一分的第30s进行通知
- 0 0 20 * * * //每天晚上8点进行通知
- @hourly //每小时通知
- @daily //每天通知(凌晨零点整)
- @every 8h //每8小时通知
- @every 30s //每30s通知一次
TG通知内容:
- 节点流量使用
- 面板登录提醒
- 节点到期提醒
- 流量预警提醒
- SSH 登录提醒
- X-UI状态变化
- 节点接入IP变化
4.3:创建TG机器人
4.4:启用TG机器人
4.4:Bot功能菜单
Telegram Bot 指令控制内容:
- 状态查询:用于查询当前系统状态以及X-UI/Xray相关信息
- 重启服务:将会重启xray服务,该命令不会重启x-ui面板自身
- 停止服务:将会停止xray服务,但不会影响面板自身运行
- 切换版本:将会切换xray服务版本
- 删除节点:将会删除对应端口的节点
- 复制节点:将会根据已有节点进行复制,除端口与别名外其余均与前者保持一致
- 关闭节点:将会关闭对应端口的节点
- 开启节点:将会开启应端口的节点
- 清除流量:将会清除所有节点的流量统计
- 调整限额:将会调整面板设定中的流量限额
- 重置流量:将会重置对应端口节点的流量统计
- 获取链接:将会生成对应端口节点的分享链接
关于控制菜单的进入,目前支持三种方式进入:
- 菜单列表中点击
/functions - 对话框内输入
start文本,点击功能菜单 - 直接在对话框内输入
功能菜单
5、VMESS配置
说明:如果未使用CDN以及域名的朋友,此步骤可以跳过!
5.1:申请证书
5.2:创建账号
比较推荐的节点组合:
- Vless+reality+xtls-rprx-vision
- Vless+tls+xtls-rprx-vision
- Vmess+tls+ws(CDN)
- Vmess+tls+grpc
- Trojan+tls+grpc
个人首推使用
xtls-rprx-vision的组合,使用 xtls-rprx-vision 消除tls in tls特征,但只支持tcp,延迟较高;使用xtls-rprx-vision流控需要xray core版本为1.7.5及以上
注意:在下图中,如果未使用域名和证书的朋友,tls关闭、域名和证书文件的配置留空即可!
- 点击二维码,然后弹出二维码框之后,手机可以直接使用V2RayNG或者IOS版小火箭客户端扫描添加节点信息;点击二维码下面的复制,拷贝节点信息
6、客户端配置
- 注意配置客户端时,填写的地址时一定要是第二步中添加的那条专门用来解析V2Ray的子域名地址
6.1:下载V2Ray客户端
- V2Ray客户端项目地址:https://github.com/2dust/v2rayN/releases
6.2:配置客户端
- 将上面拷贝的节点信息添加到V2rayN客户端中
- 添加完成之后,选中对应的节点右键设为活动服务器
- 右键点击任务栏中的
V2Ray程序图标,开启代理后才可以正常访问外网
6.3:访问谷歌测试
7、VLESS配置
7.1:VLESS介绍
- VLESS是一种
无状态的轻量级数据传输协议,被定义为下一代V2ray数据传输协议。作者对该协议的愿景是可扩展性空前,适合随意组合、全场景广泛使用,符合很多人的设想、几乎所有人的需求,足以成为 v2ray 的下一代主要协议,乃至整个 XX 界的终极协议。由此可见VLESS协议的强大。 - 与VMESS协议相同,VLESS使用UUID进行身份验证,配置分入栈和出栈两部分,可用在客户端和服务端。
- V2ray 在
4.27.0内核中加入了 VLESS 协议支持
7.2:VLESS配置
- 注意:V2Ray版本必须是4.27以上的版本,V2UI面板也要更新到最新版本,旧版本是不支持VLESS协议的
- 上面的注意事项中都达到要求后,我们只需要在V2UI面板中,将VMESS协议中的内容改一改然后换成VLESS协议即可使用
- 我这里V2Ray-Core版本与V2UI版本如下图所示:
注意:在下图中,如果未使用域名和证书的朋友,tls关闭、域名和证书文件的配置留空即可!
7.3:客户端配置
- 点击二维码,然后弹出二维码框之后,手机可以直接使用V2RayNG或者IOS版小火箭客户端扫描添加节点信息;点击二维码下面的复制,拷贝节点信息
- 将上面拷贝的节点信息添加到V2rayN客户端中
- 然后右键设置为活动服务器即可使用了
8、xtls-rprx-vision
- 用户设置中选择flow为
xtls-rprx-vision- 注意:点击添加账号之后,需要把下面的tls打开之后,用户配置里面才会出现 flow的配置选项框)
- 每个用户拥有自己独立
UUID/PassWord与email,添加用户时会自动生成默认值,可以自行修改;Email用于在日志/流量统计中区分单独的用户,请确保每个用户的Email值是唯一的
- 开启tls,网络必须选择tcp
四、问题总结
问题1:Outbound:failedtoread header
- 连接后在V2Ray客户端提示如下报错:
Proxy|VMess|Outbound: failed to read header > Proxy|VMess|Encoding: failed to read response header > websocket: close 1000 (normal) ...
问题原因:
- 服务端与客户端时间的之前不同步,时差超过了2分钟
问题解决:
服务端时间同步
[root@dqzboy ~]# yum -y install ntp
[root@dqzboy ~]# systemctl start ntpd
[root@dqzboy ~]# systemctl enable ntpd
[root@dqzboy ~]# ntpdate -d time.windows.com #如果offset超过2s则进行时间同步
[root@dqzboy ~]# ntpdate time.windows.com
客户端时间同步
- 这里客户端为Windows为例子
- 控制面板—>时钟和区域 —> 设置日期和时间 —> Intenet时间
问题2:开启系统代理之后,Microsoft Store 等 UWP 应用无法联网
# 以管理员方式打开 Powershell
输入 foreach ($n in (get-appxpackage).packagefamilyname) {checknetisolation loopbackexempt -a -n="$n"}
# 等待执行完毕
声明:此文章请勿转载!!!
五、路由器配置科学上网
Redmi-AX6000路由器科学上网详细教程请查阅项目文章:Github
六、V2rayN开启TUN模式
系统代理非常方便,但是存在比较棘手的问题,并不是所有软件都遵循系统代理,除去浏览器,绝大部分软件都不会走系统代理,甚至连设置代理的地方都没有,行为完全取决于软件开发者,并且系统代理一般都是http代理而非socks5, http代理不支持udp,游戏也是没法玩的,并且游戏一般都不会添加代理功能,所以使用系统代理模式一般都是看看网页聊聊天,如果说系统代理能满足你的需求,那就是最方便省事的模式了;如果无法满足,比如设置好系统代理后 软件还是无法使用,可能是软件并没有走代理,这个时候就可以使用tun或者tap模式。这种模式的原理是创建一张虚拟网卡,从网络层接管系统所有流量,因为所有发往互联网的流量都必须经过网络层的封装,在这层进行拦截就能够获取所有应用产生的网络数据,这是目前主流的模式。 我们的手机默认就是这种模式,所以才能实现所有app翻墙。软路由接管全家的科学上网也是同样的原理。
正因为有了tun才能让科学上网达到近乎完美的状态。目前v2rayN6.0以上的版本支持了tun模式,其实就是调用singbox的内核。对于不习惯用clash的用户来讲是一个好消息,软件界面也做了很大的改变。 开启tun模式 需要以管理员权限运行。默认情况下会弹出命令行窗口,如果觉得这个黑框很碍事,可以在tun设置中将显示控制台关闭,保存后再来尝试开启就不会再有那个黑框了。
这种虚拟网卡模式和真正的VPN已经非常接近了,但是也只能说非常接近,还不是真正的VPN。因为我们用的ss、vmess、trojan等主流的翻墙协议都无法封装网络层的数据包,最直观的感受就是ping命令这个网络层的工具。
当我们使用tun模式ping谷歌的话,会返回一个假的延迟,这个1毫秒的延迟是直接从虚拟网卡返回的,并且,如果使用fakeIP模式的话,还会直接返回一个假的IP;因为ss、vmess等协议无法代理网络层的icmp协议,而ping就是icmp协议的工具,真正的VPN可以代理网络层。而使用真正的VPNwireguard是可以ping通谷歌并且可以看到真实的延迟。
目前来讲tun模式是比较完美的客户端代理方式,既能实现在网络层接管系统所有流量,又能在此基础上实现分流,美中不足的地方就是使用ping命令来测试网络延迟的时候就不太方便了。如果你平时只是用来浏览网页的话,系统代理的方式也是一个不错的选择。至于真VPN的话,并不推荐用来科学上网,更适合有内网穿透需求的用户。
七、解决DNS泄露问题
为什么会存在DNS泄露?
DNS泄露的说法只有在我们使用代理之后才存在,假设我们当前没有使用代理的情况下查询DNS泄露,列表中返回了国内的DNS服务器,这只能说明这些DNS服务器负责帮我们进行了DNS查询,并不代表DNS泄露了。如果此时我将电脑的本地DNS服务器 改成1.1.1.1 意思是让1.1.1.1负责DNS解析,列表中返回了美国的DNS服务器,这也不能说明DNS没有泄露,只有当我们通过代理访问目标网站时,电脑给互联网发送了请求目标网站IP地址的明文DNS请求,这种情况就是DNS泄露。
DNS泄露原因以及如何解决
DNS泄露的原因就是在代理的情况下,本地发送了DNS请求,那只要让本地不发送DNS请求,直接将数据加密后发给节点服务器,就能避免了。因为加密的数据中已经包含了域名,节点服务器会负责DNS 并帮我们访问网站,本地进行DNS请求获取IP的行为只是为了匹配分流规则,所以只要我们的分流规则配置合理,就可以避免发起DNS请求,从而降低延迟,解决DNS泄露。
v2rayN配置防止DNS泄露
- v2rayN比较简单,直接使用客户端提供的绕过大陆路由方式就能解决DNS泄露的问题。
注意:系统代理方式不要选择PAC模式
- 也可以进入路由设置,将域名策略改成
AsIs,如果你以前手动修改过绕过大陆的路由规则,可以双击进入修改,将配置恢复成官方规则即可。
以上就是本次文章所有知识点,如果文章对你有帮助就动动你那发财的小手,点个赞留个言,给本站加点热度。谢谢支持!
声明
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。
版权声明:未经本站作者允许不得转载本文内容,否则将视为侵权。

x-ui里面设置http代理能出个介绍吗,有个插件需要porxy_http和porxy_all。好像用vless之类的协议不行
不好意思,现在我这边不再使用自建的了
看到了,原来有个cf支持代理端口列表
话说 只能是 2053 (2053是 CF DNS 所支持) 端口吗?那岂不是只能添加一条
有去看过官方文档吗?
从第三步开始时看不懂了
反向代理你可以不做
卡在第三步了,这个反代配置文件是直接创个文件粘贴进去吗?