============
== 白菜 ==
============
一个勤奋的代码搬运工!

甲骨文Vps iptables 开放端口设置

linux vps oracle iptables
在甲骨文的网页后台先开放端口 iptables 开放所有端口 sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -F Oracle自带的镜像默认设置了Iptable规则,关闭它 sudo apt-get purge netfilter-persistent && sudo reboot 测试端口是否已经开放 附注: 强制删除规则 sudo rm -rf /etc/iptables && sudo reboot 删除oracle-cloud-agent,防止甲骨文监控 snap remove oracle-cloud-agent 检查防火墙服务状态 sudo systemctl status iptables.service sudo systemctl status netfilter-persistent.service 远程检测端口开放状态 nmap ip或域名 附注2(开放指定端口): iptables 开放指定端口 iptables -I INPUT -p tcp --dport 80 -j ACCEPT 中间的 80 为所需要开放的端口,tcp 为传输协议 Read more...

Docker 搭建MTProto协议上网

Docker mtproto
系统环境: Debian系(其他系只需要更换apt为对应系统的软件包管理工具名称即可) 安装Docker 安装Docker相关工具 sudo apt update && sudo apt -y upgrade && sudo apt install -y docker docker.io docker-compose 启动docker sudo systemctl enable docker && sudo systemctl start docker 验证是否安装成功 sudo docker run hello-world mtg v2版本 docker运行 生成密钥 sudo docker pull baicailin/mtg sudo docker run --rm baicailin/mtg generate-secret --hex trade.aliexpress.com #会看到一串ee开头的密钥,形如: eexxx44f3762c8a97d14f89df8c0174726164652e616c69657870726573732e636f6d 写入简单配置 echo "secret = \"把上面一步生成的密钥填进来\"" >config.toml echo "bind-to = \"0.0.0.0:443\"" >>config.toml 运行docker镜像命令 sudo docker run -d -v $PWD/config. Read more...

docker golang:alpine CGO 制作镜像的正确姿势

Docker Golang
当程序需要引入C/C++库(比如支持Sqlite数据库)的时候,编译环境需要打开CGO,否则打包完成后的程序就不能顺利运行(数据库初始化失败)。 这时就需要安装 build-base 配置编译环境。 参考 Dockerfile 如下: FROM golang:alpine as builder ENV CGO_ENABLED=1 WORKDIR /app COPY . . RUN apk add --no-cache --update git build-base RUN go mod tidy \ && go build -o api_client_linux ./cmd/api_client/ FROM alpine:latest as runner ENV TZ=Asia/Shanghai RUN apk --no-cache add ca-certificates tzdata libc6-compat libgcc libstdc++ WORKDIR /app COPY --from=builder /app/api_client_linux . VOLUME /app/conf EXPOSE 8080 ENTRYPOINT ["./api_client_linux" ,"-c","/app/conf/config.yaml"] 运行镜像我们也使用 Alpine ,由于 Alpine 极为精简,并没有常用的时区、证书等,会导致不可预料的错误。所以我们需要安装这些东西: 包名 用途 ca-certificates: CA证书,使用TLS tzdata: 时区配置 libc6-compat: C 标准库 libgcc: GCC 相关库,CGO编译程序依赖 libstdc++: C++ 标准库

网站迁移完成

网站维护记录
实施: hugo + github action + git pages + cloudflare 目前通过本地 vscode 写完日志后,直接推送到 github 私有仓库,通过 github action 生成静态内容自动推送到 github pages 仓库,完成部署。 静态内容存放: github pages 域名解析使用: cloudflare 附注: github pages 自定义域名 解析设置(支持A记录) https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site

SSH使用ProxyCommand通过代理服务器远程连接其他服务器

ProxyCommand ssh linux
OpenSSH的客户端有一个 ProxyCommand 的选项,用于 SSH 客户端与服务器之间的隧道通信(tunneling)。所谓的隧道技术,也称代理技术,是网络通信技术的一个普遍概念,就是把一条信道建立于另外一条信道之上。 SSH 会话基于一个 TCP 连接,如果我们把连接的两个端口各自的出口(也即入口)进行截获,就可以用其它的信道来传输。而且 SSH 仍然认为它用的是和另一端连接一条 TCP 连接。 ProxyCommand 指定一个命令(称为 Proxy),SSH 客户端将通过标准输入输出和这个命令启动后的进程进行正常的 SSH 通信,而 Proxy 连接着 SSH 服务器(一般是一个 Server Proxy,再由该 Server Proxy 连接服务器)。 环境说明 远程服务器的IP地址为 0.0.0.1,代号为X; 另一个远程服务器的IP为 0.0.0.2,代号为Y; 目前本机的IP地址为 0.0.0.3,代号为A,本地可以利用SSH客户端通过密钥或密码连接X和Y; 这里全部使用密钥的方式进行访问,本机 A 与 Y 之间无法进行访问。 本地的 ~/.ssh/config 的配置文件信息如下,通过X连接到Y; Host X HostName 0.0.0.1 User root Port 22 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_1 Host Y HostName 0.0.0.2 User root Port 22 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_2 Host test HostName 0. Read more...

检查网络延时测试 URL 汇总,可用于软件测试延时

