分類彙整: 未分類

搭建Typecho博客+主题

Typecho博客相当轻量,让作者更专注于写作,加上强大的主题支持,你既可以完成下面的专业站点:

joe2.0作者:https://bbchin.com/

joe魔改作者:https://laolion.com/

一、实现首页幻灯片、公告和文章置顶,文章末尾开启点赞和赞赏;
joe2.0.PNG

二、高端代码块,让技术员的博客更专业;
代码块.PNG

三、多形式漂亮按钮,让文章上档次;
按钮.PNG

四、生动的表现力:内嵌B站视频和PDF预览功能;
视频播放.PNG

以上图片来源Joe2.0作者主页,今天我来用Typecho+Joe主题搭建一个高端博客站;


视频教程:

Bilibili:https://www.bilibili.com/video/BV1Gi4y1S7NU/

Youtube:https://www.youtube.com/watch?v=6tSgYasoLtM

搭建流程:

一、vps搭建宝塔环境

Centos安装脚本
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

Ubuntu/Deepin安装脚本
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

Debian安装脚本
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ed8484bec

Fedora安装脚本
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh ed8484bec

二、在aapanel中安装环境Nginx+php 7.2+ Mysql 5.6;

三、在此过程中,解析域名;

四、搭建Typecho:新建站点、建立数据库、上传Typecho和主题文件;

Typecho源码:http://typecho.org/download

joe主题:https://github.com/HaoOuBa/Joe

joe魔改:https://pan.baidu.com/s/1JjIJbcb2rAGw9rlQo5IKOA 提取码:bxsm

五、安装博客、安装主题

六、完成了,下面是joe魔改主题作者博客,漂亮的不要不要的!

魔改.PNG

证书申请acme

常用组件及软件包
##Debian安装命令###
apt-get update && apt-get install unzip zip wget curl mc nano sudo ufw socat ntp ntpdate gcc git vim socat make build-essential cmake libboost-system-dev libboost-program-options-dev libssl-dev default-libmysqlclient-dev netcat dnsutils -y
##CentOS安装命令###
yum update -y && yum install unzip zip wget curl mc nano sudo ufw socat ntp ntpdate gcc git vim socat make build-essential cmake libboost-system-dev libboost-program-options-dev libssl-dev default-libmysqlclient-dev netcat net-tools-y

解析是否生效检测网站:https://www.whatsmydns.net/

#

安装acme
curl https://get.acme.sh | sh
source ~/.bashrc

建个文件夹存放证书和密钥
rm -rf /home/tls && mkdir -p /home/tls

#

standalone模式(申请单个域名证书)
确保80端口未被占用:netstat -nlpt 关闭进程kill pid 停止服务systemctl stop 服务名
添加解析A记录域名到VPS的IP地址
申请证书
~/.acme.sh/acme.sh –issue -d fox.test1223.cf –standalone -k ec-256
安装证书
~/.acme.sh/acme.sh –installcert -d fox.test1223.cf –fullchainpath /home/tls/fox.test1223.cf.crt –keypath /home/tls/fox.test1223.cf.key –ecc
定期自动更新
acme.sh –upgrade –auto-upgrade

#

