分类目录归档:Linux 服务器

想知道把MYSQL5.7切换成8.0的标准步骤

您好,升级步骤如下
1、先为您的数据库备份,备份的时候要确保没有数据写入,然后把备份好的数据库下载到本地或者其它服务器上,防止数据丢失,有条件的可直接对服务器做磁盘快照,这里是备份好数据再停止数据库,因为面板上的备份是使用mysqldump命令备份,需要数据库在运行
2、备份好数据之后,停止数据库,稍等几分钟再卸载
3、安装8.0版本的MYSQL
4、操作完毕后在宝塔左侧数据库菜单内添加新的空数据库、然后导入先前备份的数据库
这样就可以升级成功了,不过要确保您mysql5.7中的数据在mysql8中也是兼容的,有时候两个版本之间的数据结构等还是有点差异,您事先可以用个测试机器安装mysql8,再导入mysql5.7的数据,看看是否能兼容。您在面板上升级好mysql8之后,导入数据,如果数据导入不全或者失败,先恢复到mysql5.7,然后测试好之后再升级

建议在您深夜等访客较少的时候升级。
升级过程中会重启数据库、如数据库原本存在表损坏等情况的话,
将会导致重启失败甚至数据丢失、务必做好数据库备份校验数据完整性后再进行升级。
如果您做了备份还不放心,建议您前往服务器商家控制台做个服务器快照,可随时回滚。

Linux 禁用 root 登录,并创建新的管理员账户

最近在折腾玩客云,刷了一个Armbian Linux系统,顺手将 root 远程登录也给禁用了,这里记录一下方法。

创建新管理账户
创建账户

useradd -m admin

设置密码

passwd admin

添加到系统管理员组

#CentOS/RHEL
usermod -aG wheel admin

#Debian/Ubuntu
usermod -aG sudo admin

禁用root账户
禁用 root 有很多中方式,这里简单列两种

1.修改 root 用户的登陆 Shell
vim /etc/passwd

找到 root 那一行,将末尾的/bin/bash 改为 /sbin/nologin。

比如

root:x:0:0:root:/root:/bin/bash

改为

root:x:0:0:root:/root:/sbin/nologin

此方法可以禁止 root 用户通过 shell 登录,即禁止 root 用户 ssh 远程登录和通过普通用户切换到 root 用户。

此后, root 用户登陆,会显示一条信息 “This account is currently not available” 。

这是默认消息,但是,你可以更改它并在文件中设置自定义消息 /etc/nologin.txt。

2.禁止 root 用户通过 ssh 登陆
编辑 sshd_config 将 PermitRootLogin 改为 no,如果是 PermitRootLogin 是注释状态,取消注释,然后将其设置为 no,如果不存在直接新增一条即可。

vim /etc/ssh/sshd_config

如:

PermitRootLogin no

然后重启 SSHD 服务让配置生效

systemctl restart sshd

此方法仅禁止用户通过 ssh 登录, 但仍可以使用普通用户切换到 root。

mysql数据库导入1115 – Unknown character set: ‘utf8mb4’

在进行phpmyadmin数据库备份恢复的时候,出现 #1115 – Unknown character set: ‘utf8mb4’ 的错误提示。

具体原因一般是高版本的数据库备份文件向低版本的数据库导入, 低版本的数据库中没有utf8mb4字符集,导致出错。

解决方法也很简单,除了升级当前数据库版本之外, 只需要将备份sql文件中的utf8mb4替换成utf8即可,保存后重新导入。

国外VPS服务器之LinuxMirrors一键脚本更换源,新手菜鸟也会用

脚本部署

1)一键更换国内软件源脚本(请通过 SSH客户端工具 使用)

bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh)

 

注意:

  • Debian 系 Linux 默认注释了源码仓库和预发布软件源,若需启用可将 list 源文件中相关内容的所在行 取消注释
  • RedHat 系 Linux 配置了所有可以配置的仓库,但有一些仓库默认没有启用,若需启用可将 repo 源文件中的 enabled=0修改成 enabled=1

2)安装过程,可以选择自己喜欢的源!

 

Docker 一键安装脚本

Docker 一键安装脚本如下:

bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)

 

Docker CE:Docker Community Edition 镜像仓库,用于下载并安装 Docker 相关软件包。

