V2Ray 配置 WebSocket + TLS
之前简单写了一下 搭建 V2Ray 的过程,使用了脚本来安装和配置,也没有使用混淆之类的,在流量比较大的时候还是不太安全。这里就使用 WebSocket + TLS 来配合 V2Ray 做混淆,主要就是把 V2Ray 的服务器伪装成一个网站服务器。
准备
首先需要有一个域名,对于有网站的站长来说可以设置一个二级域名解析到服务器。如果没有域名的话,可以买一个,一些小众后缀的域名价格也比较便宜,不到 10 元 就可以买一年。购买后还是把域名解析到服务器。
除了域名外还需要申请一个 SSL 证书,SSL 证书可以免费申请,关于申请 SSL 可以看 申请免费的 SSL 证书为网站开启 HTTPS 。
安装 V2Ray
首先安装 cURL,CentOS 之类的系统可以输入:
yum install curl
如果是 Debian 或 Ubuntu 之类的系统可以输入:
apt install curl
接下来就是下载和安装 V2Ray:
bash <(curl -L -s https://install.direct/go.sh)
安装完成后会生成 PORT
(端口) 和 UUID
,如下:
PORT:14204
UUID:01c68858-1939-4dd0-d514-0037afe1240a
Created symlink from /etc/systemd/system/multi-user.target.wants/v2ray.service to /etc/systemd/system/v2ray.service.
V2Ray v4.22.1 is installed.
如果不配置 TLS + WebSocket 的话,打开端口就可以使用了。
配置 TLS 和 WebSocket
V2Ray 的配置文件是 JSON 格式的,要更改 V2Ray 的配置文件需要能看懂 JSON。
V2Ray 的配置文件在 /etc/v2ray/config.json
,可以用 VI 或 VIM 之类的编辑器打开编辑,关于 VI 的使用可以看 Linux VI 编辑器简单使用教程 。
默认的配置文件大致如下:
{
"inbounds": [
{
"port": 14204,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "01c68858-1939-4dd0-b344-0037afe1770a",
"level": 1,
"alterId": 64
}
]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
},
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}
],
"routing": {
"rules": [
{
"type": "field",
"ip": [
"geoip:private"
],
"outboundTag": "blocked"
}
]
}
}
WebSocket 和 TLS 的 inbounds
配置如下:
{
"port": 443,
"listen": "0.0.0.0",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "18c347ee-3315-4237-8c6d-9fdb4774771a",
"alterId": 64
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"serverName": "xxx.com",
"allowInsecure": true,
"certificates": [
{
"certificateFile": "/home/ssl/full_chain.pem",
"keyFile": "/home/ssl/private.key"
}
]
},
"wsSettings": {
"path": "/",
"headers": {}
}
},
"tag": "",
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
其中的 port
就是端口,如果你的服务器上还有其它网站的话可以更改一下端口。id
就是 UUID,有很多在线生成 UUID 的网站,可以重新生成一个。serverName
就是域名,可以更改为你的域名。certificates
中的 certificateFile
就是证书文件的位置,需要绝对路径,keyFile
就是证书密钥的位置。
上面的 inbounds
配置需要添加到 V2Ray 配置文件的 inbounds
中,添加后的 V2Ray 配置文件大致如下:
{
"inbounds": [
{
"port": 14204,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "01c68858-1939-4dd0-b344-0037afe1770a",
"level": 1,
"alterId": 64
}
]
}
},
{
"port": 443,
"listen": "0.0.0.0",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "18c347ee-3315-4237-8c6d-9fdb4774771a",
"alterId": 64
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"serverName": "xxx.com",
"allowInsecure": true,
"certificates": [
{
"certificateFile": "/home/ssl/full_chain.pem",
"keyFile": "/home/ssl/private.key"
}
]
},
"wsSettings": {
"path": "/",
"headers": {}
}
},
"tag": "",
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
},
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}
],
"routing": {
"rules": [
{
"type": "field",
"ip": [
"geoip:private"
],
"outboundTag": "blocked"
}
]
}
}
安装 V2Ray 时生成的 inbounds
配置如果不用的话也可以删除。
保存配置后输入 service v2ray start
启动 V2Ray,别忘了打开设置的端口,CentOS 设置端口可以看 CentOS 开放、关闭和查看端口 。
客户端配置
因为我用的是 Win10,所以就以 Windows 的 v2rayN-Core 为例,其它系统的配置应该也差不多。
在 https://github.com/2dust/v2rayN/releases 可以下载 v2rayN-Core
。
打开 v2rayN 选择 添加[VMess]服务器
,按照下图的说明填写:
相关文章:
版权声明:本文为原创文章,版权归 Mr. Ma's Blog 所有,转载请联系博主获得授权。
本文地址:https://www.misterma.com/archives/856/
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。
感谢指导
你好请问一个问题。
我的https已经配置好了,https://域名 可以正常访问。证书格式是.crt
v2ray 使用默认配置时,也可以正常使用。
但是v2ray中配置了ssl代理时(我照搬了博主的配置文本),修改了tlsSettings里的信息。之后v2ray无法启动,错误信息代码 23 。 请问博主有解决思路没?感谢
主要需要更改的地方包括 tlsSettings 里的 serverName,serverName 是域名。certificates 里的 certificateFile 和 keyFile,certificateFile 是 pem 格式的证书文件位置,keyFile 是 key 格式的证书密钥文件的位置。
还有 如果你的服务器上已经部署了网站的话,端口可能也需要改一下,不要用 443 端口。最好把 id 也改一下,有很多生成UUID 的网站,你可以重新生成一个。
你复制的时候需要复制最下面的一个配置信息,括号之类的别漏了。
谢博主回复。
我部署网站使用nginx, 然后我将https:// 域名/ray转发到localhost:10000端口。
之后在v2ray的配置文件中port =10000,listen = 127.0.0.1,serverName=域名。这些都应该是没问题的。 唯一感觉不太对的地方,有可能是ssl证书,我的是crt格式,博主用的是pem,我没搞清楚这两者的差别。
最终启动错误代码为 status = 23。 但是我从网上查不到这个错误信息的原因。
如果有想法,博主回复下,感谢了! 后续如果我解决了,再来还愿.?
你可以重新申请个免费证书试试,申请网站 https://freessl.cn/,申请教程 https://www.misterma.com/archives/800/。
我可以确认证书是没有问题,是按照博主文章中的链接教程申请的,部署后,https://域名 已经可以访问到网址。
问题必然是v2ray配置,因为v2ray根本无法启动。?
试试 v2-ui https://github.com/sprov065/v2-ui
已经搞定,感谢博主了。
虽然遇到了些问题,但是这篇博客帮助很大,博主的回复也让我很感谢。>-<
我最终没有安装v2-ui,而是删掉了json中关于streamSettings的部分,重启nginx,就好了。
界面还要优化吗?
什么界面?
类似 http://ns1.micalun.website:658/images/2020/04/03/2020-04-03_142737.jpg
还是先请教下:如果要改界面,像pincong.rocks那种,界面比较紧凑,正文部分和侧边栏排在一起形成整体,然后修改底纹图片。做到上面这几个功能,要修改哪几个文件?
算了,具体的调整太个性了,也不好调整,我自己看看吧。
想调整让各文字块更紧密,调整方框大小。
可以在自定义 CSS 中加入
.sidebar > section,.sidebar section > ul,.article-list > .post {margin: 0 !important;border-radius: 0 !important;}
主题相关的问题建议在主题相关的文章中提问。
是在style.css文件中改吗?刚才试了 没用
我这里说的自定义 CSS 是主题外观设置中的自定义 CSS,不是直接修改 style.css。style.css 是通过 Sass 编译 style.scss 后生成的,不太方便修改。
哦,是在网站设置里面加css啊。那需要更多设置的话,要看什么文档?
https://www.misterma.com/archives/819/ 这篇文章已经包含了详细的使用说明,如果遇到这篇文章中没有的内容可以到留言板提问。
博主 这个有写麻烦了 很多不懂操作系统的 vi vim 都用不习惯 怎么保存什么都不懂
其实用v2-ui 比较方便
V2-UI 确实更方便,我写这篇文章的时候还不知道有 V2-UI。
又在技术的路上越走越远,哈哈,致敬?
哈哈,主要是生活太单调了,感觉没啥可以写的。其实我的技术也很差。