技术分享
服务提供者 链接 大陆体验 境外体验 http/https IP Version 备注 Google http://www.gstatic.com/generate_204 5 10 204/204 4+6 Google网络联通性测试地址 Google http://www.google-analytics.com/generate_204 6 10 204/204 4+6 Google网络联通性测试地址 Google http://www.google.com/generate_204 0 10 204/204 4+6 Google网络联通性测试地址 Google http://connectivitycheck.gstatic.com/generate_204 4 10 204/204 4+6 Google网络联通性测试地址 Apple http://captive.apple.com 3 10 200/200 4+6 苹果设备用于检测 Wi-Fi 是否需要认证登陆的链接 Apple http://www.apple.com/library/test/success.html 7 10 200/200 4+6 苹果设备用于检测 Wi-Fi 是否需要认证登陆的链接 MicroSoft http://www.msftconnecttest.com/connecttest.txt 5 10 200/error 4 微软的网络联通性测试地址 Cloudflare http://cp.cloudflare.com/generate_204 4 10 204/204 4+6 Cloudflare的联通性测试地址 Firefox http://detectportal. Read more...

Hugo + GitHub Action + Github Pages,搭建博客自动发布

技术分享 hugo github action bash blog
我的方案由以下两个核心部分: 博客源仓库,对博客配置及所有文章 .md 源文件进行版本管理,配合 GitHub Action 进行自动化部署,自动生成静态站点推送到 GitHub Pages 博客发布仓库。 GitHub Pages 博客发布仓库,使用 GitHub Pages 实现网站部署,可以通过域名 CNAME 解析使用自定义域名。 使用 Hugo 搭建博客 Hugo 是用 Go 实现的博客工具,采用 Markdown 进行文章编辑,生成静态站点文件,支持丰富的主题配置,也可以通过 js 嵌入像是评论系统等插件,高度定制化。除了 Hugo 外, 还有 Gatsby、Jekyll、Hexo、Ghost 等选择,实现和使用都差不多,可以根据自己的偏好进行选择。 安装 Hugo 我使用的是 macOS,所以使用官方推荐的 homebrew 方式进行 hugo 程序的安装,其他系统可参考官方文档。 brew install hugo 完成后,使用以下命令进行验证(查看版本号): hugo version 创建 Hugo 网站 hugo new site blog-demo 配置主题 创建我们的站点后,需要进行主题配置,Hugo 社区有很丰富的主题,可以通过官网 Themes 菜单选择自己喜欢的风格,查看预览效果,选择后可以进入主题项目仓库,一般都会有很详细的安装及配置说明。下面我就以我目前在使用的 smol 这个主题为例,演示一下配置流程。 cd blog-demo git clone [email protected]:colorchestra/smol.git themes/smol cd themes/smol rm -rf . Read more...

从 Debian 11 升级到 Debian 12

debian
如果有必要,可以查阅(Debian 12 发行说明)[https://www.debian.org/releases/stable/releasenotes],内附详细的升级和错误处理指南。 准备工作 一定要备份重要数据! 以下操作需要在 root 用户下完成,请使用 sudo -i 或 su root 切换到 root 用户进行操作 Debian 软件源一般以发行代号如:bullseye、bookworm 引用,但是也可能使用状态名如:stable、unstable、testing 引用。在 Debian 12 稳定版正式发布后,stable 就会从 bullseye 指向 bookworm 了。 检查软件源,确保下面的输出为空,否则请手动更改软件源为 bullseye cat /etc/apt/sources.list | grep stable 更新 apt 源,替换 bullseye 为 bookworm: sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/*.list 对于 Debian 12 以后的版本,所有 Debian 可以分发的打包的非自由固件二进制文件(non-free),比如某些驱动,都被转移到 Debian Archive 中的一个新组件,称为非自由固件(non-free-firmware)。如果您从旧版的 Debian 升级,并且需要这些固件二进制文件,您应该更新您系统上的 /etc/apt/sources.list,以使用这个新组件(来源): sed -i 's/non-free/non-free non-free-firmware/g' /etc/apt/sources.list 默认的系统 apt 源文件 /etc/apt/sources.list 应该是类似这样的: Read more...

Linux 命令

Shell脚本 linux
基本命令 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验内存使用 cat /proc/swaps 显示哪些swap被使用 cat /proc/version 显示内核的版本 cat /proc/net/dev 显示网络适配器及统计 cat /proc/mounts 显示已加载的文件系统 lspci -tv 罗列 PCI 设备 lsusb -tv 显示 USB 设备 date 显示系统日期 cal 2007 显示2007年的日历表 date 041217002007. Read more...

Mac 常用命令

Shell脚本 mac
查看指定端口的进程 sudo lsof -i :5353 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mDNSRespo 185 _mdnsresponder 6u IPv4 0x1111111111111 0t0 UDP *:mdns mDNSRespo 185 _mdnsresponder 7u IPv6 0x1111111111111 0t0 UDP *:mdns 根据进程名称 ps -ef | grep mDNSRespo 65 185 1 0 8:08上午 ?? 0:26.69 /usr/sbin/mDNSResponder 0 223 1 0 8:08上午 ?? 0:02.16 /usr/sbin/mDNSResponderHelper 501 66848 66623 0 11:00下午 ttys000 0:00.00 grep mDNSRespo 根据PID杀进程: sudo kill -9 185
Previous Page 3 of 8 Next Page