给博客海外解析分流到了阿里(没有备案国内不通),目前看起来还不错。

Linux运维笔记

| 联通 | 移动 | 电信 |
|---|---|---|
| 61.182.138.156 | 111.62.229.100 | 27.185.242.215 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 60.221.18.41 | 183.201.244.91 | 1.71.157.41 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 218.61.211.132 | 36.131.156.145 | 123.184.58.41 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 122.143.8.41 | 111.27.127.176 | 123.172.127.217 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 113.7.211.140 | 111.42.190.25 | 42.101.84.132 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 122.96.235.165 | 36.156.92.132 | 58.215.210.220 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 101.69.194.224 | 117.147.213.41 | 115.220.14.91 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 112.132.208.41 | 112.29.198.100 | 223.247.108.251 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 36.248.48.139 | 112.50.96.88 | 106.126.10.28 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 116.153.69.224 | 117.168.150.249 | 106.227.22.132 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 112.240.56.143 | 120.220.145.91 | 144.123.160.140 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 123.6.65.101 | 111.7.99.220 | 171.15.110.220 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 122.189.226.138 | 111.47.131.101 | 111.170.8.60 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 116.162.28.220 | 120.226.192.91 | 113.240.117.108 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 112.90.211.100 | 183.240.65.191 | 183.36.23.111 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 153.0.226.35 | 111.29.29.219 | 124.225.43.220 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 101.206.163.49 | 183.220.151.41 | 118.123.218.220 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 117.187.254.132 | 61.243.18.220 | 58.42.61.132 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 14.204.150.41 | 36.147.44.219 | 222.221.102.220 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 123.139.127.132 | 111.19.148.100 | 124.115.14.100 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 59.81.94.53 | 117.157.16.41 | 118.182.228.91 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 116.177.237.137 | 111.12.152.170 | 223.221.216.219 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 116.114.98.41 | 117.161.76.41 | 110.76.186.70 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 171.39.5.51 | 36.136.112.41 | 222.217.93.55 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 43.242.165.35 | 117.180.234.41 | 113.62.176.89 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 116.129.226.28 | 111.51.155.214 | 222.75.44.220 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 116.178.77.40 | 36.189.208.164 | 110.157.243.45 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 202.108.29.159 | 222.35.73.1 | 220.181.173.35 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 116.78.119.56 | 111.31.236.35 | 42.81.98.35 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 59.81.65.42 | 183.194.219.220 | 101.227.191.14 |
| 联通 | 移动 | 电信 |
|---|---|---|
| 113.207.69.190 | 221.178.81.101 | 119.84.131.101 |
作者:木子欢儿
出处:https://www.cnblogs.com/HGNET/p/18321585
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
部分文章来源于网络,如疏漏未标注原文地址或侵权,请联系进行删除。

将SQL语句中的CHARSET=utf8mb4 替换为 CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
如果想设置数据库默认字符集,可以在my.cnf进行配置
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

