文章

宝塔+V2ray,博客与V2RAY+Nginx+Ws+Tls共存。

前言

V2ray+Nginx+Ws+Tls+WordPress是可以共存的。只要的VPS性能可以达到,这些要求实现起来也是不难,反倒是降低了V2ray的使用门槛,让配置只会更加的简单方便!

对于VPS的要求

如果VPS内存少于512M的就别再折腾了。搭建一个V2RAY+Ws+Tls就行了。别幻想其他!!!推荐1G内存(若你还打算安装SQL的话。)

准备好你的域名

可以使用免费的域名,也可以花几十注册特价域名,比如6~8位数字.xyz域名,有很多朋友们说CDN很鸡肋,也是,所以这期就直接使用你们域名提供商提供的DNS直接解析域名。(其实上期申请CDN仅仅只是为了做一个SSL证书而已,其实有很多地方可以申请SSL证书)

免费域名申请地址:freenom (若你是申请不了免费的,那么请移步下面)

收费申请地址:namesilo (随便申请一个年付0.99/美元的域名,支付宝支付)

做好域名的解析,增加两个解析,一个泛解析,一个www的解析。有的域名提供商泛解析需要在主机名那里填入@,但是也有一些域名提供商主机名留空。

下面就开始VPS上面的操作

更改VPS系统时间(可选开启时间同步)

时间同步对于SSR也许无所谓,但是对于V2RAY很重要。是非常重要。下面的时间同步可以选择跳过,时间改好就可以了。

1
2
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

检查看当前系统时间

1
date -R

NTP同步时间 协议(可选择跳过)

众所周知,NTP协议是网络时间同步协议,有了它,我们可以很轻松的同步本地时间与互联网时间。VPS上也可以使用NTP来同步网络。首先安装必要的软件包:

Ubuntu/Debian系统

1
2
apt-get update
apt-get install ntp ntpdate -y

CentOS/RHEL系统

1
yum install ntp ntpdate -y

接下来我们需要先停止NTP服务器,再更新时间。

1
2
3
service ntp stop                 #停止ntp服务
ntpdate us.pool.ntp.org           #同步ntp时间
service ntp start                #启动ntp服务

执行完成后,VPS上就是相对精确的时间设置了。很多依赖于系统时间的应用程序也就能正常工作了。

安装宝塔面板

BT面板官方安装脚本

Ubuntu系统安装

1
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

Centos安装

1
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

根据安装完成的地址和密码登录你的宝塔面板 安装Nginx/Sql/或是其他你需要的运行环境软件

因为有时候debian不能急速安装,一般是编译安装,所以速度慢的奇葩!!若是真心是建站需求的话,推荐使用CentOS 7以上的系统,那样安装运行环境很急速的!一般10分钟内全部搞定

开启BBR

1
2
3
4
5
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr

安装v2fly服务器:官方脚本

安装

1
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

如果提示 curl: command not found ,那是因为你的 VPS 没装 Curl

ubuntu/debian系统安装 Curl 方法

1
apt-get update -y && apt-get install curl -y 

centos系统安装 Curl 方法

1
yum update -y && yum install curl -y

配置

vi /etc/v2ray/config.json V2RAY服务器的配置文件如下:(下面代码可以直接覆盖源文件代码)

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
{
    "inbounds": [
    {
        "port": 1234,  //此处为v2ray的监控端口,可修改随意,但是保证和下面提到的端口号相同
        "listen":"127.0.0.1",
        "protocol": "vless",  //协议
        "settings": {
            "decryption": "none",
            "clients": [
            {
                "id": "XXXXXXX",  //用户ID
                "level": 1
            }
            ]
        },
        "streamSettings": {
            "network": "ws",
            "wsSettings": {
            "path": "/wspath"  //此处为路径,需要和下面NGINX上面的路径配置一样
            }
        }
    }
    ],
    "outbounds": [
    {
        "protocol": "freedom",
        "settings": {
            "domainStrategy": "UseIPv4"
        },
        "tag": "ipv4-out"
    },
    {
        //设置IPV6路由
        "protocol": "freedom",
        "settings": {
            "domainStrategy": "UseIPv6"
        },
        "tag": "ipv6_out"
    },
    {
        "protocol": "freedom",
        "settings": {},
        "tag": "default"
    }
    ],
    "routing": {
        "rules": [
        //访问netflix时启用IPV6路由
        {
            "type": "field",
            "outboundTag": "ipv6_out",
            "domain": [
                "domain:google.com",
                "geosite:netflix",
                "domain:eu.croxy.site"
            ]
        },
        {
            "type": "field",
            "outboundTag": "default",
            "ip": [
                "192.168.0.0/16"
            ]
        },
        {
            "type": "field",
            "outboundTag": "default",
            "network": "udp,tcp"
        }
        ]
    }
}

启动

设置为开机自动启动

1
systemctl enable v2ray

