centos VPS部署v2ray
1.安装v2ray
##下载并安装v2ray脚本
1
|
bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/goV2.sh)
|
一键安装v2ray脚本带伪装脚本
1
|
bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/centos_install_v2ray2.sh)
|
开机启动
启动
停止
重启
1
|
systemctl restart v2ray
|
2.配置v2ray
安装完成后,配置文件为/etc/v2ray/config.json,cat命令可查看内容:cat /etc/v2ray/config.json。
一个安装时自动生成的配置文件示例:
vmess协议配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
{
"log" : {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 27313,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "f500ecf5-e135-49c6-9ce2-78eb490d0ab9",
"level": 1,
"alterId": 64
}
]
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"outboundDetour": [
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}
],
"routing": {
"strategy": "rules",
"settings": {
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "blocked"
}
]
}
}
}
|
- 配置文件中”inbounds”下的这几项信息需要留意:port(端口)、clients中的id(用户id)和alterId(额外id),它们将在配置客户端时用到。
- id:需要和客户端的配置保持一致;配置完成之后重启v2ray。
在首次安装完成之后,V2Ray 不会自动启动,需要手动运行上述启动命令。
而在已经运行 V2Ray 的 VPS 上再次执行安装脚本,安装脚本会自动停止 V2Ray 进程,升级 V2Ray 程序,然后自动运行 V2Ray。
在升级过程中,配置文件不会被修改。
查看已开放端口
1
|
firewall -cmd —zone=public —list–ports
|
添加开放端口
1
2
|
firewall–cmd —permanent —zone=public —add–port=27313/tcp
firewall-cmd --reload
|
3.测试
查看v2ray是否正在运行
如果输出为空,大概率是被selinux限制了,解决办法如下:
- 禁用selinux
- 重启v2ray
1
|
systemctl restart v2ray
|
到此,服务端应该配置好了。
如果服务器商层面还有防火墙(阿里云/Google/AWS购买的vps),请登录网页后台,放行v2ray的端口。
4.伪装
伪装技术选择V2ray web+websocket+tls
最终效果为:http/https方式打开域名,显示正常的网页;
V2Ray客户端请求特定的路径,例如https://XXX.com/vmes,能科学上网;
浏览器直接请求https://XXX.com/vmes,返回”400 bad request”。
即外部看起来完全是一个人畜无害的正规网站,特定手段请求特定网址才是科学上网的通道。
建立伪装网站
安装apache,php后,建立好域名网站XXX.com,测试好是否可以正常运行。
设置转发规则
在apache配置文件中添加转发规则:
1
2
3
4
5
|
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /vmes/(.*) ws://127.0.0.1:27313/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /vmes/(.*) http://127.0.0.1:27313/$1 [P,L]
|
若使用Nginx服务器则在配置文件中添加以下规则
1
2
3
4
5
6
7
8
9
10
11
12
|
server {
location /vmes {
proxy_redirect off;
proxy_pass http://127.0.0.1:27313;
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;
}
|
更改v2ray配置文件
在v2ray配置文件/etc/v2ray/config.json中添加或更改如下设置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
{
"inbounds": [{
"port": 27313,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "f500ecf5-e135-49c6-9ce2-78eb490d0ab9", # 可以使用/usr/bin/v2ray/v2ctl uuid生成
"level": 1,
"alterId": 0
}
]
},
"streamSettings": { # 载体配置段,设置为websocket
"network": "ws",
"wsSettings": {
"path": "/vmes", # 与apache中的伪装路径保持一致
"headers": {
"Host": "www.XXX.com" //这里填写你的域名
}
}
},
"listen": "127.0.0.1" # 出于安全考虑,建议只接受本地链接
}],
}
|
- json文件不支持注释,上述配置中”#”号及后续内容都要删掉
- 使用tls加密,alterId改成0,以节省cpu加快v2ray的速度
配置无误后,重启v2ray服务
1
|
systemctl restart v2ray
|
测试
打开浏览器,输入域名及其他路径,应该显示正常网页或者页面不存在,说明apache正常工作;
输入域名加v2ray路径,例如https://XXX.com/vmes,应该出现”Bad Request”,
说明apache将流量转发给了v2ray,并且v2ray收到了请求。
5.客户端配置
在配置窗口点击“增加”,然后在右侧“服务器信息”中填入服务器的ip、https端口、用户id和额外id
若有伪装模式则在协议中填入伪装的域名XXX.com、路径/vmes、传输方式tcl