1.服务器背景
这台机子已经运行了很久的wordpress,https是最近才加上的。等于有一台服务器预装了BT+wordpress,,所以只需要再安装xray即可。这篇文章的起因是以前搭建博客时没有想怎么和其他服务共用443端口,在使用一键脚本搭建xray时,发现二者直接搭建是不能实现共存的。
2.开始搭建
首先介绍一下完整过程、出现的问题和解决方法。
这里参考了波仔的做法:https://www.v2rayssr.com/xraybt.html
2.1 安装宝塔和相关环境
搭建宝塔的步骤这里就不展开了,具体看波仔的帖子,值得注意的有几点:
- 不一定需要安装aapanel(宝塔国际版),普通版的宝塔也是可以做到的
- 在cloudflare解析时不要开启小云朵,亲测搭建完开启cf加速是没有办法连接的,申请证书的时候也有影响
- 也不一定需要1G的内存,512M内存加swap也是可以做到的
- BBR不一定要开,自己选择(链接:https://www.v2rayssr.com/bbr.html)
- 在安装完宝塔安装LNMP时建议五个组件全装而不是像视频中波仔一样安装部分组件,建议安装插件上的系统防火墙,管理防火墙很方便
2.2 安装Xray并调试
首先我们安装Xray的官方版本
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install -u root
然后生成一个随机编码备用
cat /proc/sys/kernel/random/uuid # 粘贴到VPS运行即可生成 UUID
安装完成后,在VPS目录 /usr/local/etc/xray 找到 config,json 文件,粘贴下面的配置文件
(下面的三处域名是必须修改的)
首先这里是xray的vless+xtls模式:
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "5272bc0d-9852-4af7-b2f0-979b1faf2973",
//此处改为你的UUID
"level": 0,
"email": "[email protected]",
//此处为邮箱地址,随便填
"flow":"xtls-rprx-direct"
}
],
"decryption": "none",
"fallbacks": [
{
"alpn": "h2",
"dest": 8002 //此处为回落端口,若更改,请更改后面Nginx的相应配置
}
]
},
"streamSettings": {
"network": "tcp",
"security": "xtls",
"xtlsSettings": {
"serverName": "qq.bozai.us", //修改为你的域名
"alpn": [
"h2",
"http/1.1"
],
"certificates": [
{
"certificateFile": "/www/server/panel/vhost/cert/qq.bozai.us/fullchain.pem", //修改为你的域名
"keyFile": "/www/server/panel/vhost/cert/qq.bozai.us/privkey.pem" //修改为你的域名
}
]
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": { }
}
]
}
下面是trojan的修改方法:
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "trojan",
"settings": {
"clients": [
{
"password":"440221",
"email": "[email protected]", //此处为邮箱地址,随便修改
"level": 0,
"flow": "xtls-rprx-direct"
}
],
"decryption": "none",
"fallbacks": [
{
"dest": 2222 //此处为回落端口,若更改,请更改后面Nginx的相应配置
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"serverName": "oliverhou.com", //修改为你的域名
"alpn": [
"h2",
"http/1.1"
],
"certificates": [
{
"certificateFile": "/www/server/panel/vhost/cert/oliverhou.com/fullchain.pem", //修改为你的域名 注意证书的位置 破解版宝塔把cert改成ssl
"keyFile": "/www/server/panel/vhost/cert/oliverhou.com/privkey.pem" //修改为你的域名 注意证书的位置 破解版宝塔把cert改成ssl
}
]
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": { }
}
]
}
最后补充一下多协议同端口回落
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "trojan",
"settings": {
"clients": [
{
"password":"440221",
"email": "[email protected]", //此处为邮箱地址,随便修改
"level": 0,
"flow": "xtls-rprx-direct"
}
],
"decryption": "none",
"fallbacks": [
{
"dest": 2222 //此处为回落端口,若更改,请更改后面Nginx的相应配置
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"serverName": "oliverhou.com", //修改为你的域名
"alpn": [
"h2",
"http/1.1"
],
"certificates": [
{
"certificateFile": "/www/server/panel/vhost/cert/oliverhou.com/fullchain.pem", //修改为你的域名 注意证书的位置 破解版宝塔把cert改成ssl
"keyFile": "/www/server/panel/vhost/cert/oliverhou.com/privkey.pem" //修改为你的域名 注意证书的位置 破解版宝塔把cert改成ssl
}
]
}
}
}
,//每个协议块用,号隔开
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "3e708264-834f-4c23-a40c-cfe9ae958f11", //此处改为你的UUID
"level": 0,
"email": "[email protected]", //此处为邮箱地址,随便修改
"flow":"xtls-rprx-direct"
}
],
"decryption": "none",
"fallbacks": [
{
"alpn": "h2",
"dest": 2222 //此处为回落端口,若更改,请更改后面Nginx的相应配置
}
]
},
"streamSettings": {
"network": "tcp",
"security": "xtls",
"xtlsSettings": {
"serverName": "oliverhou.com", //修改为你的域名
"alpn": [
"h2",
"http/1.1"
],
"certificates": [
{
"certificateFile": "/www/server/panel/vhost/cert/oliverhou.com/fullchain.pem", //修改为你的域名 注意证书的位置 破解版宝塔把cert改成ssl
"keyFile": "/www/server/panel/vhost/cert/oliverhou.com/privkey.pem" //修改为你的域名 注意证书的位置 破解版宝塔把cert改成ssl
}
]
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": { }
}
]
}
其实还可以添加更多的协议,或者每个协议都可以用不同的端口,然后在网站配置中添加相应修改,这里就不再赘述
这里如果不熟悉的朋友可以直接输入指令vi /usr/local/etc/xray/config,json 使用vim修改(或者用宝塔的文件管理更方便)
完成上述步骤后,需要为我们的网站申请证书(我的已经有了就不演示了,波仔帖子这里没问题,注意,不要开启强制https,因为后面我们修改nginx会把80重定向至443就已经相当于强制https了,开启会导致重定向过多)
搞定这一步就来到了网站设置界面(这里注意,波仔的帖子并不适用于所有情况,具体看下面)
在宝塔里打开网站设置界面,找到配置文件这一选项
首先在代码第一行插入如下代码(记得修改两处域名为你自己的域名)
server {
listen 0.0.0.0:80;
server_name qq.bozai.us;#这里要改为自己的域名
return 301 https://qq.bozai.us$request_uri;
}
然后修改下一个server块内的代码
注释443那一行,然后修改listen 80的那一行为listen 回落端口 http2
注意:这里的回落端口就是上面xray配置文件中对应的Dest端口
然后把原有的443那一行注释掉(搭建wordpress时没有开启https的可能没有这一行,可忽略这个提示)
最后加入一行代码,保持我们的博客访问时的格式
add_header Content-Security-Policy "upgrade-insecure-requests";
到这里就修改完了,具体参考如下图
最后我们测试一下xray
分别输入下面命令,查看 Xray 是否正常运行,若是有问题,就是配置文件出错
systemctl restart nginx
systemctl status nginx
systemctl restart xray
systemctl status xray
如图,就是ok了
接下来就是在v2rayN里配置相关的信息并导出节点连接,具体配置如图(trojan的也是类似)
(注意:clash并不支持vless,所以更推荐大家使用trojan的fallback)
最后这里说几个问题
1.首先是上面提到的,开启CDN无法连接,貌似在vless+xtls或者trojan下cdn加速(点亮小云朵)xray是没有办法工作的(具体情况不详,也可能是我记错了),所以在解析域名时要么直接不用cloudflare用自家的域名解析最好,或者不开启小云朵即可
2.第二,在开启https后访问网页可能会提示重定向过多,或者使用了ssl插件也可能会出现这种情况,这时候就需要修改配置文件了,具体操作看这个帖子
https://www.wppop.com/wordpress-https-you-cannot-visit-this-page.html
3.第二点不生效可能是证书问题,或者是特殊情况,必要时还需要使用phpadmin进数据库修改wp-option表中的字段,这也是我前面说的建议最好五个插件全都装,不是所有人都会mysql -u -p进数据库的
4.还有不明白直接看project X的文档最直截了当
https://xtls.github.io/Xray-docs-next/
5.上面的xray配置文件如果报错,尝试删除所有//后面的中文备注
6.该教学仅供参考,读者需遵守法律,热爱国家,不应将其用于非法活动
有问题可以在下面留言