RustDesk服务器搭建记录
RustDesk 是一个远程控制工具,开源跨平台,可以使用官方的服务器,也可以自建服务器使用。服务器分为开源版 oss 和付费版 pro,我使用的是开源版。 部署服务器服务端是 rust 开发的,单文件直接运行即可。你可以使用你喜欢的进程管理工具来管理,比如 nodejs 写的 pm2, Python 写的 supervisor, 或者使用 docker 运行,我选择 docker。 启动命令 文件说明data 目录(容器内的 root 目录)下的文件: 文件名 说明 db 开头的文件 SQLite 数据库文件 id_ed25519 私钥 id_ed25519.pub 公钥,文件内容就是客户端需要的 key 网络端口我使用了 host 网络,如果使用 bridge 网络(docker 默认网络),需要映射以下端口 hbbs 服务 端口 类型 说明 21115 tcp used for the NAT type test 21116 tcp used for TCP hole punching and connection service ...
Django Restframework 实现根据字段过滤
安装 注册进 Djangovim settings.py 视图中单独指定 使用上面指定了过滤的字段,那么可以根据这两个字段进行过滤了。 模糊搜索上面的搜索(过滤)方式是精确搜索, 如果你使用的是 DRF,需要模糊搜索可以使用 rest_framework 的 filters vim views.py 搜索方式
使用kubeadm部署的集群证书过期后处理
之前使用 kubeadm 部署的集群,突然有一天执行 kubectl get pod 提示: 意思是证书有效期到 2024-02-27T08:36:50Z, 已经超过了证书有效期了。 查看证书有效期 执行续期操作 更新 kubectl 配置如果当时安装的时候是通过 cp /etc/kubernetes/admin.conf ~/.kube/config 复制的配置,需要再更新一遍,管理员也可以指定使用 /etc/kubernetes/admin.conf 作为 kubeconfig,就不用每次更新了。 重启服务需要重启 kube-apiserver, kube-controller-manager, kube-scheduler 和 etcd, kubeadm 安装的 kubelet 会自动更新证书,所以不用重启。 容器运行时是containerd容器运行时是docker
Windows修改用户名
之前 windows10 在安装过程中如果不使用微软账号登录的话,创建一个本地账户,那么创建好的用户名就是个人文件夹的名字。如果设置了中文,那么个人文件夹名字就是中文,后续会有软件兼容性问题,可以通过修改注册表来修改文件夹名字。 修改用户名首先要区分一下什么是用户名 上面这些都不是用户名,而是显示出来的用户名,也就是用户名全名。可以在 lusrmgr.msc 或 control userpasswords2 或 netplwiz 查看: 通过上图发现,我的用户名应该是 ooo 修改用户名可以直接在 lusrmgr.msc 进行修改,包括显示的全名,如果你只是想修改显示出来的名字,到这里就可以了。 修改个人文件夹路径danger 修改个人文件夹路径需要慎重!有部分已安装软件引用的还是旧的路径,这样会造成各种报错,可能需要卸载重新安装才能正常使用。 当前我的文件夹名字是 测试, 如图: 修改系统定义的路径打开注册表编辑器,定位到 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Profil...
通过docker容器查看run命令
公司有一台服务器上运行着一个服务,通过 docker start 启动,已经没有文档记录如何搭建的了。现在需要迁移,记录一下获取 docker run 命令的方法 通过模版处理 docker inspect 的数据来获取使用 runlike 来获取模版文件来自https://gist.githubusercontent.com/efrecon/8ce9c75d518b6eb863f667442d7bc679/raw/run.tpl 假设容器名是 mysql, 命令后面可以跟容器名或者容器 id。命令如下: 得到的结果和原始的不一样,但是大差不差了。 runlike 的结果也是近似的 或者使用 get_command_4_run_container
Grafana 监控面板配置
安装 grafanaoss:开源版本 enterprise: 商业版本 https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1&edition=oss 添加数据源以 grafana 10.3.3 为例, 在 connections –> Data sources 中新增: 面板配置可以手动配置,也可以在 grafana 官网下载别人配置好的模板:https://grafana.com/grafana/dashboards/, 复制 ID 或者下载 json 文件到本地 然后在面板上面,点击 + , 选择 import dashboard 使用 json 文件导入或者直接输入面板 id 进行导入。 导入后便能看到基础的图形。 做变量筛选比如我们的监控会区分环境, 比如开发环境 dev,生产环境 prod, 现在需要在 grafana 的面板上做一个筛选框,这里是原始的数据:比如我们需要取 env 的值 在面板的设置 – 变量中, 添加一个变量, 变量名可以自定义, 在此...
Django RestFramework 使用 JWT 认证
JWT 的优点优点:无状态,服务端不保存 token缺点:生成的 token 在有效期内一直有效,无论用户注销、修改密码。(可以通过存 redis,通过代码进行删除 redis 里的 token 解决。) 开始使用配置setting.py 里面设置默认值 这里的 DEFAULT_AUTHENTICATION_CLASSES 是默认设置,也可以给类视图自定义views.py authentication_classes = [JSONWebTokenAuthentication] urls.py 里面配置生成 token 的路由 使用先访问 api-token-auth 接口,这个接口只能通过 POST 访问,带上用户名和密码,认证成功后会生成一个 token 类似于: 拿着这个 token 去请求接口: 我们前缀设置的是 JWT, 所以在请求时在 Header 里带上 JWT 即可 修改默认返回值默认的返回值仅有 token,通过修改该视图的返回值可以完成我们的需求。在应用中新建一个 utils.py 文件: 在 settings.py 里面...
ssh不能登录常见问题调试
常见问题权限问题 家目录的权限对不对,检查下是不是 0755 或更小权限 authorized_keys 文件的权限, 一般为: 0644 客户端的 id_rsa 私钥文件的权限,需要设置成 600 ,太开放会被拒绝连接。 密钥类型兼容问题比如在 OpenSSH 8.8+ 版本中,出于安全考虑,默认禁用了基于 ssh-rsa(SHA-1 签名)的公钥算法。这会导致旧的 RSA 密钥在连接时出现 no mutual signature algorithm 或认证失败的问题。 比如高版本客户端连接低版本服务端可以修改客户端指定的算法 ~/.ssh/config 客户端调试 服务器调试打开 ssh 日志systemd 管理的服务,需要修改 /usr/lib/systemd/system/sshd.service , 修改 ExecStart 加上参数 -E /var/log/ssh/sshd.log 如: 然后再查看 sshd 的日志: 这里提示:Authentication refused: bad ownership or modes for directory /...
fail2ban配合cloudflare cdn使用
Cloudflare 是一家全球最著名的 CDN 加速服务商,提供了免费和付费的网站加速和保护服务。即使是免费版,也提供了比较全面和强大的功能,非常不错。 通过使用 Cloudflare CDN 服务提供的全球节点,一方面可以提高网站响应速度和性能,节省源站资源;另一方面也可以保护站点抵御攻击,保证网站长期稳定在线。 fail2ban 是一个开源工具, 它通过分析日志, 将不满足要求的访问 (比如 cc 攻击、对网站进行扫描等) 的 ip 获取到, 通过自带防火墙 (iptables 等) 进行封禁. 问题一: 如何让 fail2ban 获取真实 IP 想要通过 fail2ban 来封禁 ip, 那么先要获取到用户 (或黑客) 的 ip, 如果不进行处理, 那么大概率你获取到的是 cloudflare 请求你用的 ip, 封禁这个 ip 是没有意义的… 我的服务架构是 cloudflare –> nginx –> 后端服务 在 nginx 上面配置 后端也要配置打印在日志里的 ip 字段为 X-Real-IP, 如果读取的是 Nginx 日志, 那配置一下 Ngi...


