python在302重定向后的cookie发送
使用 python 的 requests.get 发起请求的时候,中间请求进行了 302 跳转
在发起请求的时候,是设置了 cookie 的,第一个请求携带了 cookie,但是 302 跳转后的请求却没有携带 cookie,导致 500 失败了
这里请求的是 https ,设置了 wireshark 抓包,可以参考 这里 ,在 mitmproxy 中也是可以查看报文的
第一次发起的请求携带了 cookie,可以正常响应 302,并返回了 Location 地址
重定向到 Location 地址后,cookie 并不会携带,导致请求失败
请求的代码如下,使用的是 get 参数的默认值 allow_redirects = True 自动处理重定向
useragent = "..." cookie …

frp内网穿透到本地
官方开源地址 https://github.com/fatedier/frp
下载的版本包中包含了服务端 frps 和客户端 frpc 执行文件,旧版本可以查看所有配置 frpc_full.ini 和 frps_full.ini
服务端配置 默认只需要 bind_port 就可以了,下面开启了 dashboard 的配置,可以以 web 方式查看 frp 的穿透状态
使用 tls 进行访问,生成证书和私钥可以查看 这里 的 “配置ssl”
[common]
log_file = ./logs/frps.log
log_level = debug
log_max_days = 30
bind_port = 7000
#vhost_http_port = 8000
dashboard_user = admin …

cloudflare内网穿透到本地
ZeroTrust创建 登录 cf 官网,在左侧菜单中选择 “Zero Trust”
输入团队名称,团队名称在后续也是可以更改的
选择免费的套餐
进入付款页面,这里不付款也是可以使用的,这里直接忽略
Tunnels创建 回到 dash.cloudflare.com 页面,然后点击左侧的菜单 “Zero Trust” 进入配置页面
在 “Zero Trust” 页面,选择 “网络” 下的 “Tunnels”,然后在右侧中选择 “添加隧道”
在 “添加隧道” 选择 Cloudflared
输入隧道名称,点击 “保存隧道”
本地配置 在接下来的配置页面,根据自己的情况选择不同的部署环境
比如,我需要配置本地穿透的机器为 windows 64-bit,选择不同的环境,下方就会出现不同的配置信息
依据配置中显示的操作,先 …

本地通过隧道连接服务器的mysql
前言 服务器上部署了 mysql,本地希望能访问该 mysql,但是又不希望 mysql 直接暴露在公网上
那么可以通过隧道连接 ssh 端口的方式进行连接
从外网看,服务器只开放了一个 ssh 端口,并没有开放 3306 监听端口
设置本地免密登录 这个之前写过,有不清楚的可以看 这里
设置好之后,本地就不需要密码,直接 ssh root@xx.xx.xx.xx 登录到服务器了
建立隧道 本地使用以下命令,来通过 ssh 建立本地到服务器的一个连接通道,将本地的 33060 映射到服务器的 3306 端口
连接本地的 33060 端口,就相当于连接了服务器的 3306 端口
如果需要更详细的输出日志,可以增加 ssh 的参数 -v 或 -vv 、-vvv,v 越多日志越详细
ssh -N -v -L …

服务器增加健康监控检查
以部署 halo 为例,增加 start、stop、restart、monitor 脚本,并且 crontab 增加定时检查
start.sh 脚本
#!/bin/bash SHELL=/bin/bash nohup java -Dfile.encoding=UTF-8 -jar halo.jar --spring.config.additional-location=optional:file:/root/halo/ --debug >/dev/null 2>&1 & stop.sh 脚本
#!/bin/bash SHELL=/bin/bash ps aux | grep halo | grep -v grep | awk '{print $2}' | xargs …

