Project V 是一个工具集合,它可以帮助你打造专属的基础通信网络。Project V 的核心工具称为V2Ray,其主要负责网络协议和功能的实现。
Project V is a set of network tools that helps you to build your own computer network. It secures your network connections and thus protects your privacy.
V2Ray手册
你知道V2ray吗?V2ray最近为什么这么火?说到V2ray大家肯定都不陌生,但是你知道V2ray到底是什么吗?相信大家对V2ray都很熟悉,V2ray就是我们每天都会经常遇到的,但是V2ray是怎么回事呢?今天小编就带大家来看看究竟是怎么一回事。
开始之前
声明
本指南仅用于学习V2Ray+TLS+WebSockets
的原理,丰富网络经验,请勿用于搭建通信信道尤其是商业性质的国际通信信道。违反此规定所产生的一切后果由个人承担,感谢理解。
官方文档
Project V是一个成熟的项目,有着完善的官方文档。这些文档结构完整,通俗易懂并有很多案例,在实用性和规范性上远远超过本文,建议传送至官方文档查看:
由于严重的地脉阻塞,这两个锚点无法在geoip:cn
地区打开
项目地址
本文所使用的工具均为官方工具,这些东西可以在GitHub上找到。使用这些工具需要能直面电脑的命令行,至少不会看到命令行就头痛。
由于官方对移动端的适配并不好,所以请自行使用更加方便的第三方app解决。
传送锚点:GitHub
由于轻微的地脉阻塞,这个锚点有时无法在geoip:cn
地区打开。
镜像锚点:https://github.astrophel.org
刚刚开始
准备
由于本文的特殊性,在此默认你具有基础的网络知识。
部署V2Ray+TLS+WebSockets
之前,我们要准备好一些东西:
少量摩拉、域名一个(建议在cloudflare购买)、位于非中国大陆地区的服务器一台、合适的文本编辑器一个
服务器建议使用Debian GNU/Linux
和Ubuntu
。当然,Windows server或Mac OS服务器也可以(?
选择一个喜欢的二级域名添加A记录解析到服务器IP,直接使用一级域名也不是不行。
以上步骤可以在网上找到丰富的教程。
准备好了
使用任意方式连接服务器,比如ssh。建议使用root账户,然后部署nginx或Apache。
这是最好的方式,不过有点麻烦。所以我会用宝塔面板代替。
在宝塔官网寻找合适的安装脚本执行安装:https://www.bt.cn/new/download.html。安装时间会比较长,请耐心等待。
A few Moments Later
根据安装完成的指示登陆宝塔面板,在LNMP安装页面仅安装nginx即可。多装了也没事
核心内容
再识V2ray
V2ray是一个很特殊的软件,它并不是传统意义上的服务端——客户端架构。事实上,v2ray的服务端和客户端是同一个软件,区别他们的只有配置文件。
v2ray使用的网络传输协议是vmess
和vless
,本文是基于vmess
的。传统意义上的vmess
采用TCP协议进行传输,由客户端指定加密并由服务器自动适配。aes-128位加密已经足够安全,但vmess
这种小众的TCP流量比较容易辨认,不需要解密也知道你在做什么。
对此,使用一种足以帮助我们隐藏自己的传输方式就显得非常重要。WebSockets是一种不错的选择。
WebSocket是一种在单个TCP连接上进行全双工通信的协议,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
WebSocket百科
WebSocket,允许服务端主动向客户端推送数据,而且是html5标准中很常见的协议,甚至可以配合内容分发网络(CDN),再适合不过了。
TLS,中文名安全传输层协议
,是现代互联网主要的信任机制,也是https协议的基础。这个协议可以让我们更好的保护信息安全,也让我们更像普通网页。
至此,你应该明白我们为什么需要V2Ray+TLS+WebSockets
了吧。
配置过程——服务端
下载安装:
curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh
bash install-release.sh
首先打开宝塔面板,创建一个网站,域名使用解析到服务器上的域名。然后上传自己申请的ssl证书。申请方法为使用freessl.cn。该站可以免费申请为期一年的ssl证书。如果不想麻烦,可以使用宝塔面板的let's encrypt免费证书。部署完成后开启强制https。
然后打开站点设置——配置文件——在最后一个大括号前加入如下代码:
location /ws {
proxy_redirect off;
proxy_pass http://127.0.0.1:10086;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
# Show real IP in v2ray access.log
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
/ws
可以替换成自己想要的名字,端口10086
可以换成自己想要的端口
这段配置文件的目的是把所有对/ws
目录的请求转发至设置的端口。代码中是10086,图中则是100
随后打开v2ray的配置文件。该文件默认在/usr/local/etc/v2ray
目录。
将目录中内容替换成如下代码:
{
"inbound": {
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/ws/",
"headers": {
"Host": "your host address"
}
}
},
"protocol": "vmess",
"port": 1108,
"settings": {
"clients": [
{
"alterId": 0,
"id": "0752ffa1-ea16-4f74-9e61-784949d2d26f"
}
]
}
},
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}
uuid可以使用这个工具生成:https://1024tools.com/uuid
在服务器执行systemctl start v2ray
启动v2ray
现在,用浏览器访问你的网站,可以看到一个初始页面,访问转发子目录,可以看到返回Bad Request
注意,子目录格式为/ws/
,有两条斜线
至此,服务端配置结束
配置过程——客户端
打开客户端配置文件config.json
,加入以下代码:
{
"inbounds": [
{
"port": 1080,
"listen": "127.0.0.1",
"protocol": "socks",
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
},
"settings": {
"auth": "noauth",
"udp": false
}
}
],
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "your server address",
"port": 443,
"users": [
{
"id": "0752ffa1-ea16-4f74-9e61-784949d2d26f",
"alterId": 0
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"wsSettings": {
"path": "/ws/"
}
}
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct" //如果要使用路由,这个 tag 是一定要有的,在这里 direct 就是 freedom 的一个标号,在路由中说 direct V2Ray 就知道是这里的 freedom 了
}
],
"routing": {
"domainStrategy": "IPOnDemand",
"rules": [
{
"type": "field",
"outboundTag": "direct",
"domain": ["geosite:cn"] // 中国大陆主流网站的域名
},
{
"type": "field",
"outboundTag": "direct",
"ip": [
"geoip:cn", // 中国大陆的 IP
"geoip:private" // 私有地址 IP,如路由器等
]
}
]
}
}
确保两边的uuid一致,也不要忘记把your server address
替换成自己的域名
以上配置文件的具体意义,可以在官方文档中了解。总的来说,只要具有inbounds
和outbounds
,v2ray就可以正确配置。routing
是为了跳过大陆网站。
现在,打开电脑或浏览器的代理设置,使用socks代理,地址为本机环回ip:127.0.0.1
,端口为1080
(要求与配置文件一致)
如果没什么问题,配置过程到这里就结束了。
更多内容,请参考官方文档:https://www.v2fly.org
还要做什么
网页!网页!
现在,你可以流畅的魔法上网,但是别忘了,折腾这么多,目的是为了隐蔽。你的网页现在还是一片空白或是一张初始界面,这显然不利于隐藏。
解决方案很简单,做一个网页上传上去。既充分利用了服务器资源,又便于伪装自己。
CDN
如果你在此时ping一下自己的域名,可以明明白白看到IP地址。作为一个刚刚建成的网站,每天有如此大的流量是不合常理的。为了IP的安全,套一层CDN非常重要。如果你是在cloudflare注册的域名,只需要将小云彩点成橙色即可。如果在其他地方注册的域名,也可以使用cloudflare的免费CDN服务,不过需要重设DNS解析。
Comments | 2 条评论
博主 3241990177
不愧是why
博主 Astrophel
@3241990177