Sunshine & Moonlight实现串流传输
有时希望将家里的投影仪作为电脑显示器及音响,但是重新布线却很麻烦,这时使用串流传输就可以轻松解决。开源方案就是:Sunshine & Moonlight,它可以实现低延迟、高画质的跨平台串流体验。 简介Sunshine简介Sunshine是一个开源的串流服务器软件,可以安装在Windows、Linux等系统上。它的主要功能包括: 捕获屏幕画面和音频 对画面进行编码压缩 通过网络传输给客户端 Sunshine支持多种编码格式,如H.264、HEVC等,可以根据网络状况自动调整画质。 Moonlight客户端Moonlight是与Sunshine配套的客户端软件,支持Windows、Android、iOS等多个平台。它可以接收Sunshine传输的画面,并进行解码显示。Moonlight的主要特点包括: 低延迟:延迟可低至20ms 高画质:支持4K 120FPS串流 跨平台:支持PC、手机、平板等设备 手柄支持:可使用手柄控制远程设备 部署与配置SunShine安装SunShine部署在远程被控制电脑上,下载对应系统的安装包,直接安装运行即可。Sunshine下载:h...
Vault常见操作
Hashicorp Vault 是一个基于身份的秘密和加密管理系统,用于严格控制访问各种机密数据,如 API 加密密钥、密码和证书。以下是 Vault 的一些常见使用操作。 Login12$ export VAULT_ADDR='http://your-vault-address:8200'$ export VAULT_TOKEN='your-vault-token' Secret操作 secret引擎KV Pathregion/cluster/project/application Keydevops-api fieldk-name valuek-value 查看权限 1$ vault token lookup 新建kv 12345$ vault secrets enable \ -path=/git-av \ -description "k/v engine for the quickstart guide" \ -version=1 \ kv 查...
Lego签SSL证书
HTTPS已经成为当今网站的标准配置,为网站提供加密和身份验证功能。但是申请和维护SSL证书一直是一个繁琐的过程。幸运的是,Lego这个强大的工具可以帮助我们轻松地自动化获取和更新Let’s Encrypt免费SSL证书。 Lego 简介Lego是一个用Go语言编写的Let’s Encrypt客户端,它可以帮助我们自动化完成SSL证书的申请、验证和更新过程。相比于其他工具,Lego的优势在于: 支持多种验证方式,包括HTTP和DNS验证 集成了众多DNS服务商的API,可以自动完成DNS验证 使用简单,只需几个命令即可完成证书申请 支持通配符证书 安装 Lego mac 1brew install lego docker 1docker run goacme/lego -h 签发rout53证书 配置AWS密钥 123export AWS_ACCESS_KEY_ID=xxxexport AWS_SECRET_ACCESS_KEY=xxxexport AWS_REGION=us-east-1 生成ssl证书 1lego --email xhuaustc@gmail...
selenium+Xvfb+ffmpeg实现服务器录屏
在现代软件开发中,自动化测试变得越来越重要,而录屏功能则为测试结果的验证提供了直观的方式。通过结合Selenium、Xvfb和FFmpeg这三个强大的工具,我们可以在服务器上实现无头(headless)的录屏环境,这对于没有图形界面的服务器尤其有用。 Selenium是一个自动化测试工具,它可以模拟用户对网页的操作,如点击、输入文本等。Xvfb(X虚拟帧缓冲)提供了一个虚拟的显示环境,使得我们可以在不需要实际显示器的情况下运行图形应用程序。FFmpeg是一个强大的多媒体框架,能够处理视频和音频的录制、转换和流式传输。 将这三个工具结合起来,我们可以创建一个自动化的录屏流程,这个流程可以在后台运行,录制Selenium驱动的浏览器会话。这样,无论是进行自动化测试验证,还是生成用户操作教程,都可以通过这种方式来实现。 例如,我们可以使用Selenium启动一个浏览器会话,然后用Xvfb创建一个虚拟的显示环境来捕获这个会话的屏幕。接着,使用FFmpeg开始录制屏幕内容,直到测试完成。这个过程完全自动化,可以集成到持续集成/持续部署(CI/CD)的流程中,提高开发效率...
常用的Tcpdump命令
监控某一网络接口的数据包 1tcpdump -i eth0 查看dns解析的包 port domain 1tcpdump -i eth0 -nt -s 500 port domain -t 不显示时间-n 不会将ip显示为hostname 过滤IP 12345tcpdump -i eth0 host 202.22.22.22tcpdump -i eth0 src host 202.22.22.22 ## 指定源地址tcpdump -i eth0 dst host 202.22.22.22 ## 指定目的地址tcpdump -i eth0 host 202.22.22.22 and \(202.22.22.21 or 202.22.22.20 \) ## 获取202.22.22.22 与 202.22.22.21或202.22.22.20之间的包tcpdump -i eth0 host 202.22.22.22 and !202.22.22.21 ## 获取202.22.22.22 与 除了202.22.22.21 之外的ip之间的包 过滤端口 port...
Jenkins Pipeline局部变量
变量未定义在编写Jenkinsfile时,经常会遇到变量问题,明明已经定义过了,但是函数是就是无法读取。例如: 123456789101112131415161718def some_var = "some value"def pr() { def another_var = "another " + some_var echo "${another_var}"}pipeline { agent any stages { stage ("Run") { steps { pr() } } }} 将获得如下错误: 1groovy.lang.MissingPropertyException: No such property: some_var for cla...
nginx stream代理多个网站
在一些特殊场景下,尤其是多网络区的环境中,难免使用proxy来代理请求。其中HTTPS会提供更安全的数据传输,同时也添加了代理配置的复杂性(特别是证书的管理)。 通过nginx ngx_stream_ssl_preread_module模块,可以使用四层代理代理不同的服务。它允许从 ClientHello 消息中提取信息,而不会终止 SSL/TLS,例如提取通过 SNI 请求的服务器名称并保存在变量$ssl_preread_server_name中,于是我们可以通过对该变量进行转发请求到对应的上游服务。 配置示例如下: proxy 1配置: 12345678stream { server { listen 443; resolver 8.8.8.8; proxy_pass 10.0.0.4:10443; ssl_preread on; }} proxy 2 配置 123456789101112131415161718192021stream ...
Ansible kubernetes.core 模块的使用
介绍Ansible Guide: https://docs.ansible.com/ansible/latest/collections/kubernetes/core/index.html#description code: https://github.com/ansible-collections/kubernetes.core 模块列表:https://github.com/ansible-collections/kubernetes.core#modules kubernetes.core可以自动化管理kubernetes或openshift集群的应用与资源对象,以及集群的运维管理。 该collection环境要求:kubernetes >= 1.19python >= 3.6ansible >= 2.9.17 Moduleskubernetes.core collection包含有多个模块插件:inventory plugin, lookup plugin, connection plugin, K8s filter p...
Bash中的换行
换行在平常的shell编程中是经常遇到的,但是有时也会忽略掉一些问题。本篇中将会介绍多种方式实现输出换行的方法。 使用 echoecho 自带换行echo 命令输出字符串,在最后后会添加一个换行 123root@Michael:~# echo hello worldhello worldroot@Michael:~# 添加 -n 可以禁用echo最后的换行 12root@Michael:~# echo -n hello worldhello worldroot@Michael:~# 换行符”\n”但是当我们使用bash执行以下命令时,发现它并没有换行 123root@Michael:~# bash -c "echo \"\n\""\nroot@Michael:~# 而是需要加一个 -e 1234root@Michael:~# bash -c "echo -e \"\n\""root@Michael:~# 从echo的说明中可以看到 -e 指的是让转义符生效,其中有: 1234567891011121...
OpenResty
什么是OpenRestyOpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。可用于实现: 路由控制 高并发入口 动态服务降级 动态负载均衡 WAF应用防火墙 安装OpenResty 二进制安装 123[root@localhost ~]# yum-config-manager --add-repo https://openresty.org/yum/cn/centos/OpenResty.repo[root@localhost ~]# yum install openresty -y[root@localhost ~]# systemctl start openresty Docker 安装 1docker run -e KEY_ENV --name proxy --rm -p 443:443 -p 80:80 -v ~/openresty/:/etc/nginx/ docker.io/op...