Docker Hub:Docker Hub 镜像仓库,默认为官方提供的公共库,用于切换下载镜像时的来源仓库,简称镜像加速器。

注意:脚本集成安装 Docker Engine与 Docker Compose,可手动选择安装版本和下载源,还可手动选择镜像加速器,支持国内外服务器环境和 ARM架构处理器环境使用。

2)安装截图

BT宝塔Nginx设置只允许域名访问禁止IP访问 SSL同步设置防源站泄漏

对于用BT宝塔的小伙伴,很多时候建站基本程序都是用NGINX,用的没啥问题,但是大家有没有发现,如果你直接在地址栏上输入IP去访问的话,一般默认会返回一个BT宝塔的默认页面。如果你前面再加上https的话,那么估计就会看到你的网站了。因为宝塔默认没有禁止别人通过IP访问,因此很容易被扫描器扫描到,加上NGINX的通过IP访问HTTPS的话,会自动匹配第一个站点的SSL证书给IP使用,因此会造成IP泄露(证书带域名信息,网上有扫描全网IP并读取SSL证书中域名信息的方法)

那么,怎么设置BT宝塔Nginx设置只允许域名访问,禁止IP访问呢?特别涉及到HTTPS的话,这个源站IP如何防止泄漏呢?虾皮路也捣鼓了一下,分享一下过程。

为了安全起见,接下来需要做两个事情。

1、给IP配置上一张带错误域名的证书,防止泄露你自己的域名

2、禁止直接访问IP,将访问IP的请求,不管是HTTP还是HTTPS全部转错误页  返回状态码444 ERR_EMPTY_RESPONSE

两步其实可以合并成下面步骤操作:

1、在BT宝塔面版上新建站点

首先在宝塔中创建一个默认站点,这里域名随意填写,只要不是你的域名就行。

这里我们可以输入一个 default.com ,或者你也可以输入123.com、456.com等等

BT宝塔Nginx设置只允许域名访问禁止IP访问 SSL同步设置防源站泄漏插图

2、修改默认站点

我们需要将默认的站点改为default.com

BT宝塔Nginx设置只允许域名访问禁止IP访问 SSL同步设置防源站泄漏插图1

3、给默认站点设置证书

给IP配置上一张带错误域名的证书,我们这里利用了CLOUDFLARE来作为错误证书颁发源,利用CF 接入域名,可以颁发15年的仅CF CDN网络体系承认的证书的功能。

大家可以使用我们已经生成的这张证书,反正只要域名不是你真实的域名就行了,提供如下。

公共证书(PEM格式)

-----BEGIN CERTIFICATE-----
MIIDITCCAsagAwIBAgIUTcEWLzynkLCFCoAC1iDH2vG3EkYwCgYIKoZIzj0EAwIw
gY8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMTgwNgYDVQQL
Ey9DbG91ZEZsYXJlIE9yaWdpbiBTU0wgRUNDIENlcnRpZmljYXRlIEF1dGhvcml0
eTAeFw0xOTAxMTMxNDMxMDBaFw0zNDAxMDkxNDMxMDBaMGIxGTAXBgNVBAoTEENs
b3VkRmxhcmUsIEluYy4xHTAbBgNVBAsTFENsb3VkRmxhcmUgT3JpZ2luIENBMSYw
JAYDVQQDEx1DbG91ZEZsYXJlIE9yaWdpbiBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49
AgEGCCqGSM49AwEHA0IABAg/hZ9lDHj/f+0jDRAN23TkNEqIi46mCGnwZVD3glxL
l+a1mpfXLHSEFTipnSyQgmvkPYzQGaEIFD0q6W/ZgMujggEqMIIBJjAOBgNVHQ8B
Af8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFCEZF6Eyem01XPbgwr6DXLZV1qsQMB8GA1UdIwQYMBaA
FIUwXTsqcNTt1ZJnB/3rObQaDjinMEQGCCsGAQUFBwEBBDgwNjA0BggrBgEFBQcw
AYYoaHR0cDovL29jc3AuY2xvdWRmbGFyZS5jb20vb3JpZ2luX2VjY19jYTAjBgNV
HREEHDAaggwqLmRuc3BvZC5jb22CCmRuc3BvZC5jb20wPAYDVR0fBDUwMzAxoC+g
LYYraHR0cDovL2NybC5jbG91ZGZsYXJlLmNvbS9vcmlnaW5fZWNjX2NhLmNybDAK
BggqhkjOPQQDAgNJADBGAiEAnrequCk/QZOOrcPH6C3Hgcy4SPNUy5rQtku/aYkj
qQoCIQCN6IyYNiXuwG+8jUgJrveiirBjiz2jXZSTEfVAyibjTg==
-----END CERTIFICATE-----

