linux

宝塔所建WordPress域名迁移中一些问题的解决方法

一、域名迁移

1.何为域名迁移?

即我有原域名AAA.com下的一个wp博客网站,但是这个AAA.com域名要到期了或者有自己更喜欢的域名,则需要对域名进行迁移操作。

2.迁移过程

由于宝塔网站设置的限制存在,在这里选用的是先使用宝塔自带的功能备份站点及数据库,完成后将原站点及其配套的数据库删除。重新新建一个域名为BBB.com的新网站(即使用你想更换的域名建站)。值得注意的是,在删除网站时其实不需要删除数据库,这里只是为了保证严谨。然后在www/backup/site目录下找到之前的网站备份压缩包,将其解压到新建的网站的根目录下。(详情请谷歌宝塔wordpress备份恢复)

完成上面步骤后,修改新建的站点的权限为755并勾选包含子文件夹选项。修改wp_config.php中的数据库相关信息,重启nginx即可。(固定链接伪静态、ssl证书要重新配置)

附:伪静态代码:

location /
{
	 try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

3.在迁移过程中出现了什么问题?

问题一:出现403 Forbiden nginx 错误:

解决方案:

使用ping工具查看域名解析情况,发现已经正常解析,但是仍出现一直403的情况。后来发现403是重定向至原域名下的403错误,而非新域名下的错误。初步排查和cf解析无关,与ssl证书也无关。在修改数据库表项之后应该不会再重定向过去,检查重定向也没有记录。怀疑为really simple ssl等插件导致的重定向,疑惑了很久以后通过强制设定主页网址解决。即在wp_config.php的末尾加入代码:

define('WP_HOME','https://oliverhou.com');
define('WP_SITEURL','https://oliverhou.com');

问题二:变更cloudflare解析后仍解析至原域名,但是原域名证书和解析记录已被删除,导致直接报错DNS ERROR 1016

解决方案:

原先是讲旧域名解析记录直接删除,在新域名处添加新纪录。但是不知为何需要将旧域名修改指向再删除才生效,可能是修改可以设置TTL为一分钟可以马上生效的原因。故修改旧域名指向后再删除,随后错误变为问题一

还有关于插件等问题未提及但是也仍需注意。同时在迁移时需要使用SQL语句修改域名关键信息,参考代码:

UPDATE wp_options SET option_value = replace(option_value, 'old_domain.com', 'new_domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = replace(post_content, 'old_domain.com', 'new_domain.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'old_domain.com', 'new_domain.com');
UPDATE wp_comments SET comment_content = replace(comment_content , 'old_domain.com', 'new_domain.com');

上述代码参考网站(网站内还有别的情况的代码):

Xray(VLESS+XTLS或trojan+tls)+BTpanel+wordpress使用nginx共存搭建过程的探索

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.该教学仅供参考,读者需遵守法律,热爱国家,不应将其用于非法活动

有问题可以在下面留言

Ubuntu21.04更新小记——Grub引导乱了!

1. 更新前的平静

原来一直使用20.04的我看到20.10果断更新,完美成功,纵享丝滑,但是在这一次21.04我同样果断更新之后,出现了一个说是问题不算严重,但是又不太舒服的Bug。更新前情况相似的话可以参考,等待一段时间再更新。

2. 具体情况

2.1 我认为的亮点

首先此次更新的亮点之一就是更换了桌面的运作方式,使得桌面的自定义和逻辑上更为先进。原先Gnome桌面是依赖X.org的原理来运行的,而本次的STS版本21.04使用了Wayland来作为桌面运作方式,总之就是更为流畅。虽然但是,这个默认桌面壁纸真嘟有点丑。

其次,使用了最新版的内核5.11,而在20.10是只能停留在5.8的版本的。而这个内核就是罪魁祸首了。

2.2 我的情况

我的Ubuntu是双系统的,电脑大概情况如下:

首先WIN10是装载在一个单独的128G的固态SSD中的,引导单独存在。而我的Ubuntu是安装在我的机械硬盘中的,安装的时候是专门有一个空的Ext4的分区来安装的,就是图中硬盘1的中间一百多G。而Ubuntu的引导就是那个名为boot的1G 的分区,可以看到是在机械硬盘的。此前引导找不到会自动进Grub2 GNU界面(ubuntu的通病),但是此前的Grub和内核都在机械硬盘,此次更新自动把我的Gtrub直接装到了WIN分区的EFI(混乱)。别问我怎么知道的,问就是进BIOS看到了。所以现在如果发生找不到内核的情况,输入Exit是没有办法进入Ubuntu的(之前可以,因为Grub和内核在同一磁盘,可以找到,而Ubuntu对于非系统所在的磁盘是所谓Media挂载的(就是文件映射),所以是不可能找到不同磁盘下的内核的),现在遇到这种情况只能强行关机,然后进入BIOS手动选引导项,十分的不舒服。

2.3 解决方法

  • 尝试在Grub界面修改手动Boot,即手动加在内核,但是ls查看,只有WIN的硬盘没有Ubuntu的,很明显不开机情况Media没有被挂载
  • 尝试手动在BIOS进入系统后修复Grub,即使用sudo apt update–grub2命令,仍然无法解决
  • 尝试手动修改conf文件,一样失败

2.4 建议

可以直接从Ubuntu20版本升级Ubuntu21.04的情况如下:

  • 单系统:Ubuntu是单系统(全盘,即没有装WIN只有linux)
  • 双系统:Ubuntu安装时没有选其他,引导和WIN在一起,两个系统也在同一物理磁盘(上面的磁盘都是指物理磁盘而非分盘)
  • 使用的是VM等虚拟机(相当于全盘)

注意:升级系统也会重置所有驱动(这里注意Linux的驱动是由内核提供的),如果内核不支持原有驱动就会刷掉,比如CUDA等,需要全部重新安装,很麻烦!!

引用图片出处:http://blog.yixao.net/tech/22681.html

VPS在宝塔LNMP环境下搭建proxypool获取免费Clash和V2ray节点

VPS 安装宝塔

https://www.bt.cn/bbs/thread-19376-1-1.html

下载相关文件

在虚拟机的根目录新建一个文件夹,名字随意

进入新建的文件夹,远程下载主程序代码

https://github.com/xiaofei-ya/proxypool/releases/download/v0.5.3/proxypool-linux-amd64-v0.5.3.gz
该版本为最新版,还没有继续更新,详情可以留意这个github仓库

解压在当前文件夹并重命名为 proxypool,并确定权限为 755(以上也可)

同样远程下载另外两个配置文件

https://raw.githubusercontent.com/xiaofei-ya/proxypool/master/config/config.yaml
配置文件
https://raw.githubusercontent.com/xiaofei-ya/proxypool/master/config/source.yaml
资源文件

解析域名

cloudflare 或者别的域名解析到自己的 VPS 地址

首先将自己的域名加入Cloudflare(或者其他CDN)

cloudflare参考教程:https://zhuanlan.zhihu.com/p/82909515

!!!注意这里域名解析的小黄云如果项目失败的话把它变灰再试一次,因为这个项目不需要加速,只需要DNS代理跳转

将SSL设置为完全严格

边缘证书会出现这个,这样就代理成功啦!ping这个网址就可以ping通

配置文件

双击打开配置文件 config

domain 就是你刚刚在CDN解析的域名

source-files 这里把前面的文件夹去掉,留下./source.yaml 即可

cral-interval 是爬虫爬取间隔,设置为 720 即可,不必过于频繁

下方 speedtest 可以打开或者关闭速度测试

网站反代

宝塔网站里添加一个网站,域名为刚刚解析好并填入配置文件的网址。

申请一个 ssl 证书,并打开强制 https

然后添加一个反向代理,代理到本机的 12580 端口(其他自定义也可以但是要和配置文件一致)

这里要提示一下,如果申请Let’s Encrypt不成功,请升级nginx版本和PHP版本

参考版本:Nginx:1.19 PHP:8.0

增加 / 删除抓取源

根据他给的格式自己进行添加 / 删除

其中TG频道直接填写TG频道网址后面的频道名字:

例如:https://t.me/GCPUS则填入GCPUS

其他条目自行百度或者评论留言

运行程序

使用ssh 启动程序

运行完输入ps -ef 查看进程是否有./config/source.yaml
若有即为成功,不成功原因可能有:config.yaml或者source.yaml格式错误

nohup ./proxypool -c config.yaml 1>>run.log 2>>run.log &

更新配置 / 重启程序

代码

cd /123 # cd后面是你自己设置的根目录路径
ps -ef

然后输入 kill -s 9 ./proxypool -c config.yaml 对应的 PID

比如我这里就是 kill -s 9 595199 # 每个人的 PID 是不一样的!

这样就结束进程了

再次启动使用启动命令即可

nohup ./proxypool -c config.yaml 1>>run.log 2>>run.log &

程序有启动时间,请在 3 分钟后刷新页面查看是否生效

Demo

代理池:https://proxy.olivers.works/

Fork 项目地址:https://github.com/xiaofei-ya/proxypool

节点筛选教程