dns模式申请通配符证书(泛域名证书)(非dnsAPI,API的使用可见第13期教程https://youtu.be/qkTfdptBivs)
acme.sh –issue -d *.test1223.cf –dns –yes-I-know-dns-manual-mode-enough-go-ahead-please

检测解析是否生效

(需要dig工具,Debian安装命令apt-get install dnsutils; CentOS安装命令 yum install bind-utils)
dig _acme-challenge.test1223.cf txt

acme.sh –renew -d *.test1223.cf –dns –yes-I-know-dns-manual-mode-enough-go-ahead-please
安装证书
~/.acme.sh/acme.sh –installcert -d *.test1223.cf –fullchainpath /home/tls/test1223.cf.crt –keypath /home/tls/test1223.cf.key

无法自动更新

iredmail邮件服务器之修改默认的web服务端口号

安装iredmail之后,由于需要在路由器上做端口映射以便在外网访问webmail,因此端口不能和WEB服务的端口好冲突,所以需要修改邮件服务器的httpd服务的端口。

一、apache/httpd的http服务和https服务端口号都要修改。

  基本服务端口好办,iredmail默认安装下,修改/etc/httpd/conf/httpd.conf中的Listen一行即可,这里我改为8090

#Listen
Listen

  可是,roundcube的webmail服务都是使用的https服务,我们都知道https的默认端口是443,这个在哪里修改呢?后来找到这篇文章修改apache http/https 端口号,却发现我的/etc/httpd/conf目录下没extra子目录,更别提那个httpd-ssl.conf!我估计可能版本不同,经过一番搜索,找到/etc/conf.d/ssl.conf,估计就是他了,这里修改443为8093。

#Listen
Listen
.
.
.
##
## SSL Virtual Host Context
## #<VirtualHost _default_:443> <VirtualHost _default_:8093>

  修改保存后,重新启动httpd服务

[root@mail2 ~]# service httpd restart

二、添加iptables防火墙规则,开放新的端口号

  这个没啥可说的,新建两条规则,开放新修改的端口,注意保存就行。

[root@mail2 ~]# iptables -A INPUT -p tcp -m tcp --dport  -j ACCEPT
[root@mail2 ~]# iptables -A INPUT -p tcp -m tcp --dport -j ACCEPT
[root@mail2 ~]# service iptables save

三、修改roundcube的配置文件和小bug

  此时如果直接用https端口去访问webmail已经可以了,但是如果使用http方式访问,然后由roundcube实现https强制跳转,则roundcube形成的还是默认的https端口地址形式,所以访问失败。比如,我现在的http地址为

http://192.168.5.26:8090/mail

则roundcube自动跳转为

#https://192.168.5.26/mail

此时需要修改roundcube的配置文件,在我的版本中为/var/www/roundcubemail/config/config.inc.php(新版本是这个文件,而不是网上所说的旧版文件main.inc.php)

$config['force_https'] = true;

将上面这行修改为:

$config['force_https'] = ;

另外,还要修改index.php中的一个小bug(可能是,我用chrome浏览时报错说本页有循环跳转代码)

代开/var/www/roundcubemail/index.php文件,找到下面这行

// check if https is required (for login) and redirect if necessary
if (empty($_SESSION['user_id']) && ($force_https = $RCMAIL->config->get('force_https', false))) {

修改为下面这行(就是加了一个判断,当前地址是否处于https模式)

// check if https is required (for login) and redirect if necessary
if ($_SERVER["HTTPS"]<>"on" && empty($_SESSION['user_id']) && ($force_https = $RCMAIL->config->get('force_https', false))) {

四、没有第四,打完收工:)

最后,别忘了重起一下服务

[root@mail2 roundcubemail]# apachectl  restart 

usb设备描述符请求失败怎么解决

usb设备描述符请求失败怎么解决

解决方法步骤如下:

1、设备管理器 -> 通用串行总线控制器 -> 未知USB设备(设备描述符请求失败),右键属性

(我这里没有未知USB设备,图片只是举例仅供参考);

相关文章教程推荐:windows教程

2、属性 -> 详细信息,属性选择 设备实例路径,复制显示的值;

如:USB\ROOT_HUB30\4&300F60A4&0&0

3、regedit 打开注册表,搜索路径:计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ + 第2步复制的值;

4、根据第2步复制的值,第2步复制的值,第2步复制的值(重要的事情说3遍)如

(好多小伙伴说找不到对应的值,这里一定要参考第2步复制的值,,每个机器的不一样,图片只是举例子,千万不要按部就班操作,会出意想不到的问题,同志们注意了,图片只是参考,根据第2步复制的值)

在Device Parameters下新建DWORD(32-bits) Value 命名为EnhancedPowerManagementEnabled。DWORD值数据应对应于0;

5、关闭注册表,拔下USB设备,重启电脑、重新插入设备,问题不应再持续存在。

安装和运行 AdGuard Home DNS服务器

要在 VPS 上运行 AdGuard Home,您需要一台装有 Debian 8 或 9、x64 或 x32 的服务器。

可能的解决方案包括Vultr1&1CloudwaysHostGatorDigital OceanBytemark等等。AdGuard 不隶属于任何这些或其他 VPS 服务。

初始安装

首先让我们确保您的 VPS 具有必要的最低要求,以 root 身份运行:

apt-get install sudo nano bind9-host

转到AdGuard 主页并为您的架构下载二进制文件(本例中为 64 位 Linux)。

要下载 AdGuard Home 并解压缩,请执行以下命令:

wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz
tar xvf AdGuardHome_linux_amd64.tar.gz

您可以通过运行以下命令找到解压到的目录:

cd AdGuardHome
pwd

运行sudo ./AdGuardHome -s install以将 AdGuard Home 安装为系统服务。

以下是控制服务可能需要的其他命令。

  • AdGuardHome -s uninstall– 卸载 AdGuard Home 服务。
  • AdGuardHome -s start– 启动服务。
  • AdGuardHome -s stop– 停止服务。
  • AdGuardHome -s restart– 重新启动服务。
  • AdGuardHome -s status– 显示当前服务状态。

您可以通过运行以下命令来验证它是否正常工作:

host doubleclick.net 127.0.0.1

如果一切正常,您将获得以下输出:

Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

Host doubleclick.net not found: 3(NXDOMAIN)

访问网页界面

您可以通过在浏览器中键入以下内容来访问端口 3000 上的 AdGuard Home Web 界面 —http://1.2.3.4:3000/

将 1.2.3.4 替换为您的 VPS 的 IP 地址。

配置您的设备以使用 AdGuard Home

现在,一旦您确定 AdGuard Home 在您的 VPS 上工作,您可以通过更改系统 DNS 设置以使用您的 VPS 的公共 IP 地址在您的机器上使用它。

VPS测速脚本

bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/centos_install_v2ray.sh)提前准备:

如果提示wget错误 或者curl错误,请运行下面的脚本

安装wget包方法
yum -y install wget ##ContOS Yum 安装 wget
apt-get install wget ##Debian Ubuntu 安装 wget

安装curl包方法
apt-get update -y && apt-get install curl -y ##Ubuntu/Debian 系统安装 Curl 方法
yum update -y && yum install curl -y ##Centos 系统安装 Curl 方法

第一组代码 ZBenchVPS性能综合测试
wget -N –no-check-certificate https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench-CN.sh && bash ZBench-CN.sh

第二组测试代码
三网测速
bash <(curl -Lso- https://git.io/superspeed)

第三组代码整合
1、对VPS的整体性能进行测试,包含VPS的硬件信息,硬盘速率等等
2、对VPS的网络性能进行测试,包含三网(电信、移动、联通)的下载速度和上传速度等
3、对VPS的回程路由进行测试,包含四网(电信、移动、联通、教育网)的回程线路。

wget -N –no-check-certificate https://raw.githubusercontent.com/V2RaySSR/vps/master/vpstest.sh && bash vpstest.sh

第四组回程测速脚本
wget -qO- git.io/besttrace | bash

第五组代码
SuperSpeed 测试VPS服务器到国内节点的网速
wget –no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh chmod +x unixbench.sh ./unixbench.sh

第六组bench.sh

bench.sh是秋水逸冰写的一个VPS测试脚本,全面适用于各种 Linux 发行版的网络(下行)和 IO 测试。
主要功能如下:

  1. 显示当前测试的各种系统信息;
  2. 取自世界多处的知名数据中心的测试点,下载测试比较全面;
  3. 支持 IPv6 下载测速;
  4. IO 测试三次,并显示平均值。

该脚本同样是开源的,开源地址:https://github.com/teddysun/across
wget -qO- bench.sh | bash curl -Lso- bench.sh | bash wget -qO- 86.re/bench.sh | bash curl -so- 86.re/bench.sh | bash

第七组SuperBench.sh
和上面的Superspeed是同一个作者,整合了bench脚本的一个VPS测速脚本。
开源地址:https://github.com/oooldking/script/blob/master/superbench.sh

wget -qO- –no-check-certificate https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash curl -Lso- -no-check-certificate https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash

iRedMail搭建

准备工具

1、干净的 VPS 一台,内存最好大于 1 GB,推荐 CentOS、Ubuntu,以下教程用 CentOS 演示,Ubuntu 请自行更换 yum 命令即可。

(CentOS 项目将重点转移到 CentOS Stream,CentOS 8 将在 2021 年底结束)

2、VPS 最好支持 PTR Records,演示用的 VPS 来自 搬瓦工

3、域名一个,推荐托管 cloudflare (解析生效快)

(若是没有域名,或是不会注册,或是不会托管到 cloudflare ,请点击这里

4、规划好作为邮件服务器的域名,演示用 mail.bozai.us,把该域名解析到 VPS IP。

搭建 iRedMail 邮件服务器

设置 VPS 以及系统

更新系统、安装组件

yum update -yyum install wget curl sudo tar socat bind-utils -y

设置 VPS 主机名

我们规划邮局的域名为 mail.bozai.us ,所以,我们需要对 VPS 的主机名进行设置。

首先,需要编辑 /etc/hosts 文件,找到含有你的 VPS IP 地址的那一行;如果没有,则添加一行。内容如下:

127.0.0.1 mail.bozai.us mail

其中, 127.0.0.1 可换为你的服务器 IP 地址,后面依次填入长主机名和短主机名,切记不可填反。

然后,我们找到 VPS 的 /etc/hostname 文件,编辑里面的内容为 mail (域名的前缀)

这样,就设置好了主机名。重启 VPS( 搬瓦工 用户进行到这步,第一次重启请去后台强制重启)。

此时我们检查一下是否设置正确:

执行:hostname

此时我们应该只能看到短主机名 mail. 如果你看到了长主机名 mail.bozai.us , 说明之前设置错误,请重新检查上述步骤。

执行:hostname -f

此时,我们应该只能看到长主机名 mail.bozai.us

这样,我们就全部设置好了主机名(hostname), 可以进行接下来的其他操作了

下载并安装 iRedMail

作者写这篇博文的时候,iRedMail 的最新版为 1.4.2,若是版本进行了更新,请大家自行修改下面命令中的版本号。

iRedMail 最新版下载:点击查看最新版

wget https://github.com/iredmail/iRedMail/archive/1.4.2.tar.gz -O /root/iRedMail.tar.gztar -xf iRedMail.tar.gzcd iRedMail-1.4.2bash iRedMail.sh

按照以下图片的提示进行安装

设置安装目录

选择 web服务器

选择数据库类型

设置数据库密码

设置域,不可与 hostname 相同

设置管理员账号、密码

选择需要安装的组件

根据系统提示,一路输入 y 回车

重启服务器,让邮件服务器生效! 至此,邮件服务器搭建完毕,以下开始设置邮件服务器。

可以通过访问(当然,我们目前还没有解析域名,后面一起解析)https://你的域名/mail        ——邮件登录地址https://你的域名/netdata     ——服务器状态监控https://你的域名/iredadmin   ——邮件服务器后台管理 管理员账号:postmaster@你的域  例如 postmaster@163.com管理员密码:安装时候设置的密码以上信息,可以在 /root/iRedMail-1.4.2/iRedMail.tips 文件中查看

配置 iRedMail 邮件服务器

在申请证书之前,请完成 邮件服务器域名 的相关解析,我们规划的邮件服务器地址为 mail.bozai.us ,所以,申请证书之前,需要对把该域名指向 VPS IP。

申请证书

以下是 ACME 脚本申请证书

(后续自己把证书移动、覆盖到 /etc/pki/tls/private/iRedMail.key 以及 /etc/pki/tls/certs/iRedMail.crt )

为我们计划的邮件服务器域名 mail.bozai.us 申请证书,请自行替换命令行中的域名

curl https://get.acme.sh | sh~/.acme.sh/acme.sh --register-account -m xxxx@xxxx.com~/.acme.sh/acme.sh  --issue  -d mail.bozai.us  --webroot  /var/www/html~/.acme.sh/acme.sh --installcert -d mail.bozai.us --key-file /etc/pki/tls/private/iRedMail.key --fullchain-file /etc/pki/tls/certs/iRedMail.crt

重载服务

service postfix reload;service dovecot reload;service nginx reload

禁用 iRedMail 灰名单

找到 VPS 文件,/opt/iredapd/settings.py

plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]

将其中的 ”greylisting ” 这项删去即可(注意对齐格式,不会请看 演示视频)

然后,重启 iredapd

service iredapd restart

配置域名 DNS 及解析

设置 PTR 反向解析

其他 VPS 商家,请自行查阅,搬瓦工VPS 打开后台管理,在左边选项 Mail contrlos 里面,找到右边的 PTR Records (Reverse DNS),点击 set new record 设置即可。

检测方式:nslookup 8.8.8.8(服务器IP)

设置 A 记录

将 mail.bozai.us 的 A 记录指向你的 VPS 服务器(邮件服务器)

检测方式:nslookup mail.bozai.us

设置 MX 记录

MX 记录就是邮件的解析记录,非常重要的一条记录,配置根域名的 MX 记录为自己的邮件域名地址,优先级为 10

检测方式:nslookup -type=mx bozai.me

设置 SPF 记录

SPF 记录是为了防止垃圾邮件而设定的,告知收件方,从设置的允许列表中发出的邮件都是合法的,设置方式为添加一条根域名的 TXT 解析记录

内容为 v=spf1 mx ~all

检测方式:nslookup -type=txt bozai.us

设置 DKIM记录

DKIM 可说是避免被判定为垃圾邮件的一大利器,DKIM 属于一种类似加密签名的解析记录,只有包含此加密数据,且公钥与密钥相匹配才属于合法邮件,要设置 DKIM 记录,首先要查询 DKIM 信息。

查询DKIM 信息有两种方式:

第一种:在系统中执行命令查看:amavisd showkeys

若是出现报错:Config file "/etc/amavisd.conf" does not exist, at /usr/sbin/amavisd line

修改 /usr/sbin/amavisd 文件

搜索 config_files = ( '

把括号里面的路径改为 ‘/etc/amavisd/amavisd.conf’

第二种:直接查看 /root/iRedMail-1.4.2/iRedMail.tips 文件,里面有相应的 DKIM

将括号内的文本 去除引号以及空格并相连 就是咱们的 DKIM 数据,在解析中添加一条 dkim._domainkey 的 TXT 解析,内容就是咱们组合出的文本

测试方式:nslookup -type=txt dkim._domainkey.bozai.us

设置 DMARC 记录

DMARC 记录是当收件方检测到伪造邮件等行为时,将根据您的配置进行操作的一个记录,比如拒绝邮件或放入垃圾邮件以及不做处理等,同时会反馈一份检测报告到配置的邮箱地址内。

添加方法就是增加一条 _dmarc 的 TXT 解析,内容为配置选项,v=DMARC1; p=none; pct=100; rua=mailto:dmarc@bozai.us

检测方式:nslookup -type=txt _dmarc.bozai.us

添加 iRedMail 用户

当然,你可以直接使用刚才系统创建的系统管理员邮箱,我们另外也可以增加邮箱用户

登录前,选择你的网页语言,其他就很简单了,如下图

测试 iRedMail 邮件服务器

登录你的邮件服务器,里面的三封邮件是系统发过来的。

尝试用该邮件发送以及接收其他邮件的邮件,若是严格按照上面来配置,应该是一点问题都没有。

最后,我们访问 https://www.mail-tester.com/

按照网页上面给出的邮箱地址,我们用刚才搭建好的邮件服务器给这个地址发送一封邮件,然后点击测试。

记住,该测试,每 24小时 ,只允许同个域测试三次,所以需要测试还是需要谨慎发邮件,别发垃圾!

用刚才创建的用户,给 GMAIL 发一封邮件试试。

如果你是需要用其他客户端软件来收取或是发送邮件,端口列表在这里:

协议地址端口&加密端口
IAMP邮箱域名143,993
POP3邮箱域名110,995
SMTP邮箱域名25,587

我这边用的 “网易邮件大师”,可以完美的收发邮件,客户端如下配置:

收发邮件完美!

systemd-resolve占用53端口的解决方法

1、先停用 systemd-resolved 服务

systemctl stop systemd-resolved

2、编辑 /etc/systemd/resolved.conf 文件

vi /etc/systemd/resolved.conf

3、换下面说明更改,然后按一下“esc”键,再输入“:wq”(不要输入引号),回车保存即可。

[Resolve]
DNS=8.8.8.8  #取消注释,增加dns
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
DNSStubListener=no  #取消注释,把yes改为no

4、最后运行下面命令即可。

ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

VPS搭建DNS服务器

安装dnsmaq

以 centos 7 为例,直接执行如下命令:

yum -y install dnsmasq配置

1.配置文件在 /etc/dnsmasq.conf,我们要让它能用起来需要做如下配置:

#指定上游dns服务器

resolv-file=/etc/resolv.dnsmasq.conf

#表示严格按照 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止

strict-order

# 开启后会寻找本地的hosts文件在去寻找缓存的域名,最后到上游dns查找

#no-resolv

listen-address=0.0.0.0 #0.0.0.0 设置为公网IP

conf-dir=/etc/dnsmasq.d # 我们的解析记录都写到这个目录下

2.创建 /etc/resolv.dnsmasq.conf,然后添加:

# cat /etc/resolv.dnsmasq.conf

nameserver 119.29.29.29

nameserver 114.114.114.114

nameserver 8.8.8.8

nameserver 168.95.1.1

3.然后 /etc/dnsmasq.conf中创建规则,如:

address=/baidu.com/127.0.0.1 #将百度的域名解析到127.0.0.1

address=/ad.youku.com/127.0.0.1 # 禁止优酷广告

address=/ad.iqiyi.com/127.0.0.1 # 禁止iqiyi广告

格式是:

address=/domain.com/dns

比如上面的百度,我就把它都解析到127.0.0.1。

dns服务器架设教程

实现DNS分流

可以在/etc/dnsmasq.conf 创建规则:

server=/cn/114.114.114.114 # cn的域名都走114的dns

server=/google.com/115.159.220.214 # 将谷歌的解析都走115.159.220.214

上面的是将所有cn结尾的域名都走114解析,下面是将google.com 走115.159.220.214解析。

启动dnsmaq:

service dnsmasq start

设置为开机自启动。

# systemctl enable dnsmasq

Created symlink from /etc/systemd/system/multi-user.target.wants/dnsmasq.service to /usr/lib/systemd/system/dnsmasq.service.

ubuntu使用前准备

更新系统:
yum update -y #CentOS系统命令
apt update -y #Debian系统命令
———ubuntu系统—–
启动bbr
sudo bash -c ‘echo “net.core.default_qdisc=fq” >> /etc/sysctl.conf’
sudo bash -c ‘echo “net.ipv4.tcp_congestion_control=bbr” >> /etc/sysctl.conf’
sysctl -p

查看bbr是否开启成功
lsmod | grep bbr

开放端口
开放所有端口
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
关闭防火墙
apt-get purge netfilter-persistent
reboot
————–centos系统————
关闭防火墙
systemctl stop firewalld.service && systemctl disable firewalld.service
开启bbr
echo “net.core.default_qdisc=fq” >> /etc/sysctl.conf
echo “net.ipv4.tcp_congestion_control=bbr” >> /etc/sysctl.conf
sysctl -p
sysctl -n net.ipv4.tcp_congestion_control
查看bbr是否开启成功
lsmod | grep bbr