密钥(KEY)

-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgK0HE3hTJQDg6p/fj
nS92eSuRKZEZ5F4grT6tWFKNYVmhRANCAAQIP4WfZQx4/3/tIw0QDdt05DRKiIuO
pghp8GVQ94JcS5fmtZqX1yx0hBU4qZ0skIJr5D2M0BmhCBQ9Kulv2YDL
-----END PRIVATE KEY-----

把以上两个证书直接复制到默认站点的ssl选项中的其他证书里面,注意不要搞反了。

BT宝塔Nginx设置只允许域名访问禁止IP访问 SSL同步设置防源站泄漏插图2

4、修改站点配置

以上操作完成后,修改默认站点的配置文件

在后面新增一个返回代码:

return 444;

如下图示意

BT宝塔Nginx设置只允许域名访问禁止IP访问 SSL同步设置防源站泄漏插图3

这个时候,无论是通过http://IP访问,还是通过https://IP访问,都将返回无法访问的页面。如果用网上的漏洞扫描程序,扫到的这个IP的证书就是dnspod的了,这样你的IP就不会泄露。

Nginx之负载均衡 :两台服务器均衡(填坑)

第一步,两台服务器都要安装好Nginx和Tomcat,我这边的安装的是Nginx 1.16.1 Tomcat9;

第二步,安装完成之后,选择你要做均衡的那台服务器,,打开其Nginx 配置文件,在server代码块上面添加代码;

    #增加upstream代码块
upstream mydemo{
server 47.106.113.206:8080;
server 212.60.5.234:8080;
ip_hash;
}
server{
listen 80;
server_name localhost;
index index.html index.htm index.php;
root /www/server/phpmyadmin;
location / {
#重点在下面
proxy_pass http://mydemo;
}

第三步,测试

在每个服务器的Tomcat-WebApps的文件夹中,新建一个demo文件夹,然后新建文件index.html,可以把每个服务器的ip地址写上去,能区分出服务器的不同即可。

第四部,测试成功

第五步,填坑

如果你的服务器部署了宝塔面板,那么你可能遇到设置完成之后,怎么刷新都无法成功的情况。

在宝塔面板打开Nginx的配置文件,你会在最下面发现这样一行代码:#include /www/server/panel/vhost/nginx/*.conf;

这行代码是在网站设置的时候出现的,注释掉之后就可以成功负载均衡了,不注释能不能解决呢,我想是可以的,目前还在探索,有大佬能告知我一下也是非常感谢的。

必看!必看!必看!解决登录阿里云官网显示:您的登录IP不在管理员配置的登录掩码范围内相关问题

有的朋友在租了阿里云的服务器ESC,在进行一系列的操作以后再次登录阿里云官网会显示如下界面:

在网上搜索了很多文章,发现最后还是不能成功登录,就在脑袋昏昏沉沉、苦于无奈的时候,突然看到这篇文章,您放心,解决问题的步骤我都帮您树梳理好了,跟着步骤来操作,问题迎刃而解。
原因分析:
无法登录是因为你在之前的操作中不小心输入了登录掩码,所以是登录掩码在作怪。
解决方案:
1.下载阿里云客户端APP(在阿里云官方网站底部)

我给大家把二维码粘出来了,可直接扫码下载,也可以在手机上的应用商店里面下载(如应用宝等)

2.app下载完成,输入账号+密码,登录成功(app中登录不需要掩码登录)

3.在阿里云APP首页中搜索:登录掩码

4.点击搜索出来的第一个相关文档:为云账号设置登录掩码

5.点击操作步骤中的第一项:云账号登录阿里云控制台

6.点击app右上角头像处(头像有点小,但可以点击)

7.点击倒数第二项,登录掩码中的修改(全部删除,保留为空白,点击保存)

8.这个时候我们再次来到PC端登录阿里云官网,输入账号和密码,显示如下界面,登录成功

————————————————