场景:arm架构下,mysql只支持8.0 ,mysql5.7不支持,采用docker镜像模式安装
docker pull biarms/mysql:5.7.30-linux-arm64v8 #支持arm架构的mysql 5.7镜像包
docker pull biarms/mysql:5.7.30-linux-arm64v8
mkdir -p /data/mysql/{conf,data,logs}
[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
# 关闭二进制日志
skip-log-bin
#mysql5.7以后的不兼容问题处理
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
default-time_zone='+8:00'
[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
docker run -p 3306:3306 --name mysql5.7 \
-v ./data/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-v ./data/mysql/logs:/var/log/mysql \
-v ./data/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d biarms/mysql:5.7.30-linux-arm64v8
-p 3306:3306 容器内部端口和服务器端口映射关联
–privileged=true 设置mysql用户,否则外部不能使用root用户登录
-v /data/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf 服务器的
/data/mysql/conf/my.cnf配置映射到docker的my.cnf
-v /data/mysql/data:/var/lib/mysql 映射数据库的数据目录,避免docker删除重新运行mysql容器,导致数据丢失
-e MYSQL_ROOT_PASSWORD=123456 设置root账号的密码
–name mysql mysql:5.7 从docker镜像mysql:5.7启动一个容器,并设置容器的名称为mysql
–character-set-server=utf8mb4 –collation-server=utf8mb4_general_ci 设置数据库默认编码
原文链接:https://blog.csdn.net/qsm44593342/article/details/132775772

1.创建my.cnf文件
# 删除旧的 my.cnf 文件(如果存在)
rm -f my.cnf
# 创建新的 my.cnf 文件并写入内容
echo -e "[mysqld]\nskip-log-bin" > my.cnf
# 确保文件权限正确
chmod 644 my.cnf
2.将my.cnf映射出来
services:
mysql:
image: mysql
container_name: mysql
restart: always
ports:
- "3306:3306"
volumes:
- ./mysql:/var/lib/mysql
- ./my.cnf:/etc/mysql/my.cnf
environment:
MYSQL_ROOT_PASSWORD: xxxxxxx
MYSQL_USER: xiaogang
MYSQL_PASSWORD: xxxxxxx
3.重新启动docker容器
docker-compose down
docker-compose up -d
4.进入容器验证
docker exec -it mysql mysql -u root -p
然后输入密码进入mysql中
5.验证
SHOW BINARY LOGS;
#结果:ERROR 1381 (HY000): You are not using binary logging
SHOW VARIABLES LIKE 'log_bin';
#结果:OFF

# 删除旧的 my.cnf 文件(如果存在)
rm -f my.cnf
# 创建新的 my.cnf 文件并写入内容
echo -e "[mysqld]\nskip-log-bin" > my.cnf
# 确保文件权限正确
chmod 644 my.cnf
version: '3'
services:
mysql:
image: mysql
container_name: mysql
restart: always
ports:
- "3306:3306"
volumes:
- ./mysql:/var/lib/mysql
- ./my.cnf:/etc/mysql/my.cnf
environment:
MYSQL_ROOT_PASSWORD: root密码
MYSQL_USER: xiaogang
MYSQL_PASSWORD: 用户密码
redis:
image: redis:alpine
container_name: redis
restart: always
ports:
- "6379:6379"
volumes:
- ./redis:/data
phpmyadmin:
image: phpmyadmin:latest
container_name: myadmin
restart: always
ports:
- "13306:80"
environment:
PMA_ARBITRARY: 1
docker-compse up -d

Screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。
除部分精简的系统或者定制的系统大部分都安装了screen命令,如果没有安装,CentOS系统可以执行:yum install screen ;
CentOS 8上移除了screen,需要安装epel后安装screen执行:yum install screen ;
Debian/Ubuntu系统执行:apt-get install screen 。
可以先执行:screen -S lnmp ,screen就会创建一个名字为lnmp的会话。 VPS侦探 https://www.vpser.net/
当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d)
当回来时可以再执行执行:screen -r lnmp 即可恢复到离开前创建的lnmp会话的工作界面。如果忘记了,或者当时没有指定会话名,可以执行:screen -ls screen会列出当前存在的会话列表,如下图:
11791.lnmp即为刚才的screen创建的lnmp会话,目前已经暂时退出了lnmp会话,所以状态为Detached,当使用screen -r lnmp后状态就会变为Attached,11791是这个screen的会话的进程ID,恢复会话时也可以使用:screen -r 11791
执行:exit ,会提示:[screen is terminating],表示已经成功退出screen会话。VPS侦探 https://www.vpser.net/
首先演示者先在服务器上执行 screen -S test 创建一个screen会话,观众可以链接到远程服务器上执行screen -x test 观众屏幕上就会出现和演示者同步。
Ctrl+a c :在当前screen会话中创建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一个窗口
Ctrl+a p :上一个窗口
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换

x-ui是一个搭建节点的工具,有一键安装脚本,可以快速的部署。但是如果我们经济有限的话,这个服务器不仅要有x-ui还要有自己搭建的网站。这就得用我的这种搭建过程了。
首先要将宝塔安装上,这就不用多说了,自己去网站找到适合自己系统的安装脚本就Ok了。
新建一个静态站点并且为网站配置ssl,这个域名是为了以后x-ui面板伪装配置的。
这里直接一键脚本安装,没什么难度
bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)
location ^~ /main/ { #(修改为你的xui管理面板路径)
proxy_pass http://127.0.0.1:54321/HJgj/; #(修改为你的xui管理面板端口和路径)
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /jgvgk { #(修改为你的ws传输协议路径)
proxy_redirect off;
proxy_pass http://127.0.0.1:12896; #(修改为你的协议端口)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 300s;
# Show realip in v2ray access.log
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
设置完就可以通过域名:端口号\main\访问了。

BBR 是 Google 提出的一种新型拥塞控制算法,可以使 Linux 服务器显著地提高吞吐量和减少 TCP 连接的延迟。
BBR解决了两个问题:
互联网曾广泛使用基于丢包的拥塞控制算法,例如 Reno(Jac88,Jac90,WS95 ,RFC5681)和 CUBIC(HRX08,draft-ietf-tcpm-cubic),这类算法认为丢包和拥塞是等效的。长久以来这类算法都运作的很好,但这并不能说明他们是绝对正确的,这种良好的表现是由于网络交换机和路由器的缓冲区都十分适配当时的网络带宽。而一旦发送者的发送速率足够快,缓冲区便会被快速填满,进而引发丢包。
实际上丢包并不等效于拥塞。拥塞可以被看作是一种在网络路径中,传输中的数据量始终大于带宽-时延积的场景。随着互联网的不断发展,丢包现象在非拥塞场景下也频繁发生。而基于丢包的拥塞控制策略给网络带来了源源不断的问题:
BBR拥塞控制算法使用了另类的方式,不用丢包去衡量拥塞是否发生,而是直接对网络建模来避免以及应对真实的拥塞(它使用网络测量来估计带宽和丢包率。它计算可以通过网络发送数据而不会导致拥塞或数据包丢失的最大速率。BBR 通过跟踪网络的往返时间 (RTT) 和在任何给定时间传输的数据量来实现这一点)。
BBR 可以通过减少数据包丢失和增加吞吐量来显著提高网络的速度和可靠性,BBR 非常适合需要高吞吐量和低延迟的应用程序。
在 Debian 上启用 BBR 是一个非常简单的过程,我们仅需几步即可,建议使用 Debian 的伙伴都启用以下 BBR。
本教程基于 Debian12,理论上 Debian10、11也同样适用,其他版本的 Debian 需要自行判断。
我们先来输入如下命令检查一下你运行的系统是否支持 BBR,输入后如果界面没有任何输出则表示你的系统当前支持 BBR,如显示其它错误信息则表示不支持,理论上来说内核版本高于4.9就支持使用 BBR,如果低于4.9可以自行升级内核版本。
sudo modprobe tcp_bbr
如果你的系统支持 BBR,可以输入以下命令来查看当前是否已经启用了 BBR。
sudo sysctl net.ipv4.tcp_congestion_control
如果已经启用,界面会输出如下提示,无输出则表示未启用。
net.ipv4.tcp_congestion_control = bbr
如果未启用且支持 BBR,请输入如下命令,下面的命令会将默认排队规则设置为 fq 并启用 BBR 作为拥塞控制算法。
sudo sh -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf' sudo sh -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'
接着输入以下命令使其保存并生效。
sudo sysctl -p
至此,Debian 已经启用 BBR,为验证 BBR 是否启用成功,我们可以使用下面的验证命令。
sudo sysctl net.ipv4.tcp_congestion_control
或者
lsmod | grep bbr
界面输出下面几种提示皆表示已启用 BBR。
net.ipv4.tcp_congestion_control = bbr net.ipv4.tcp_available_congestion_control = bbr cubic reno net.ipv4.tcp_available_congestion_control = reno cubic bbr tcp_bbr 20480 1
编辑 /etc/sysctl.conf 文件,将 net.core.default_qdisc = fq 以及 net.ipv4.tcp_congestion_control = bbr 这两行使用 # 号注释掉,然后执行如下命令。
sudo sysctl -p
最后重启一下服务器。

iperf3是测速、打流用的一款软件,可以测两点之间的网速,测试本地网卡的带宽,等等,有的朋友可能也用过,不多说了。
debian系统可以直接使用apt进行安装
apt install iperf3
我这里是Mac系统,直接使用brew进行安装,如果没有安装brew先安装
安装brew后运行brew install iperf3安装
iperf3 -s
iperf3 -c x.x.x.x -t 30 -P 10 -R
-c:指定地址
-t:测试多少秒,不加-t参数默认10秒
-P:指定线程数(数值越大越接近真实带宽)
-R:测试下载,不加-R参数是测试上传