git开发流程以及github社区企业版
常规开发流程 1、将仓库 clone 到本地,已经 clone 的要 fetch & pull,保证本地 master 分支已经更新到最新状态
2、在 master 最新分支的基础上 checkout 一个开发分支,分支命名要求规范,如带用户名、日期、bug id 等关键信息
这里假定命名为 dev,操作命令为 git checkout -b dev
3、在 dev 分支上进行开发以及自测,并提交 Merge Request ,经组内人员 review 没问题后进入 QA 测试环节
4、测试过程发现的 bug fix 代码提交到 dev 分支上,经 QA 回归后进入待发布环节
在开始从 master checkout 出来 dev 分支的时间,到 dev 通过 QA 验收待发布期间,master 分支可 …

beyond compare通过sftp远程对比文件
对比方式 beyond compare 支持远程文件夹的对比,非常方便,远程对比有几种方式
1、服务端开启 ftp 的方式
服务端开启 ftp 服务,新增 21 端口的监听,beyond compare 通过 ftp 连接到服务端,ftp 是基于明文传输的,因此不是很安全
还有一个升级版本 ftps,即在 ftp 的基础上,通过 SSL/TLS 加密来保护 FTP 通信的协议,相对安全一些
2、使用 sftp 的方式
服务端复用了 ssh 的端口,没有额外开放端口,使用 sftp 的方式可以通过密码连接,也可以通过配置免密连接
免密连接
配置免密连接比密码登录相对安全很多,免密操作和之前提到的是一样的,可以参考 这里
本地环境生成公私钥,将公钥配置到 ubuntu 中,经过测试,本地可以通过 ssh …

halo发布文章的插件问题分析
前言 在准备发文到 halo 系统的时候提示错误如下,全是乱码
尝试将 halo 插件卸载后,再将插件目录下的文件全部删除
插件目录在 C:\Users\Administrator\.vscode\extensions\halo-dev.halo-1.3.0
然后再重新安装插件,在进行初始化的时候依然还是报错
问题分析 下午的时候在搞公私钥的时候,将本地的公私钥重新生成了,然后就出现问题了
估计大概率和这个相关,重装插件以及删除插件目录下的旧文件,看来并不会删除鉴权信息
vscode 中提示和 halo 插件相关的错误信息如下
和 halo 相关的还有一个配置文件 run.halo.vscode.pref,在 C:\Users\Administrator\.config\preferences 目录下
看内容是 …

ubuntu服务器部署
关闭欢迎消息 服务器安装好 ubuntu 系统后,进行终端登录,会显示出很多的欢迎消息
通过在用户的根目录下执行 touch .hushlogin 命令,再次登录终端就不会出现欢迎消息
修改hostname显示 修改 /etc/hostname 文件内容为主机名,保存后重启系统
修改/etc/hosts配置 ubuntu 默认会启动 cloud-init 服务,机器启动的时候会执行 /usr/bin/cloud-init init
这个服务有一个操作,就是会修改 /etc/hosts 的记录,将本地配置的 hosts 记录全部覆盖掉
覆盖后 /etc/hosts 文件的起始有一段如下
# Your system has configured 'manage_etc_hosts' as True. …

V免签在小米手机中开启通知读取权限
安卓手机中有两种通知权限:推送通知和读取通知,其中读取通知被列为高危动作
在安装了 v 免签后,运行的时候会进行权限的申请,弹出一个设置窗口
在这里可以看到,应用被明确为不允许使用通知,需要用户进行手工授权
点击应用后,进入权限设置页面,在这里可以看到按钮是置灰状态的不可操作的
点击该置灰的按钮,弹出提示表示 “受限制的设置”
回到前面的窗口,点击应用图标的位置,进入授权设置的页面
这里是最关键的地方,以前是在右上角有几个点的,现在被隐藏到这里来了
在这个权限配置的页面上,可以进行两种权限的授权
上面的 “通知” 表示发送通知,这些通知会在任务栏中显示出来
下面的 “更多” 表示读取通知栏消息,这里的通知栏包含所有的应用,属于高危动作
点击 “更多”,弹出一个 “允许受限制的设置”
点击 “允许受限制的设置” …
