kde config

kde config 快捷键 功能 key krunner alt+space 快捷键设置 System Settings>shortcuts 多显示器 任务栏 https://superuser.com/questions/905591/kde-taskbar-task-manager-only-on-vga-screen-not-dvi-screen/906725 Right-click on the panel -> Panel Settings then drag the Screen Edge bar to the bottom of the screen to move the panel. Then right click on the panel -> Add Widgets -> Double-click on Task Manager. Then right-click somewhere near the middle of the panel -> Task Manager Settings -> Only show tasks from the current screen ...

2022-10-02 · 1 min · 141 words · -

PVE

PVE # 查看 pve 版本 pveversion macos hdiutil convert proxmox-ve_8.3-1.iso -format UDRW -o proxmox-ve_8.3-1.dmg diskutil list # insert the USB flash drive diskutil list diskutil unmountDisk /dev/diskX # rdiskX, instead of diskX, in the last command is intended. It will increase the write speed. sudo dd if=proxmox-ve_8.3-1.dmg bs=1M of=/dev/rdisk5 创建安装盘 U盘 wiloon.com/ventoy dd bs=1M conv=fdatasync if=./proxmox-ve_*.iso of=/dev/XYZ 去除 Proxmox 企业源 apt update && apt install vim vim /etc/apt/sources.list.d/pve-enterprise.list #deb https://enterprise.proxmox.com/debian/pve buster pve-enterprise 更新源 pve9 # ceph.sources Types: deb URIs: https://mirrors.bfsu.edu.cn/proxmox/debian/ceph-squid Suites: trixie Components: no-subscription Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg # debian.sources Types: deb URIs: https://mirrors.bfsu.edu.cn/debian/ Suites: trixie trixie-updates Components: main contrib non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg Types: deb URIs: https://mirrors.bfsu.edu.cn/debian-security/ Suites: trixie-security Components: main contrib non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg pve 6.x vi /etc/apt/sources.list ...

2022-09-10 · 3 min · 584 words · -

Archlinux 安装 linux-lts 内核

Archlinux 安装 linux-lts 内核 Archlinux 如果做服务器用的话, 最好安装 LTS 内核, 否则…说不定哪次更新之后, 服务就起不来了, 比如最近遇到的 linux 5.19.1 和 netavark 的兼容问题. 折腾 k8s, 尝试安装 cri-o 的时候习惯性的先执行了 pacman -Syu (操作系统用的 archlinux ),然后再安装 cri-o, pacman -S cri-o, 理论上 cri-o 会默认在 sysctl 里配置 bridge-nf-call-iptables = 1,但是重启后发现 bridge-nf-call-iptables = 1 没生效,手动配置之后也不行,提示 br_netfilter 内核模块没加载, 手动加载 modprobe br_netfilter 又报错说找不到模块,看上去是前面更新系统的时候升级了内核,从 5.16.4.arch1-1 升到了 5.16.5.arch1-1,modprobe 还是到旧内核的目录找 br_netfilter 模块,简单Google了一下看到有人解决 modprobe 的问题建议用 LTS 的内核,又Google了一下 archlinux 换 LTS 内核,然后再 pacman -S cri-o 重启之后 sysctl 的配置果然没有问题了, 更换内核的过程记录如下。 ...

2022-08-21 · 1 min · 192 words · w1100n

ssh-agent, ssh agent, ssh forward

ssh-agent, ssh agent, ssh forward ssh agent forward A > B > C 主机 A:运行 ssh-agent,并且已经加载私钥 主机 B:跳板机 主机 C: 目标机,已经配置好公钥,并且运行 sshd 检查主机 A ssh-agent 是否已经在运行 ps -ef | grep ssh-agent 主机 A ssh-agent 已经加载了密钥 ssh-add -l 主机 A 允许入站连接上的 SSH 代理转发, 将 AllowAgentForwarding 的值设置为 yes,表示允许进行代理转发, openssh 中 AllowAgentForwarding 默认值即为yes,所以,如果配置没有修改过,保持默认即可。 vim /etc/ssh/sshd_config AllowAgentForwarding yes 主机 A ssh 配置 ForwardAgent yes vim ~/.ssh/config #content host * ForwardAgent yes 主机 B 不需要运行 ssh-agent, 也不需要配置 ssh 的 ForwardAgent yes, 主机 B 在使用 ssh agent forward 连接 主机 C 成功之后,会创建 环境变量 $SSH_AUTH_SOCK ...

