Rootop 服务器运维与web架构

2023-03-09
发表者 Venus
ros设置固定ip上网已关闭评论

ros设置固定ip上网

# 设置外网网卡,先连接外网线路到任意网卡,另一块网卡不接网线,便于分辨哪块网卡用来联网。通过interfaces菜单里的R (running)状态判断哪块网卡激活。
[admin@MikroTik] > /ip/address/add address=192.168.31.50/24 interface=ether2

# 设置默认路由
[admin@MikroTik] > /ip/route/add dst-address=0.0.0.0/0 gateway=192.168.31.1

# 此时在ros中就可以ping通外网了
[admin@MikroTik] > ping 114.114.114.114

# 设置内网网卡
[admin@MikroTik] > /ip/address/add address=192.168.10.1/24 interface=ether1

# 内网指定ip可以联网
[admin@MikroTik] > /ip/firewall/nat/add chain=srcnat src-address=192.168.10.2 action=masquerade

2023-03-09
发表者 Venus
sk5多ip搭建面板中转面板已关闭评论

sk5多ip搭建面板中转面板

在做跨境电商aws或者tiktok直播等业务时,需要将每个账号通过不同的ip访问。
这里测试了一种方法,适合电商浏览器、游戏搬砖。
基于centos7系统 + sk5协议实现。
可以通过浏览器界面管理站群服务器、多ip服务器。
仅支持sk5
支持多ip出口
支持统一、随机端口
支持udp
支持修改用户名、密码、端口
一键安装部署。

中转面板
支持单个、批量添加中转。
联系Q:

2023-03-09
发表者 Venus
低版本navicat连接mysql8报不支持加密方式已关闭评论

低版本navicat连接mysql8报不支持加密方式

在docker容器中启动了一个mysql8数据库,但是navicat客户端连不上,会提示加密方式不支持。
看到这个提示就推测是用户表中的密码加密方式导致的。
通过查询数据库看到:

mysql> select plugin from mysql.user where user = 'root';  

返回的plugin字段值为 caching_sha2_password

将其改为mysql5.7的 mysql_native_password 方式。

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123123';
mysql> flush privileges;

这样旧版本的mysql客户端就可以连接了。

2023-03-09
发表者 Venus
l2tp搭建多ip出口已关闭评论

l2tp搭建多ip出口

在某些业务场景下需要实现不同客户端的不同ip,特别像游戏工作室,一般用系统自带的l2tp拨号或者软路由来实现不同手机的不同ip,防止同一个地址登录多个游戏账号而导致封号。
服务端实现可以通过华为USG系列防火墙或者用linux实现。因华为设备成本过高,这里采用linux系统实现。

默认情况下l2tp只支持单ip出口,在多ip服务器上需要创建多个账号,然后配置不同账号从指定ip出去。
这样实现一个账号对应一个外网ip,有效降低因大量账号在一个ip上导致封号。
一般两种方式;
1、是启动多个服务对应不同地址。
2、是通过修改默认出口地址。
原理就是配置不同账号的不同路由策略,就是操作过程过于繁琐。可以参考网上公开的脚本。
这里通过修改公开脚本实现,需要联系。
Q:

2023-02-14
发表者 Venus
通过nginx拦截带时间戳的恶意访问已关闭评论

通过nginx拦截带时间戳的恶意访问

日志中出现 /?_=1676277219011 的请求,后面13位数是时间戳,大量的请求导致后端php资源池耗尽从而报502错误。
现通过nginx拦截这些恶意请求。

开始用location拦截,过滤参数,发现这样是错误的。

原因是 location 不能拦截参数,因为location是根据uri处理的,uri不包含参数部分。

先看下 $request_uri 和 $args 两个内置变量的值

location /
{
    return 200 $request_uri;
}

访问结果:/test.html?id=1&time=1676277219011

location /
{
    return 200 $args;
}

访问结果:id=1&time=1676277219050

2种拦截思路:

# 这个是拦截请求参数中以13位数字结尾的

if ($args ~ "[0-9]{13}$")
{
   return 403;
}

# 这个是拦截请求路径为 /?_=带13位数字结尾的

if ($request_uri ~* "^/\?_=[0-9]{13}$")
{
    return 403;
}