博客一直放在我认为是传家宝的USD20.21/年的RN3C5G60G的服务器上,后续因为业务拓展又分别购买了3台Naranja的12o、18o、30o。
突然的一次私聊有位朋友要买我的RN,刚好手里服务器也冗余,就出售了。
把业务都迁移到了12o的1c1g30g的Naranja,发现,我的小鸡远比我想象的要能打。非常稳定运行。看了还得杀点鸡,充分利用手里的才是好的。

博客一直放在我认为是传家宝的USD20.21/年的RN3C5G60G的服务器上,后续因为业务拓展又分别购买了3台Naranja的12o、18o、30o。
突然的一次私聊有位朋友要买我的RN,刚好手里服务器也冗余,就出售了。
把业务都迁移到了12o的1c1g30g的Naranja,发现,我的小鸡远比我想象的要能打。非常稳定运行。看了还得杀点鸡,充分利用手里的才是好的。

从小到大一直保持和家人一起看春晚的习惯,近几年感觉越来越辣鸡,我也一直边看边叨逼叨,但是今年的有点出乎意料,除了相声小品好像故意控制了时长有点短,其他的节目感觉都不错。
不像往年和今年元旦晚会那样,动不动就让我感谢这个感恩那个拿着高薪做好本职工作的人。
忙碌一年了,和家人齐聚一堂一起开开心心吃吃喝喝,包包饺子,放一放烟花,春晚看看节目,不想有那么多的负担。
研究登月的老爷爷,给孩子们说了句你们要带着旗去更远的地方,直接接节目玉盘,好评!
华为的广告,也是只安排了一圈汽车做了一场和节目呼应的灯光秀,没说什么遥遥领先,甚至广告都没说一句,好评!
机器人接地气的扭了个秧歌,春晚也没说科技进步什么的,真正厉害了不用说,直接扭个秧歌就什么都证明了,好评!
歌曲《我愿意》直接唱出了当代牛马熬夜加班PPT,不像往年演一些假大空比如什么生产工人巴拉巴拉的,也没照相馆催促年轻人结婚,好评!
尤其是戏曲类感觉今年非常亮眼,小时候看到戏曲就很不喜欢,甚至到唱戏就趁机去躺厕所,如果戏曲完了接个小品相声还得赶紧解决跑回来看,今年从一个白蛇小品展示了好几种曲种的演绎方式,一点儿不觉得枯燥。
和家人一起做了很多好吃的和平时没吃的菜,然后还邀请了邻居一起来吃年夜饭,一起跑出去放烟花,出去小区就被帽子叔叔撵回来了,然后小区里偷着放了一个,放完就跑回家包饺子看春晚,非常开开心的过了个有年味的年。
希望新的一年,一切都好,呀吼!
蛇年,俺来啦!!!

事情起源于,购买了一台bytevirt家的5.5刀SG NAT用于观看Netflix,遇到时解锁时不解锁问题。
使用测试脚本来看看,是解锁的。

难道是因为出口没有走V4?接下来我们设置V4优先

还是不解锁,同时看了shadowrocket代理记录指向的是ipv6前缀的Netflix节点。

好奇怪,为啥v4优先还是走的v6?我们设置dns只保留8.8.8.8

奇怪,还是走的V6,难道要设置xray的出口?
搜索后在ns的一个帖子中看到了设置方法

把这一行放进来看看。
"domainStrategy": "UseIPv4"


哇咔咔咔,困扰我很久的问题,终于解决啦,可以愉快的看电视了!!

将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
最后重启一下服务器。