2022-06-07 · 4 min · 661 words · -

socat

socat socat 测试端口连通性, test a remote port is reachable with socat # test tcp port socat /dev/null TCP:192.168.1.15:22 socat - tcp4:192.168.1.15:22,connect-timeout=3 # test udp port # https://serverfault.com/questions/416205/testing-udp-port-connectivity # set up a server listening on UDP port 1234 socat UDP-RECV:1234 STDOUT # or socat STDIO UDP-LISTEN:1234 # test udp port socat - UDP:localhost:1234 http server, 加载本地 .html 文件 echo "foo">foo.html socat -v -v TCP-LISTEN:8000,crlf,reuseaddr,fork SYSTEM:"echo HTTP/1.0 200; echo Content-Type\: text/plain; echo; cat foo.html" https://stackoverflow.com/questions/29739901/socat-fake-http-server-use-a-file-as-server-response ...

2022-04-19 · 3 min · 533 words · -

iproute2 > 路由表, routing table, ip route

iproute2 > 路由表, routing table, ip route commands ip route # 简写, Abbreviations # route: ro, r. # show: list, sh, ls, l. ip route ls tab all ip route Usage: ip route { list | flush } SELECTOR := 表示声明并定义 { xxx | xxx } 表示多选 - 必选 [] 表示可选 SPEC 应该是 specification 的缩写 NH 应该是 next hop 的缩写 PREFIX 就是地址加掩码的格式, 比如 0.0.0.0/0 PREFIX 有个 default 的特殊表示, 等同于 0.0.0.0/0, 也就是默认路由 路由表 linux 系统路由表可以自定义从 1-252 个路由表, 操作系统维护了 4 个路由表: ...

2022-02-11 · 14 min · 2819 words · -

tcpcopy, 流量复制

tcpcopy, 流量复制 公有云环境 https://github.com/session-replay-tools/tcpcopy/issues/336 云环境下,安全策略可能会干扰测试的进行 采用如下步骤可以规避麻烦: 测试机器和 intercept 部署到一台机器 tcpcopy端 -c 参数采用 tcpcopy 所在的线上机器ip地址 在线上机器设置iptables黑洞来过滤掉测试服务器的响应包 iptables -I INPUT -p tcp --sport 测试服务的端口 -j DROP -s 测试服务所在机器的ip地址 千万要注意在测试服务器不要设置路由了,否则会受到干扰 环境 测试用的 tcp 服务 tcp-echo-server 线上服务器, online source server, xxx.xxx.20.50 2000 端口提供服务 (tcp-echo-server) 测试服务器, 目标服务器, target server, xxx.xxx.20.45, 192.168.50.102 3000 端口提供服务 (tcp-echo-server), 不能跟 online server 用同一个端口 辅助服务器, assistant server, xxx.xxx.20.45, intercept 跟测试服务部署到同一个机器, 不使用单独的服务器 线上服务器安装 tcpcopy git clone https://github.com/session-replay-tools/tcpcopy.git cd tcpcopy ./configure --single make make install ls /usr/local/tcpcopy 辅助服务器 (intercept) 安装 git clone https://github.com/session-replay-tools/intercept.git cd intercept ./configure --single make make install ls /usr/local/intercept 实时复制流量 测试服务器 192.168.50.102 测试服务器不添加路由规则. ...

2022-02-11 · 3 min · 630 words · -

IPA

