- itbdw/ip-database(一款用来获取IP定位的库)
分类: 技术
其实我也是个程序猿
-
常用Composer库整理
-
用于哪吒探针网络检测的各地区三网IP地址
全国三网IP地址
- 河北
联通 移动 电信 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 国际」许可协议进行许可。
部分文章来源于网络,如疏漏未标注原文地址或侵权,请联系进行删除。
-
mysql8.0下创建表语句生成utf8mb4_general_ci
将SQL语句中的
CHARSET=utf8mb4
替换为CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
如果想设置数据库默认字符集,可以在my.cnf进行配置
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci
-
ARM架构下安装mysql5.7
场景:arm架构下,mysql只支持8.0 ,mysql5.7不支持,采用docker镜像模式安装
docker pull biarms/mysql:5.7.30-linux-arm64v8 #支持arm架构的mysql 5.7镜像包
1、拉取镜像
docker pull biarms/mysql:5.7.30-linux-arm64v8
2、创建mysql容器目录
mkdir -p /data/mysql/{conf,data,logs}
3、新建my.cnf配置文件
[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/
4、运行容器
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
5、说明
-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
-
docker中mysql关闭二进制日志
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
-
docker-compose:mysql+redis+phpmyadmin
创建my.cnf文件
# 删除旧的 my.cnf 文件(如果存在) rm -f my.cnf # 创建新的 my.cnf 文件并写入内容 echo -e "[mysqld]\nskip-log-bin" > my.cnf # 确保文件权限正确 chmod 644 my.cnf
docker-compose.yml文件
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会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。
二、如何安装screen命令?
除部分精简的系统或者定制的系统大部分都安装了screen命令,如果没有安装,CentOS系统可以执行:yum install screen ;
CentOS 8上移除了screen,需要安装epel后安装screen执行:yum install screen ;
Debian/Ubuntu系统执行:apt-get install screen 。
三、screen命令使用方法?
1、常用的使用方法
1.1 创建screen会话
可以先执行:screen -S lnmp ,screen就会创建一个名字为lnmp的会话。 VPS侦探 https://www.vpser.net/
1.2 暂时离开,保留screen会话中的任务或程序
当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d)
1.3 恢复screen会话
当回来时可以再执行执行:screen -r lnmp 即可恢复到离开前创建的lnmp会话的工作界面。如果忘记了,或者当时没有指定会话名,可以执行:screen -ls screen会列出当前存在的会话列表,如下图:
11791.lnmp即为刚才的screen创建的lnmp会话,目前已经暂时退出了lnmp会话,所以状态为Detached,当使用screen -r lnmp后状态就会变为Attached,11791是这个screen的会话的进程ID,恢复会话时也可以使用:screen -r 11791
1.4 关闭screen的会话
执行:exit ,会提示:[screen is terminating],表示已经成功退出screen会话。VPS侦探 https://www.vpser.net/
2、远程演示
首先演示者先在服务器上执行 screen -S test 创建一个screen会话,观众可以链接到远程服务器上执行screen -x test 观众屏幕上就会出现和演示者同步。
3、常用快捷键
Ctrl+a c :在当前screen会话中创建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一个窗口
Ctrl+a p :上一个窗口
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换 -
宝塔和XUI共存方案
x-ui是一个搭建节点的工具,有一键安装脚本,可以快速的部署。但是如果我们经济有限的话,这个服务器不仅要有x-ui还要有自己搭建的网站。这就得用我的这种搭建过程了。
第一步:安装宝塔
首先要将宝塔安装上,这就不用多说了,自己去网站找到适合自己系统的安装脚本就Ok了。
第二步:创建站点
新建一个静态站点并且为网站配置ssl,这个域名是为了以后x-ui面板伪装配置的。
第三步:安装X-UI
这里直接一键脚本安装,没什么难度
bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)
第四步:登录X- UI修改后台目录
第五步:设置宝塔反代
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\访问了。
-
Debian12/11/10,如何启用或关闭 BBR
什么是 BBR
BBR 是 Google 提出的一种新型拥塞控制算法,可以使 Linux 服务器显著地提高吞吐量和减少 TCP 连接的延迟。
BBR解决了两个问题:
- 再有一定丢包率的网络链路上充分利用带宽,非常适合高延迟,高带宽的网络链路。
- 降低网络链路上的 buffer 占用率,从而降低延迟,非常适合慢速接入网络的用户。
互联网曾广泛使用基于丢包的拥塞控制算法,例如 Reno(Jac88,Jac90,WS95 ,RFC5681)和 CUBIC(HRX08,draft-ietf-tcpm-cubic),这类算法认为丢包和拥塞是等效的。长久以来这类算法都运作的很好,但这并不能说明他们是绝对正确的,这种良好的表现是由于网络交换机和路由器的缓冲区都十分适配当时的网络带宽。而一旦发送者的发送速率足够快,缓冲区便会被快速填满,进而引发丢包。
实际上丢包并不等效于拥塞。拥塞可以被看作是一种在网络路径中,传输中的数据量始终大于带宽-时延积的场景。随着互联网的不断发展,丢包现象在非拥塞场景下也频繁发生。而基于丢包的拥塞控制策略给网络带来了源源不断的问题:
- 浅缓存:在浅缓存场景下,丢包往往发生在拥塞之前。高速、长距离的现代网络,搭配上消费级的浅缓存交换机,基于丢包的拥塞控制算法可能会导致极其糟糕的吞吐量,而这种现象则归咎于这类算法对于丢包的过激反应。流量突发引起的丢包会使发送速率乘性递减(这种丢包现象在空闲网络中也会频繁发生)。这种动态特性,使得基于丢包的拥塞控制算法在实际应用中很难对网络带宽进行充分利用:维持10Gbps/100ms RTT的网络,必须要求其丢包率在0.000003%以下。而更为实际的1%的丢包率,则会导致其只能维持在3Mbps/100ms(无论是瓶颈带宽的性能如何)。
- 深缓存:在有着深缓存的瓶颈链路中,拥塞往往发送在丢包之前。在现今的的边缘网络中,基于丢包的拥塞控制算法对众多最后几英里的设备,进行了深缓存的反复填充,引发了不必要的数秒级的排队延时,也就是“缓冲膨胀”的问题。
BBR拥塞控制算法使用了另类的方式,不用丢包去衡量拥塞是否发生,而是直接对网络建模来避免以及应对真实的拥塞(它使用网络测量来估计带宽和丢包率。它计算可以通过网络发送数据而不会导致拥塞或数据包丢失的最大速率。BBR 通过跟踪网络的往返时间 (RTT) 和在任何给定时间传输的数据量来实现这一点)。
为什么使用 BBR
BBR 可以通过减少数据包丢失和增加吞吐量来显著提高网络的速度和可靠性,BBR 非常适合需要高吞吐量和低延迟的应用程序。
在 Debian 上启用 BBR 是一个非常简单的过程,我们仅需几步即可,建议使用 Debian 的伙伴都启用以下 BBR。
如何启用 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
如何关闭 BBR
编辑
/etc/sysctl.conf
文件,将net.core.default_qdisc = fq
以及net.ipv4.tcp_congestion_control = bbr
这两行使用 # 号注释掉,然后执行如下命令。sudo sysctl -p
最后重启一下服务器。
-
使用iperf3使用进行测速本机和vps之间传输速度
介绍
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参数是测试上传