分类 Linux 下的文章

我有一台 mac mini m2,本来是放在办公室用的,但发现还是带笔记本更方便,所以就闲置了。
家里已经有了群晖 nas,所以暂时也没有用途了。

这两年 AI 很火,就琢磨着可以搞个相关的小服务放在 mac mini 上跑,然后对外提供接口,这就需要打通网络。

调研了一番,还是选择了以前用过的 frp

环境准备

客户端是我的 mac mini,系统是最新版的 macOS 15.4。

服务端是我的阿里云 ECS,系统是 ubuntu 22.04。

下载好 frp,目前最新的版本是 v0.62.0

服务端下载 frp_0.62.0_linux_amd64.tar.gz,解压后放到 /opt/frp 目录。

客户端下载 frp_0.62.0_darwin_arm64.tar.gz,解压后放到 /Users/tony/apps/frp 目录。

- 阅读剩余部分 -

这几天我的一台小服务器卡的不要不要的,重启之后虽然不卡了,但过个几天,又卡成翔了。

研究了一下,发现 CPU 占用并不高,问题是内存不够用,看来是部署的服务太多了。

由于是阿里云搞活动买的 99 一年的 ECS ,只有 2G 的内存,部署了 redis、mysql、gitea,还跑了两个版本的 php-fpm,用 ps aux --sort=-%mem | head -n 11 命令查看了一下内存大户,mysql 毫无疑问排在了第一。

秉持着榨干服务器最后一滴价值的原则,果断给服务器加了 2G 的交换内存。

下面是操作步骤:

- 阅读剩余部分 -

因为国补叠加官网起售价降低,没忍得住下手换了 M4 的 MacBook Air。

在配置环境的时候,发现我的 CroWall 笔记站里找不到 iTerm2 的 zmodem.sh 相关配置了——我记得我已经记录过好几次了,不知道为什么这里没有,可能是上次迁移网站的时候漏了?

不管了,今天补一下。


首先是安装 iTerm2,到 官网 下载最新的 iTerm2-3_5_12.zip,解压后移动到应用程序里,完成安装。

下载脚本,移动到合适的位置

从 GitHub 的 robberphex/iTerm2-zmodem 仓库下载脚本,如果无法下载可以直接点击下面本站保存的版本。

- 阅读剩余部分 -

今天突然发现向我的服务器提交代码非常慢,巨慢,然后测试版的应用请求响应也非常慢,一开始以为是网络问题,但登录服务器一看,发现 CPU 很忙。

2核2G 的 Ubuntu,load average: 1.93, 0.99, 0.55。

排名第一的进程是 kswapd0,问了一下 kimi,得到的回答是:

kswapd0 是 Linux 系统中的一个内核线程,主要负责虚拟内存管理中的换页操作。当系统的物理内存不足时,kswapd0 会执行换页操作,将一些不常用的内存页从物理内存移动到磁盘上的交换空间(swap space),以释放物理内存供其他进程使用。这个过程会消耗大量的 CPU 资源,因此如果 kswapd0 进程占用 CPU 过高,通常意味着系统正在进行大量的换页操作,可能是因为物理内存不足。

- 阅读剩余部分 -

修改 Nginx 配置时,报错:

$ nginx -t
nginx: [warn] conflicting server name "crowall.com" on 0.0.0.0:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

出现 Nginx 报错 "conflicting server name" 通常意味着在 Nginx 配置中有两个或更多的 server 块使用了相同的 server_name 指令。

我的服务器是 ubuntu 22.04,安装默认的 nginx 1.18.0,所有的 server 都在 /etc/nginx/sites-enabled 目录下。

所以问题就变成了:找出 /etc/nginx/sites-enabled 目录里所有配置了这个域名的文件。

如果只有两三个 server 配置文件,一个个看也没问题,不过我的 server 比较多,所以就需要使用 grep 命令。

grep -r "crowall.com" /etc/nginx/sites-enabled/

-r 表示如果下面有子目录也会扫描。

执行完就可以看到冲突的两个配置文件了,非常方便。

国内的服务器有个蛋疼的问题:下载一些国外的依赖时非常慢甚至被墙。

比如 github 上的那些开源软件,下载速度只有十几K,甚至下不了。
再比如 packgist 至今都是被墙的,只能使用国内的镜像。

以前尝试过给服务器装个 v2ray 走代理,结果被云厂商扫描出来了,还给警告了一下。

怕被停服,不敢装了。

其实有个好办法就是使用 ssh -R 命令,将本地的代理端口共享给服务器,让服务器走你本地的代理去访问国外网站。

使用 ssh 连接服务器的时候,使用以下命令:

ssh -R 本地端口:本地主机:远程端口 用户名@远程主机

- 阅读剩余部分 -

之前一直使用 acme.sh 手动搞,非常麻烦,而且现在又被墙了,更加麻烦。

使用 Certbot,分分钟搞定,并且后续也不需要任何操作,全部自动化了,省心省力。

我服务器使用的是 Ubuntu + Nginx,在 Certbot 官网上选择一下,就可以看到专用的教程了:

2024-03-05T18:43:44.png

根据教程,执行以下步骤:

Certbot 官网: https://certbot.eff.org/

- 阅读剩余部分 -

今天给新开的阿里云主机(系统是 Ubuntu 22.04)安装一个私有的 git 仓库,选用 Gitea。

结果发现 apt 下没有这个软件包。想起来 ubuntu 开始用 snap 了,于是用 snap 试试。

root@ubuntu:~# snap install gitea
gitea v1.21.2 from Gitea installed

果然好使。

检查了一下,发现已经跑起来了。

ps aux | grep gitea
root      231929  1.4  9.8 1916768 171100 ?      Ssl  12:45   0:03 /snap/gitea/6697/gitea web

- 阅读剩余部分 -