IPA, International Phonetic Alphabet, 国际音标 元音字母, 辅音字母 5个元音字母和21个辅音字母组成。 5个元音字母分别为:a[ei]、e[i:]、i[ ai]、o[eu]、u[ju:]; 元音, 辅音 48个英语音标表:20个元音+28个辅音 一、单元音12个 短元音: [i] [ə] [ɒ] [u] [Λ] [æ] [e] 长元音: [i:] [ə:] [ɔ:] [u:] [ɑ:] 二、双元音8个 [ai] [ei] [ɔi] [au] [əu] [iə] [eə] [uə] 三、清浊成对的辅音10对 清辅音:[p] [t] [k] [f] [θ] [s] [tr] [ts] [∫] [t∫] 浊辅音:[b] [d] [g] [v] [ð] [z] [dr] [dz] [ʒ] [dʒ] 四、其他辅音8个 [h] [m ] [n] [ŋ] [l] [r] [w] [j] the在元音前读[ði],在辅音前读[ðə],而元辅音的判断不是第一个单词,而是第一个音素,或说发音。 元音 [æ], half, sat, laugh, cat [ɑ], lock, what, hard, article [ʌ] cut, son, flood ...

2021-08-23 · 1 min · 124 words · -

celery

celery https://github.com/celery/celery celery 是一个基于分布式消息传输的异步任务队列,它专注于实时处理,同时也支持任务调度。它的执行单元为任务(task),利用多线程, 如 Eventlet,gevent等,它们能被并发地执行在单个或多个职程服务器(worker servers)上。任务能异步执行(后台运行)或同步执行(等待任务完成)。 # install rabbitmq https://wangyue.dev/rabbitmq # install celery pip install celery # 添加用户跟密码, rabbitmqctl add_user test test123 rabbitmqctl add_user user0 password0 # 添加虚拟主机 rabbitmqctl add_vhost test_vhost rabbitmqctl add_vhost vhost0 # 为用户添加标签, rabbitmqctl set_user_tags test test_tag rabbitmqctl set_user_tags user0 tag0 # 设置用户权限, rabbitmqctl set_permissions -p test_vhost test ".*" ".*" ".*" rabbitmqctl set_permissions -p vhost0 user0 ".*" ".*" ".*" # run celery server celery -A tasks worker --loglevel=INFO ———————————————— 版权声明:本文为CSDN博主「吴秋霖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qiulin_wu/article/details/106119757 ...

2021-08-16 · 2 min · 280 words · -

rabbitmq

rabbitmq nerdctl # nerdctl, network: host nerdctl run -d --hostname host0 --name rabbitmq --network host --memory 2g -p 15672:15672 -p 5672:5672 -e RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-rabbit consumer_timeout 50000" rabbitmq:3.8.18-management # docker with timeout config docker run -d --hostname host0 --name rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-rabbit consumer_timeout 50000" rabbitmq:3.8.18-management # 查看 版本 rabbitmqctl status docker run -d --hostname host0 --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:3.11.10-management docker run -d --hostname host0 --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:3.8.18-management podman run -d --hostname host0 --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:3.11.10-management rabbitmqctl list_connections rabbitmqctl list_queues rabbitmqctl list_channels rabbitmqctl list_users rabbitmqctl cluster_status # 查看 consumer_timeout 的值 rabbitmqctl eval 'application:get_env(rabbit, consumer_timeout).' 管理页面 使用:http://宿主ip:15672 访问管理页面,默认用户名密码:guest/guest ...

2021-08-16 · 2 min · 311 words · -

macos apps

macos apps CleanMyMac X Bob, 词典 Monosnap, 截图 Stats, https://github.com/exelban/stats, 监控 Itsycal, 在任务栏显示日历周 RealVNC® Viewer golang iterm2, another terminal wechat telegram brew brew 是 Mac 下的一个包管理工具, 作用类似于 centos 下的 yum # brew install package_0 nodejs obsidian go fping other Tunnelblick, openvpn gui client Sketch, 矢量绘图

