博文

目前显示的是标签为shell的博文

Linux 在 screen 新建窗口时 自动开始记录日志

图片
上一篇我们学会了手动选择 screen 中的日志并保存为文件, 实现了超过一屏的日志导出. 不过操作略显繁琐. 进一步的, 我们可以设置 screen 在新建窗口时, 就自动开始记录日志. 操作如下: 编辑(或新建) ~/.screenrc 文件 内容为 deflog on logfile $HOME/screen-$STY.log 其中,  deflog on 意思是默认打开日志记录 $STY 意思是 screen 的窗口名称, 就是 screen -ls 显示出来的那个, 也是 screen -S 后面跟的那个. 这样你每次 screen 打开新窗口, 都会自动记录日志文件.  ======== 后记 这个方案的好处是, 在linux终端环境cat查看日志文件是可以显示带颜色的效果的. 但是, 如果以纯文本的方式打开, 就麻烦了. 可选的解决方案是 sed 过滤所有的颜色控制符. sed -r 's/\x1b\[[0-9;]*[mK]//g' screen-st.log 如果你有更好的方案, 欢迎在评论区交流.

Linux 在 screen 中 保存超过一屏的日志

图片
我们常常有一些"任务"需要在screen中执行, 这样当ssh登录中断的时候, 任务会保持运转. 比如,  酒馆SillyTavern 当我们screen -r重新连接到screen窗口时, 终端只能显示最后一屏的命令行日志内容. 用鼠标拖动滚动条是不能显示更早的内容的. 所以, 我们常用的 鼠标选择 + 复制 的操作不能保存超过一屏的日志内容. 我们可以这样保存日志. 1. 进入复制模式 Ctrl + A, [ 左方括号 2. 使用pageup键 pagedown键 上方向键 下方向键 移动光标 3. 使用空格键设置复制内容的起始点  4. 继续移动光标, 并再次使用空格键设置复制内容的结束点 会有提示信息, 复制了多少字符进入缓冲区 4. 进入命令模式 Ctrl + A, : 冒号 5. 用命令保存缓冲区的内容到文件 writebuf /root/log1.txt 保存成功也会有提示 好了. 现在你在任何地方, 即使是脱离了screen窗口, 也可以打开文件查看保存下来的日志内容了, 当然文件也可以被传输到你期望的任何地方. ======== 完

Linux 在 screen 中 查看日志 不能直接使用 pageup键 pagedown键 上方向键 下方向键 需要使用 Ctrl + A, [ 左方括号

图片
Linux 在 screen 中 有时候需要查看日志, 我们很自然地使用 pageup键 pagedown键 上方向键 下方向键.  但是结果是这样的: 问了一下GPT,  https://poe.com/s/oyqEcLEPsEw7VOs9obdE Linux 在 screen 中不能直接使用 pageup键 pagedown键 上方向键 下方向键 查看日志.  需要按 Ctrl + A, [ 也就是先按 Ctrl + A, 再按 左方括号键[ 这时, 终端会显示这样 然后就可以"照常"使用pageup键 pagedown键 上方向键 下方向键 查看日志了.

重装VPS系统时, 备份和恢复翻墙软件的配置文件 caddy v2ray xray hysteria2 / Caddyfile config.json config.yaml 域名证书

图片
以前写过 备份和恢复 Caddyfile config.json 但是, 因为VPS上搭了WSS模式(Websocket + TLS), 恢复之后需要把域名解析CDN关掉, 再启动caddy自动申请证书, 再把CDN打开. 今天又有一台VPS想恢复系统再重装. 我想把VPS上面的证书也备份下来, 这样整个过程就不涉及CDN操作了. 我在VPS上搭了这3种协议. WSS (Websocket + TLS) Reality Hysteria2 1. 备份操作 tar -czvf backup.tar.gz /etc/caddy/ /usr/local/etc/v2ray/ /usr/local/etc/xray/ /etc/hysteria/  /var/lib/caddy/.local/share/caddy/   /etc/ssl/private 其中, 最后一项  /etc/ssl/private 是我的 hy2 脚本生成自签证书的目录. 如果你的自签证书不是这个目录, 请自行修改. 其中, /var/lib/caddy/.local/share/caddy/ 是目前 caddy 保存证书的目录。 如果某个版本caddy不保存在这里了, 请自行修改. 使用 tar 工具来备份的原因是, 可以保存 linux 文件属性.  特别地, caddy 和 hysteria2 的证书文件需要有相应的用户使用权限. 2. 备份文件 backup.tar.gz 需要保存下来. 可以使用 Xftp (或者其它任何你用得顺手的工具) 3. 重装系统后, 用一键脚本安装各个程序和 service. 每个脚本执行到问你参数的时候, 就可以 Ctrl+C 结束掉. 如下, bash <(curl -L https://github.com/crazypeace/v2ray_wss/raw/main/install.sh) bash <(curl -L https://github.com/crazypeace/xray-vless-reality/raw/main/install.sh) bash <(curl -L https://github.com/crazypeace/hy2/raw/main/ins...

darkstat统计VPS上的流量

图片
感谢 https://0x3f.org/posts/darkstat-as-a-network-discharge-meter/ https://ilovn.com/2023/03/25/darkstat/ 安装 apt install -y darkstat 启用 darkstat -i 监听网卡 -p 网页端的端口号 如 darkstat -i eth0 -p 8964 页面端查看 http:// 你的vpsIP : 网页端的端口号 如 http:// 12.34.56.78 : 8964 效果类似下面这样 点 host 可以看到数字表格的统计信息. 点其中一条 可以看到更详细的信息. 能看到在本VPS上, 还有指定IP上, 分别用到了什么端口(包括TCP UDP), 以及分别跑了多少流量. 如果你有有更好的工具, 欢迎留言分享!

Linux nano 文本编辑器 用 Ctrl+K 删除一行

vi 编辑器中,  dd (连按两次 d 键) 就可以删除一行 觉得非常方便, 特别是在 SSH 比较卡的 VPS上 nano 编辑器适合小白使用, 我自己也觉得挺好, 自己也在用.  但是一直没找到快捷地删除一行的方式 后来, 某天在网上逛来逛去, 偶然发现 用 Ctrl+K 是剪切当前行, 当然当前行也删除了呗 所以就拿 Ctrl+K 当删除用了. 当然了, 副作用就是剪切板里面有东西了. 哈哈

更自由地使用 各种一键脚本(未裁剪)

 像我这样的小白们, 入门的第一步, 最常见的就是使用各种一键脚本先实现自己的基本需求. 接着随着时间的推移, 我们慢慢会觉得这些一键脚本有各种各样"不爽"的地方. 那么, 我们可以利用linux的文本修改工具sed, 达到查找替换, 添加, 删除等效果. 极简一键脚本带参数使用时, 跳过确认参数的步骤 bash <(curl -L https://github.com/crazypeace/xray-vless-reality/raw/main/install.sh | sed '/pause()\s*{/a return') 4 8443 原理解释  https://zelikk.blogspot.com/2024/10/cp-bash-skip-pause.html 强行重装233boysing-box脚本 bash <(wget -qO- -o- https://github.com/233boy/sing-box/raw/main/install.sh | sed '/err()\s*{/a return') 强行重装233boyv2ray脚本 bash <(wget -qO- -o- https://git.io/v2ray.sh | sed '/err()\s*{/a return') 强行重装233boyxray脚本 bash <(wget -qO- -o- https://github.com/233boy/Xray/raw/main/install.sh | sed '/err()\s*{/a return') 原理解释  https://zelikk.blogspot.com/2024/12/233boy-sing-box-install-err-skip.html 233boysing-box脚本安装完成后, 修改配置时强行跳过验证域名DNS解析报错 安装完后, 先执行 find /etc/sing-box/sh -type f -name "*.sh" -exec sed -i '/err()\s*{/a return' {} + 再按正常操作修改配置. 原理解释  https://zeli...

Linux上用socat进行网络环境测试 UDP端口

图片
前面介绍过怎么测试tcp端口, tcping https://zelikk.blogspot.com/2022/05/linux-socat-tcp-udp-ipv4-ipv6-localhost.html https://zelikk.blogspot.com/2024/09/socat-tcping.html 现在搭Hysteria2 HY2翻墙协议的越来越多, 那么我们怎么测试UDP端口是否正常工作呢? UPD 监听 还是用 socat socat -v UDP-LISTEN:端口号,fork PIPE socat -v UDP-LISTEN:4000,fork PIPE * 如果你的环境没有socat, 你需要安装一下 apt install -y socat 检测 网络在线检测 https://check-host.net/ 从另一个VPS Linux命令行检测 用到这个项目 https://github.com/wangyu-/UDPping 先下载测试脚本(python) wget -L https://github.com/wangyu-/UDPping/raw/refs/heads/master/udpping.py 执行方式为 python3 udpping.py IP地址 UDP端口 python3 udpping.py 134.195.211.170 4000 windows环境测试工具 https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/portqry-command-line-port-scanner-v2

Linux sed 命令添加多行文本 写在一行命令里

图片
TL;DR sed ' /要搜索的内容/   a  第1行 \\n 第2行 \\n 第3行' kejilion的脚本, 考虑使用者有可能在墙内, 或者是纯ipv6的网络环境,  1) 在Docker包管理器时会使用国内的源,  2) 在获取 github 资源时, 会加上 ghproxy. 脚本会根据一些条件来帮助使用者进行判断, 是否应该使用这些特殊处理. 但是, 使用者的环境千奇百怪, 脚本的判断并不一定是最优的处理. 那么群里就会冒一条消息. 唉呀, 脚本卡住啦, 脚本出错啦, 求求大神快来解救我呀. 如果我们不想等"大神"来救, 那么我们可以自己决定是否要做这些特殊处理. 思路和 以前类似 , 也是用sed修改文本流的内容, 再灌到bash里面去执行. 我们要在文本中找到 quanju_canshu() { 然后在下面添加3行 zhushi=0 gh_proxy="https://gh.kejilion.pro/" return 当然了, 根据你的需求, 这2个参数的值是可以修改的. 比如, zhushi=1, 或者 gh_proxy="" 到此为止, 和以前都差不多, 写一篇文出来太水了. 我想写文的原因是, 如何使用sed添加多行文本, 写在一行命令里. 要用sed添加多行文本, 我找到的资料都是写成多行命令的, 我的意思是这样的: https://www.runoob.com/linux/linux-comm-sed.html man sed 查出来的官方帮助文档 a \ - append - 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用\续行 但是, 如果我要基于 bash <(...) 的模式修改, 我想还是保持一行命令的形式, 应该怎么写呢? 又经过一些搜索和尝试, 在 sed v4.9 版本下, 我实践成功的写法是这样的 sed ' /要搜索的内容/ a 第1行 \\n 第2行 \\n 第3行' 其中 /***/ 就是 搜索并定位 的功能, a 就是在下1行添加文本  的功能, \\n 实现了换行符. 回到我们的原始问题. bash <( curl -L "https://gh.kejilion.pro/h...

Linux上用socat进行网络环境测试 从外部测试TCP端口是否可用

图片
上一篇 里介绍了怎么在linux环境测试端口是否可用.  可以从 B linux VPS去测试 A linux VPS. 但是当我们使用常用的第三方测试 tcping.ping.pe, 或者从自己本地发起 tcping 测试 ( https://github.com/pouriyajamshidi/tcping ). 会遇到一个问题, socat 监听的端口只能连接一次. socat tcp4-listen:端口号 - 换句话说, tcping测试只有第一次连接成功, 然后linux端可以看到 socat 运行结束了, tcping也会看到后续测试都是失败的.

屏蔽 kejilion 脚本上传信息

图片
如果你不喜欢 kejilion 的脚本默认打开上传信息 打开脚本, 找到 send_stats() { 在下面一行写上 return 再保存, 就行了. 

屏蔽 kejilion 脚本同意许可协议

图片
如果你不喜欢 kejilion 的脚本要同意许可协议才能使用 打开脚本, 找到 UserLicenseAgreement() { 在下面一行写上 return 再保存, 就行了. 

解密rwkgyg-CFwarp脚本 原理与实践

图片
wget -N https://gitlab.com/rwkgyg/CFwarp/raw/main/CFwarp.sh 看第一眼, 就是 上次的加密方法 . 用上次的方法解密,  bash <(curl https://gitlab.com/crazypeace/tuic-yg-unpack/-/raw/main/unpack.sh) CFwarp.sh 发现脚本为分2部分. 前面部分是安装 bzip2, 后面部分是下载这个脚本并执行 wget -qN https://gitlab.com/rwkgyg/CFwarp/raw/main/1CFwarp.sh 那么就是说, 这个 1CFwarp.sh 才是本体. 下载了打开看一看.

bash脚本创建临时文件和目录 并在执行后删除 | 获取bz2-shell项目生成的临时解压文件

图片
有一种脚本加密的方法是通过 bzip2 加密后的脚本整体分为2部分, 前面部分是通用的解压流程, 后面部分是原脚本用bzip2压缩后的数据. 项目: https://github.com/FajarKim/bz2-shell 加密后的脚本示例: https://gitlab.com/rwkgyg/CFwarp/-/blob/main/1CFwarp.sh

Linux 命令行 curl 用POST方法 调用图床系统 API 添加二进制文件

图片
之前, 我们利用pastebin系统实现了用API添加文本文件 . 如果我们想保存二进制文件, 要怎么办呢? 这里, 我们利用图床系统imghost.

Linux 命令行 curl 用POST方法 调用pastebin系统 API 添加文本文件

图片
我们已经有了 利用免费worker搭建的短链系统 , 通过 配置参数设置为网络记事本 Pastebin , 用于保存自己的翻墙节点订阅信息, 或者是clash的配置文件. 在某些场景下, 你在Linux环境下已经有了订阅信息的文件(或者clash的配置文件), 不想搞什么复制粘贴, 鼠标点点点, 就想命令行直接一键上传到短链系统(网络记事本 Pastebin)中. 那么, 可以使用 curl 命令, 用POST方法 调用短链系统的 API

修改systemctl Service配置文件 要在 xxxx.service.d/ 目录下添加 .conf 文件

图片
今天 重装VPS , 在备份 xray 和 v2ray 配置文件时候, 因为都是 config.json, 保存的时候就改了下文件名. 比如叫, xray.json, v2ray.json. 恢复时候, 冒出个奇怪的想法, 传上去就不改回 config.json 了, 想通过修改 service 文件来加载 xray.json, v2ray.json 没想到踩了一个systemctl Service配置文件修改的坑。

vnstat 统计 VPS 流量

安装 apt install -y vnstat 运行一段时间后, 不带参数查看默认网卡流量 vnstat

解密tuic-yg脚本 原理与实践 同理naiveproxy-yg

图片
wget -N https://gitlab.com/rwkgyg/tuic-yg/raw/main/tuic.sh 下载一看, 第一眼感觉像是乱码.

grep -oP仅显示符合正则表达式的部分, 每个一行, 特别是在一行中有多个命中的情况

图片
上一篇在blkid的结果中查找UUID 时,  我们把UUID的目标正则表达式设置为 ([^-]{8}-[^-]{4}-[^-]{4}-[^-]{4}-[^-]{12}

The Hot3 in Last 30 Days

RackNerd VPSXray Reality梯子 年付 $10.98 1G端口 3T流量 17G存储 1GB内存

面对镜子 使用工具 戴隐形眼镜

Windows cmd命令行 关闭系统代理