启动v2ray服务

1
systemctl start v2ray

宝塔签发SSL证书,并强制开启HTTPS

配置站点的nginx

1
2
3
4
5
6
7
8
location /wspath { # 与 V2Ray 配置中的 path 保持一致
    proxy_redirect off;
    proxy_pass http://127.0.0.1:1234; #假设WebSocket监听在环回地址的1234端口上
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    }

安装Xray服务器:官方脚本

安装

安装Xray

1
wget https://github.com/XTLS/Xray-install/raw/main/install-release.sh && sudo bash install-release.sh

使用完成之后可以删除该脚本

1
rm ~/install-release.sh

注意: 使用 rm 命令删除文件的时候,默认其实就是删除现在所在的文件夹下的文件。但是,我依然写了完整的路径: ~/install-release.sh,这是我使用 rm 时的一个安全习惯、也是我把安装分成几步之后想强调一下的内容。如果你听过一些“程序员从删库到跑路”之类的段子,大概就知道为什么了。

配置

vi /usr/local/etc/xray/config.json XRAY服务器的配置文件如下:(下面代码可以直接覆盖源文件代码)

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
// REFERENCE:
// https://github.com/XTLS/Xray-examples
// https://xtls.github.io/config/
// 常用的 config 文件,不论服务器端还是客户端,都有 5 个部分。外加小小白解读:
// ┌─ 1*log 日志设置 - 日志写什么,写哪里(出错时有据可查)
// ├─ 2_dns DNS-设置 - DNS 怎么查(防 DNS 污染、防偷窥、避免国内外站匹配到国外服务器等)
// ├─ 3_routing 分流设置 - 流量怎么分类处理(是否过滤广告、是否国内外分流)
// ├─ 4_inbounds 入站设置 - 什么流量可以流入 Xray
// └─ 5_outbounds 出站设置 - 流出 Xray 的流量往哪里去
{
  // 1\_日志设置
  "log": {
    "loglevel": "warning", // 内容从少到多: "none", "error", "warning", "info", "debug"
    "access": "/home/vpsadmin/xray_log/access.log", // 访问记录
    "error": "/home/vpsadmin/xray_log/error.log" // 错误记录
  },
  // 2_DNS 设置
  "dns": {
    "servers": [
      "https+local://1.1.1.1/dns-query", // 首选 1.1.1.1  DoH 查询,牺牲速度但可防止 ISP 偷窥
      "localhost"
    ]
  },
  // 3*分流设置
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      // 3.1 防止服务器本地流转问题:如内网被攻击或滥用、错误的本地回环等
      {
        "type": "field",
        "ip": [
          "geoip:private" // 分流条件:geoip 文件内,名为"private"的规则(本地)
        ],
        "outboundTag": "block" // 分流策略:交给出站"block"处理(黑洞屏蔽)
      },
      {
        // 3.2 防止服务器直连国内
        "type": "field",
        "ip": ["geoip:cn"],
        "outboundTag": "block"
      },
      // 3.3 屏蔽广告
      {
        "type": "field",
        "domain": [
          "geosite:category-ads-all" // 分流条件:geosite 文件内,名为"category-ads-all"的规则(各种广告域名)
        ],
        "outboundTag": "block" // 分流策略:交给出站"block"处理(黑洞屏蔽)
      }
    ]
  },
  // 4*入站设置
  // 4.1 这里只写了一个最简单的 vless+xtls 的入站,因为这是 Xray 最强大的模式。如有其他需要,请根据模版自行添加。
  "inbounds": [
    {
        "port": 1234,
        "listen": "127.0.0.1",
        "protocol": "vless",
        "settings": {
            "clients": [
                {
                    "id": "", // 填写你的 UUID
                    "level": 0,
                    "email": "love@example.com"
                }
            ],
            "decryption": "none"
        },
        "streamSettings": {
            "network": "ws",
            "security": "none",
            "wsSettings": {
                "acceptProxyProtocol": true, // 提醒:若你用 Nginx/Caddy 等反代 WS,需要删掉这行
                "path": "/websocket" // 必须换成自定义的 PATH,需要和上面的一致
            }
        }
    }
  ],
  // 5*出站设置
  "outbounds": [
    // 5.1 第一个出站是默认规则,freedom 就是对外直连(vps 已经是外网,所以直连)
    {
      "tag": "direct",
      "protocol": "freedom"
    },
    // 5.2 屏蔽规则,blackhole 协议就是把流量导入到黑洞里(屏蔽)
    {
      "tag": "block",
      "protocol": "blackhole"
    }
  ]
}

更多配置方法可以参见Xray配置示例

启动

设置为开机自动启动

1
sudo systemctl enable xray

启动v2ray服务

1
sudo systemctl start xray

本文参考

  1. v2rayssr
  2. Xray 官方安装文档
本文由作者按照 CC BY 4.0 进行授权