2021-06-16 · 1 min · 45 words · -

dm-crypt, 加密

dm-crypt, 加密 dm-crypt 是整合到 linux 内核中的,而它的命令行前端 cryptsetup, 在大多数主流的 linux 发行版中都会自带 LUKS = Linux Unified Key Setup commands # 将分区设置为加密的 LUKS 分区, 这个时候会对磁盘分区进行全盘覆写,所以速度会比较慢 # luksFormat: 初始化并格式化一个分区以便使用 LUKS 加密。 # luksOpen: 打开一个已加密的 LUKS 分区,使其可用。 # luksClose: 关闭一个已打开的 LUKS 分区。 # status: 查看加密设备的状态。 cryptsetup luksFormat /dev/nvme0n1p1 cryptsetup luksOpen /dev/nvme0n1pX cryptroot # 打开加密的 LUKS 分区, 映射加密分区到 nvme0n1p1_encrypted, # 将加密分区映射到逻辑分区 /dev/mapper/nvme0n1p8_crypt cryptsetup open /dev/nvme0n1p1 nvme0n1p1_encrypted # 重设 PV 上加密层的大小 # https://unix.stackexchange.com/questions/322905/what-does-cryptsetup-resize-do-if-luks-doesnt-store-partition-size sudo cryptsetup resize /dev/mapper/devicemappername 用 cryptsetup 创建 LUKS 的虚拟加密盘 (逻辑卷) 在前一个章节,已经介绍了"对物理分区的加密"。其实 cryptsetup 也可以支持虚拟加密盘 (逻辑加密盘) ——类似于 TrueCrypt 那样。 ...

2021-03-30 · 1 min · 205 words · -

speed test cli, 测速

“speed test cli, 测速” https://www.speedtest.net/zh-Hans/apps/cli archlinux pacman -Sy speedtest-cli speedtest-cli --server=43752 --bytes https://github.com/sivel/speedtest-cli macos install speedtest-cli brew install speedtest-cli speedtest-cli --list

2021-03-01 · 1 min · 21 words · -

rest client

rest client, HTTP Client jetbrain: HTTP Client plugin vscode: REST Client 使用变量 变量的好处,在开发过程中我们都知道,在 HTTP 语言中同样可以使用变量来帮助我们组织请求代码 自定义变量 我们可以在 http 文件中直接定义变量,使用 @ 符号开头,以 {{variable name}} 的格式来使用 foo.http @foo GET http://localhost:8000/api/v1/public/echo?msg=1345asdf HTTP/1.1 GET http://localhost:8000/api/v1/public/echo?msg={{foo}} HTTP/1.1 // comments http 请求 with header ### get https://foo.com/bar/?foo=bar&bar=foo Accept: */* Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9,ja;q=0.8,zh-CN;q=0.7,zh;q=0.6 Connection: keep-alive Host: wiloon.com User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 https://github.com/Huachao/vscode-restclient

2020-12-24 · 1 min · 65 words · -

letsencrypt, certbot, certbot-auto, acme.sh

