iTerm2配置记录
快捷键macOS的快捷键图标表示
控制键
说明
⌘
command
⌃
control
⌥
option
⇧
shift
其中control开头的快捷键不止在iTerm2中可用,在所有shell终端中都是可用的。
标签(tab)
功能
快捷键
备注
新建标签
command + t
关闭标签
command + w
切换标签
command + ← 或 →
可以用command + 数字键,切换到指定的tab上
切换全屏
command + enter
等同于 fn + f, fn + f在所有macOS软件中都可用
分屏
功能
快捷键
备注
垂直分屏
command + d
水平分屏
command + shift + d
切换到不同的分屏
command + option + 上下左右
同时操作所有窗口
command + shift + i
操作打开的所有tab和分屏, 功能生效时,右上角有个图标提示
其他
功能
快捷键
备注
快速定位光标
option + 鼠标点击
很常用的功能 ...
Ingress Nginx 配置ssl双向认证
记录一下在kuberentes下使用ingress-nginx来配置ssl双向认证,可以参考其他几篇文章:使用certbot自动申请ssl证书
使用acme.sh来自动更新https证书
制作和使用自签名证书
Nginx配置SSL双向认证
创建CA证书执行以下命令,创建自签的CA证书。
1openssl req -x509 -sha256 -newkey rsa:4096 -keyout ca.key -out ca.crt -days 3650 -nodes -subj '/CN=Fern Cert Authority'
生成server证书
这里可以使用公共的CA签发的证书, 比如各大云服务商购买的证书。下面是自签证书的步骤。
生成Server端证书的请求文件1openssl req -new -newkey rsa:4096 -keyout server.key -out server.csr -nodes -subj '/CN=foo.bar.com'
使用根证书签发Server端请求文件,生成Server端证书1openssl x ...
Kubernetes创建一个只读用户
其实用到的是RBAC授权,官方文档在:https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/rbac/
生成证书12345678# 生成私钥openssl genrsa -out dev.key 2048# 基于这个私钥生成证书请求openssl req -new -key dev.key -out dev.csr -subj "/CN=dev"# 使用CA证书签发openssl x509 -req -in dev.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out dev.crt -days 3000
通过证书生成kubeconfig配置文件12345678910111213141516171819202122232425262728# 生成用户kubeconfigkubectl config set-cluster kubernetes \ --kubecon ...
使用image-syncer来实现容器镜像同步
image-syncer 是一个docker镜像同步工具,可用来进行多对多的镜像仓库同步,支持目前绝大多数主流的docker镜像仓库服务
支持多对多镜像仓库同步
支持基于Docker Registry V2搭建的docker镜像仓库服务 (如 Docker Hub、 Quay、 阿里云镜像服务ACR、 Harbor等)
同步只经过内存和网络,不依赖磁盘存储,同步速度快
增量同步, 通过对同步过的镜像blob信息落盘,不重复同步已同步的镜像
并发同步,可以通过配置文件调整并发数
自动重试失败的同步任务,可以解决大部分镜像同步中的网络抖动问题
不依赖docker以及其他程序
image-syncer 的官方地址是:https://github.com/AliyunContainerService/image-syncer, 是golang开发的, 官方没有给打包成windows版, 所以windows和mac用户需要自己编译一下。
编译安装golang环境略
开始构建1go build main.go
会在当前目录下生成main.exe, 重命名为image-syncer.exe
使 ...
shell脚本条件判断与比较运算
if 的基本语法:1234567if [ -f /tmp ];then echo "是一个普通文件"elif [ -d /tmp ];then echo "是一个目录"else echo "其他类型"fi
文件/目录 判断常用的
运算符
作用
-d
测试文件是否为目录
-e
测试文件是否存在
-f
判断是否为一般文件
-r
测试当前用户是否有权限读取
-w
测试当前用户是否有权限写入
-x
测试当前用户是否有权限执行
-s
文件长度不为零
选项
作用
[ -b FILE ]
如果 FILE 存在且是一个块特殊文件则为真。
[ -c FILE ]
如果 FILE 存在且是一个字特殊文件则为真。
[ -d DIR ]
如果 FILE 存在且是一个目录则为真。
[ -e FILE ]
如果 FILE 存在则为真。
[ -f FILE ]
如果 FILE 存在且是一个普通文件则为真。
[ -g FILE ]
如果 FILE 存在且已经设置了 ...
利用Nginx的rewrite来实现自动跳转
任意链接都跳转到指定页面
需要部署一个服务在Kubernetes内, 需要实现通过ingress可以访问到, 本来是很简单的事情, 但是由于访问来源的location不确定,为了避免报错404,所以用Nginx的rewrite来实现
Nginx配置如下(所有location转发到index.html):
12345678910111213server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /var/www/html; index index.html index.htm index.nginx-debian.html; location / { rewrite ^(.*) /index.html break; }}
自动跳转https配置文件如下:
123if ( $scheme = http ) ...
使用Obsidian配合Hexo写博客
obsidian是一款好用的markdown编辑器, 用来记笔记还是不错的。 并且支持插件系统,可以通过模板来生成博客的frontmatter, 省去了hexo new的操作 所以准备配置一下用obsidian来写博客。
相关文章:静态博客生成工具hexo使用typora更好更快地写hugo博客使用vscode来写hugo博客并处理图片插入问题
打开仓库首先使用obsidian打开source/_posts目录, 然后会生成一些配置文件。进入_posts目录
创建.gitignore将一些临时文件排除掉。
1.obsidian/workspace.json
配置模板自带的模板插件功能太单一了, 我们关闭安全模式, 安装第三方插件Templater
创建Templates目录,修改配置指定Template的目录。修改配置项Template folder location为Templates
然后再此目录下创建Front-matter.md文件,此文件用作hexo的frontmatter模板。
12345678910---title: <% tp.file.title %>c ...
ArchLinux安装记录
官方文档 ArchWiki 已经写的很好了,但是每次安装的时候都要踩坑,所以开个文章记录一下。
磁盘分区与格式化123parted /dev/sda mklabel gpt mkpart ESP fat32 1M 513M set 1 boot on mkpart primary ext4 513M 100% printmkfs.fat -F 32 /dev/sda1mkfs.ext4 /dev/sda2
配置中科大的源配置文档: https://mirrors.ustc.edu.cn/help/archlinux.html
挂载与chroot操作chroot后相当于进入了安装后的系统内进行操作
123456mount /dev/sda2 /mntmount --mkdir /dev/sda1 /mnt/bootpacstrap -K /mnt base linux linux-firmwaregenfstab -U /mnt >> /mnt/etc/fstabarch-chroot /mnt
常用配置配置时区12ln -sf /usr/share/zoneinfo/A ...
Fail2ban配合Docker使用解决暴力破解
fail2ban正常使用可以参考使用Fail2ban抵御暴力破解和cc攻击,但是对于使用了Docker host网络的容器来说是不生效的。原因最后说, 我们先复原一下部署情况
环境现状服务器是我自己的服务器,使用Nginx做入口,反向代理到不同的后端,后端服务和Nginx都是运行在Docker里,使用Docker的自定义网络进行互联。其中Nginx容器使用的是Host网络
配置fail2ban确定Docker版Nginx日志路径Linux内一切皆文件,Docker会将日志写入到主机的一个日志文件中。通过
1docker inspect nginx --format "{{.LogPath}}"
可以查看到容器的日志位置
创建配置文件/etc/fail2ban/jail.d/nginx-cc.conf123456789[nginx-cc]enabled = trueport = http,httpsfilter = nginx-ccaction = %(action_)smaxretry = 50findtime = 10ba ...
使用Fail2ban抵御暴力破解和cc攻击
fail2ban 是一款防止暴力破解和cc攻击的开源工具,采用Python编写。
常用组件
工具
作用
fail2ban-client
客户端工具
fail2ban-regex
验证正则匹配
1234567891011# 查看启用的规则fail2ban-client status# 查看规则详情fail2ban-client status sshd# 重新加载配置fail2ban-client reload# 手动解禁IPfail2ban-client set sshd unbanip 192.168.1.1
配置文件目录
作用
/etc/fail2ban/jail.d
ban的规则,如多少次触发,触发后封禁多久等
/etc/fail2ban/filter.d
过滤规则,匹配日志的正则配置
规则测试创建配置文件/etc/fail2ban/jail.d/nginx-cc.conf
123456789[nginx-cc]enabled = trueport = http,httpsfilte ...