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 enable v2ray

启动

1
  systemctl start v2ray

停止

1
  systemctl stop v2ray

重启

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"
        }
      ]
    }
  }
}

查看已开放端口

1
firewall -cmd —zone=public —list–ports

添加开放端口

1
2
firewallcmd permanent zone=public addport=27313/tcp
firewall-cmd --reload 

3.测试

查看v2ray是否正在运行

1
  ss -ntlp | grep v2ray

如果输出为空,大概率是被selinux限制了,解决办法如下:

  1. 禁用selinux
1
  setenforce 0;
  1. 重启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" # 出于安全考虑,建议只接受本地链接
  }],
 }
1
  systemctl restart v2ray

测试

打开浏览器,输入域名及其他路径,应该显示正常网页或者页面不存在,说明apache正常工作; 输入域名加v2ray路径,例如https://XXX.com/vmes,应该出现”Bad Request”, 说明apache将流量转发给了v2ray,并且v2ray收到了请求。

5.客户端配置

在配置窗口点击“增加”,然后在右侧“服务器信息”中填入服务器的ip、https端口、用户id和额外id 若有伪装模式则在协议中填入伪装的域名XXX.com、路径/vmes、传输方式tcl