“letsencrypt, certbot, certbot-auto, acme.sh” certbot, certbot-auto, acme.sh certbot: recommended by the official website. certbot-auto: no longer supported. acme.sh: 第三方的 acme 协议实现. install certbot almalinux pip sudo dnf install python3 augeas-libs sudo dnf remove certbot python3 -m venv /opt/certbot/ /opt/certbot/bin/pip install --upgrade pip /opt/certbot/bin/pip install certbot certbot-nginx ln -s /opt/certbot/bin/certbot /usr/bin/certbot archlinux pacman -S certbot ubuntu # 不推荐用这种方式安装, 版本太旧 sudo apt install certbot # 如果以前安装过, 先卸载掉再安装 snap 版本 sudo apt-get remove certbot sudo apt update # for ubuntu snap is pre-installed sudo apt install snapd sudo snap install core sudo snap refresh core sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot snap set certbot trust-plugin-with-root=ok # 如果在使用 google dns, 需要安装这个包 snap install certbot-dns-google certonly # certonly: do not install, 不安装到 nginx, 因为 nginx 在 docker 里, 所以这里用 certonly # -m: provide email # --agree-tos: tos yes # --eff-email: share email yes # --keep-until-expiring: keep cert yes certbot certonly --standalone -m wiloon.wy@gmail.com --agree-tos --eff-email --keep-until-expiring \ -d wiloon.com -d bitwarden.wiloon.com certbot certonly --standalone -m wiloon.wy@gmail.com --agree-tos --eff-email --keep-until-expiring -d wangyue.dev # list all certificates issued by certbot certbot certificates # select and delete certificates certbot delete # for google dns certbot certonly --dns-google --dns-google-credentials /root/cellular-deck-280204-6455aa19691d.json -d wiloon.com -d *.wiloon.com commands # 查看证书, 查看已经安装的证书 certbot certificates centos dnf update dnf remove certbot dnf install epel-release dnf install snapd systemctl enable --now snapd.socket snap install core snap refresh core ln -s /var/lib/snapd/snap /snap snap install --classic certbot ln -s /snap/bin/certbot /usr/bin/certbot snap set certbot trust-plugin-with-root=ok snap install certbot-dns-google Couldn’t download https://raw.githubusercontent.com/certbot/certbot/v0.39.0/letsencrypt-auto-source/letsencrypt-auto. [urlopen error [Errno 110] Connection timed out](urlopen error [Errno 110] Connection timed out) ...

2020-06-04 · 3 min · 542 words · -

aws

aws 查看所有区域的资源: ec2>左侧菜单> AWS Global View aws s3 ls s3://obsidian-w10n aws configure aws s3 cp foobar s3://obsidian-w10n https://aws.amazon.com/cli/ SAA, Solution Architect Ass

2020-05-10 · 1 min · 22 words · W10N

dnf basic

dnf basic 升级所有系统软件包 用处: 该命令用于升级系统中所有有可用升级的软件包 # "update" is just a deprecated alias for "upgrade", they do exactly the same thing. dnf update dnf upgrade 安装 dnf install rsync 删除 dnf remove nano 或 # dnf erase nano 删除无用孤立的软件包 用处: 当没有软件再依赖它们时,某一些用于解决特定软件依赖的软件包将会变得没有存在的意义,该命令就是用来自动移除这些没用的孤立软件包。 dnf autoremove dnf --version dnf repolist – 查看系统中可用和不可用的所有的 DNF 软件库 用处: 该命令用于显示系统中可用和不可用的所有的 DNF 软件库 命令: # dnf repolist all – 列出所有安装了的 RPM 包 dnf list installed – 列出所有 RPM 包 dnf list – 列出所有可供安装的 RPM 包 用处: 该命令用于列出来自所有可用软件库的可供安装的软件包 命令: # dnf list available – 搜索软件库中的 RPM 包 用处: 当你不知道你想要安装的软件的准确名称时,你可以用该命令来搜索软件包。你需要在"search"参数后面键入软件的部分名称来搜索。 (在本例中我们使用"nano") 命令: # dnf search nano – 查看软件包详情 用处: 当你想在安装某一个软件包之前查看它的详细信息时,这条命令可以帮到你。 (在本例中,我们将查看"nano"这一软件包的详细信息) 命令: # dnf info nano – 安装软件包 用处: 使用该命令,系统将会自动安装对应的软件及其所需的所有依赖 (在本例中,我们将用该命令安装nano软件) 命令: # dnf install nano – 升级软件包 用处: 该命令用于升级制定软件包 (在本例中,我们将用命令升级"systemd"这一软件包) 命令: # dnf update systemd – 检查系统软件包的更新 用处: 该命令用于检查系统中所有软件包的更新 命令: # dnf check-update dnf upgrade --refresh dnf system-upgrade reboot – 删除软件包 用处: 删除系统中指定的软件包 (在本例中我们将使用命令删除"nano"这一软件包) 命令: # dnf remove nano 或 # dnf erase nano – 删除无用孤立的软件包 用处: 当没有软件再依赖它们时,某一些用于解决特定软件依赖的软件包将会变得没有存在的意义,该命令就是用来自动移除这些没用的孤立软件包。 命令: # dnf autoremove – 删除缓存的无用软件包 用处: 在使用 DNF 的过程中,会因为各种原因在系统中残留各种过时的文件和未完成的编译工程。我们可以使用该命令来删除这些没用的垃圾文件。 命令: # dnf clean all – 获取有关某条命令的使用帮助 用处: 该命令用于获取有关某条命令的使用帮助 (包括可用于该命令的参数和该命令的用途说明) (本例中我们将使用命令获取有关命令"clean"的使用帮助) 命令: # dnf help clean – 查看所有的 DNF 命令及其用途 用处: 该命令用于列出所有的 DNF 命令及其用途 命令: # dnf help – 查看 DNF 命令的执行历史 用处: 您可以使用该命令来查看您系统上 DNF 命令的执行历史。通过这个手段您可以知道在自您使用 DNF 开始有什么软件被安装和卸载。 命令: # dnf history – 查看所有的软件包组 用处: 该命令用于列出所有的软件包组 命令: # dnf grouplist – 安装一个软件包组 用处: 该命令用于安装一个软件包组 (本例中,我们将用命令安装"Educational Software"这个软件包组) 命令: # dnf groupinstall 'Educational Software' – 升级一个软件包组中的软件包 用处: 该命令用于升级一个软件包组中的软件包 (本例中,我们将用命令升级"Educational Software"这个软件包组中的软件) 命令: # dnf groupupdate 'Educational Software' – 删除一个软件包组 用处: 该命令用于删除一个软件包组 (本例中,我们将用命令删除"Educational Software"这个软件包组) 命令: # dnf groupremove 'Educational Software' – 从特定的软件包库安装特定的软件 用处: 该命令用于从特定的软件包库安装特定的软件 (本例中我们将使用命令从软件包库 epel 中安装 phpmyadmin 软件包) 命令: # dnf –enablerepo=epel install phpmyadmin – 更新软件包到最新的稳定发行版 用处: 该命令可以通过所有可用的软件源将已经安装的所有软件包更新到最新的稳定发行版 命令: # dnf distro-sync – 重新安装特定软件包 用处: 该命令用于重新安装特定软件包 (本例中,我们将使用命令重新安装"nano"这个软件包) 命令: # dnf reinstall nano – 回滚某个特定软件的版本 用处: 该命令用于降低特定软件包的版本 (如果可能的话) (本例中,我们将使用命令降低"acpid"这个软件包的版本) 命令: # dnf downgrade acpid DNF 包管理器作为 YUM 包管理器的升级替代品,它能自动完成更多的操作。但在我看来,正因如此,所以 DNF 包管理器不会太受那些经验老道的 Linux 系统管理者的欢迎。举例如下: ...

2020-04-26 · 2 min · 372 words · -

性能测试, performance testing

性能测试, performance testing 基准测试, benchmarking testing 性能测试, performance testing 测试系统在各种负载条件下的响应时间、吞吐量、资源使用等性能表现,以确保系统在预期的使用场景下能正常运行。 性能测试是什么: 性能测试就是通过特定的方式对被测试系统按照一定测试策略施加压力,获取该系统的响应时间、TPS、吞吐量、资源利用率等性能指标,来检测系统上线后能否满足用户需求的过程。 性能测试要统一考虑这么几个因素: Thoughput吞吐量/吞吐率,Latency响应时间,资源利用 (CPU/MEM/IO/Bandwidth…) ,成功率,系统稳定性。 并发数 并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。 响应时间 响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。响应时间是指执行一个请求从开始到最后收到响应数据所花费的总体时间。 吞吐量/吞吐率 吞吐量是指单位时间内系统能处理的请求数量,体现系统处理请求的能力,这是目前最常用的性能测试指标。 QPS (每秒查询数) 、TPS (每秒事务数) 是吞吐量的常用量化指标,另外还有HPS (每秒HTTP请求数) 。 跟吞吐量有关的几个指标是: 并发数、响应时间。 QPS (TPS) ,并发数、响应时间它们三者之间的关系是: QPS (TPS) =并发数/平均响应时间 响应时间 指的是客户发出请求到得到响应的整个过程的时间。在某些工具中,请求响应时间通常会被称为"TTLB"(Time to laster byte) ,意思是从发起一个请求开始,到客户端收到最后一个字节的响应所耗费的时间。 https://blog.wiloon.com/?p=16015 资源指标 CPU使用率: 指用户进程与系统进程消耗的CPU时间百分比,长时间情况下,一般可接受上限不超过85%。 CPU指标主要指的CPU利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。 CPU 利用率要低于业界警戒值范围之内,即小于或者等于75%; CPU sys%小于或者等于30%; CPU wait%小于或者等于5%; 内存利用率: 内存利用率=(1-空闲内存/总内存大小)*100%,一般至少有10%可用内存,内存使用率可接受上限为85%。 磁盘I/O: 磁盘主要用于存取数据,因此当说到IO操作的时候,就会存在两种相对应的操作,存数据的时候对应的是写IO操作,取数据的时候对应的是是读IO操作,一般使用% Disk Time(磁盘用于读写操作所占用的时间百分比)度量磁盘读写性能。 网络带宽: 一般使用计数器Bytes Total/sec来度量,Bytes Total/sec表示为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较。 系统指标 并发用户数: 某一物理时刻同时向系统提交请求的用户数。 在线用户数: 某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求。 平均响应时间: 系统处理事务的响应时间的平均值。事务的响应时间是从客户端提交访问请求到客户端接收到服务器响应所消耗的时间。对于系统快速响应类页面,一般响应时间为3秒左右。 ...

2020-04-21 · 1 min · 154 words · -

tcp reset, rst

tcp reset, rst 在谈 RST 攻击前,必须先了解 TCP: 如何通过三次握手建立 TCP 连接、四次握手怎样把全双工的连接关闭掉、滑动窗口是怎么传输数据的、TCP 的 flag 标志位里 RST 在哪些情况下出现。下面我会画一些尽量简化的图来表达清楚上述几点,之后再了解下 RST 攻击是怎么回事。 TCP是什么? TCP 是在 IP 网络层之上的传输层协议,用于提供 port 到 port 面向连接的可靠的字节流传输。我来用土语解释下上面的几个关键字: port到port: IP层只管数据包从一个IP到另一个IP的传输,IP层之上的TCP层加上端口后,就是面向进程了,每个port都可以对应到用户进程。 可靠: TCP会负责维护实际上子虚乌有的连接概念,包括收包后的确认包、丢包后的重发等来保证可靠性。由于带宽和不同机器处理能力的不同,TCP要能控制流量。 字节流: TCP会把应用进程传来的字节流数据切割成许多个数据包,在网络上发送。IP包是会失去顺序或者产生重复的,TCP协议要能还原到字节流本来面目。 从上面我用PowerPoint画的TCP协议图可以看到,标志位共有六个,其中RST位就在TCP异常时出现,也是我这篇文章重点关注的地方。 通过三次握手建立连接 下面我通过A向B建立TCP连接来说明三次握手怎么完成的。 为了能够说清楚下面的RST攻击,需要结合上图说说: SYN标志位、序号、滑动窗口大小。 建立连接的请求中,标志位SYN都要置为1,在这种请求中会告知MSS段大小,就是本机希望接收TCP包的最大大小。 发送的数据TCP包都有一个序号。它是这么得来的: 最初发送SYN时,有一个初始序号,根据RFC的定义,各个操作系统的实现都是与系统时间相关的。之后,序号的值会不断的增加,比如原来的序号是100,如果这个TCP包的数据有10个字节,那么下次的TCP包序号会变成110。 滑动窗口用于加速传输,比如发了一个seq=100的包,理应收到这个包的确认ack=101后再继续发下一个包,但有了滑动窗口,只要新包的seq与没有得到确认的最小seq之差小于滑动窗口大小,就可以继续发。 滑动窗口 滑动窗口毫无疑问是用来加速数据传输的。TCP要保证"可靠",就需要对一个数据包进行ack确认表示接收端收到。有了滑动窗口,接收端就可以等收到许多包后只发一个ack包,确认之前已经收到过的多个数据包。有了滑动窗口,发送端在发送完一个数据包后不用等待它的ack,在滑动窗口大小内可以继续发送其他数据包。举个例子来看吧。 大家看上图,标志位为.表示所有的flag都为0。标志位P表示flag为PSH的TCP包,用于快速传输数据。 前三个包是三次握手,客户端表示自己的滑动窗口大小是65535 (我的XP机器) ,服务器端表示滑动窗口是5840 (屏幕宽了,没截出来) 。从第四个包开始,客户端向服务器发送PSH包,数据长度是520字节,服务器发了ack确认包。注意此时win窗口大小发生了改变哈。以此类推。 倒数第二、三包,服务器在滑动窗口内连续向客户端发包,客户端发送的ack 124同时确认了之前的两个包。这就是滑动窗口的功能了。 如果谈到TCP攻击就需要注意,TCP的各种实现中,在滑动窗口之外的seq会被扔掉!下面会讲这个问题。 四次握手的正常TCP连接关闭 先画张简单的正常关闭连接状态变迁图。 FIN标志位也看到了,它用来表示正常关闭连接。图的左边是主动关闭连接方,右边是被动关闭连接方,用netstat命令可以看到标出的连接状态。 FIN是正常关闭,它会根据缓冲区的顺序来发的,就是说缓冲区FIN之前的包都发出去后再发FIN包,这与RST不同。 RST 标志位 RST 表示复位,用来异常的关闭连接,在 TCP 的设计中它是不可或缺的。就像上面说的一样,发送 RST 包关闭连接时,不必等缓冲区的包都发出去 (不像上面的 FIN 包) ,直接丢弃缓存区的包发送 RST 包。而接收端收到 RST 包后,也不必发送 ACK 包来确认。 ...

2020-04-16 · 5 min · 877 words · -

监控一个 APP 的 HTTPS 流量

监控一个 APP 的 HTTPS 流量 在家里的电视上安装了 Plex 但是因为众所周知的原因, 登录 Plex 账号的过程或者登录之后的网络请求遇到了些问题, 路由器上配置的透明代理配置文件有可能并没有考虑 Plex 常用的地址, 所以需要用一些工具来分析 Plex 发出了哪些网络请求. https://www.anquanke.com/post/id/86238 https://calebfenton.github.io/2017/05/27/monitoring-https-of-a-single-app-on-osx/ 拦截 HTTPS 流量 生成一个根证书 安装这个根证书 用 proxychains 去代理指定的 app 使用 mitmproxy 去拦截流量 安装并配置 proxychains # macOS brew install proxychains-ng 创建一个配置文件 # macos /Users/wiloon/.proxychains/proxychains.conf 然后加入以下内容 strict_chain quiet_mode proxy_dns remote_dns_subnet 224 tcp_read_time_out 15000 tcp_connect_time_out 8000 [ProxyList] http 127.0.0.1 8080 strict_chain: 按照列表中出现的代理服务器的先后顺序组成一条链,要求所有的代理服务器都是有效的 quiet_mode: Quiet mode (no output from library) proxy_dns: Proxy DNS requests - no leak for DNS data remote_dns_subnet: 设置内部 dns 解析地址返回 IP 的网段 ProxyList: 代理服务器列表 ...

2020-04-03 · 2 min · 349 words · -