Featured image of post 服务器配置备忘录

服务器配置备忘录

目录

写这篇文章的目的是我有个囤服务器的坏毛病,服务器越来越多,每次配置服务器总是有一些重复的步骤,这里将它们记录下来,以备下次使用。

(最近心水了Ansible这个工具,不过还没学会,所以这个教程还是用得上的)

Centos新建用户并赋予SUDO权限

1
2
3
4
nusername=newuser
useradd -m -s /bin/bash $nusername
sudo usermod -a -G wheel $nusername
passwd $nusername
SHELL

Centos防火墙配置

参考链接: https://go.opensl.life/gV4IY

防火墙配置

1
2
3
4
sudo yum install firewalld
sudo firewall-cmd --state #防火墙状态 running 
sudo systemctl start firewalld
sudo systemctl enable firewalld
SHELL

打开端口 上面说明都是通过服务的配置文件打开端口,但是有时候不是所有服务都带有配置文件。在这种情况下,您有两种选择。您可以打开指定的端口,也可以定义新的FirewallD服务。

例如,Plex服务器监听TCP协议32400端口,可使用–add-port=选项在当前会话的public区域中打开32400端口。

协议可以是tcp或udp。要验证是否已成功添加32400端口,请使用–list-ports选项列出已打开的端口。

要在重新启动后使端口32400保持打开状态,请使用–permanent选项运行相同的命令,将规则添加到配置文件中。

删除端口规则的语法与添加端口时的语法相同。只需使用–remove-port选项即可。

1
2
3
sudo firewall-cmd --zone=public --add-port=32400/tcp #打开端口
sudo firewall-cmd --zone=public --list-ports #列出
sudo firewall-cmd --zone=public --remove-port=32400/tcp #
SHELL

将本地用户添加到docker用户组

转载于: 添加用户到docker用户组 - 以无 root 权限的方式使用 docker

Docker daemon 绑定的是 Unix socket,这就导致 docker 需要 root 权限才能使用,但这十分麻烦,因为其他用户必须经常使用 sudo。 为此,docker daemon 创建 Unix socket 时,会允许所有 docker 组内成员访问,所以我们只需要将用户加入 docker 组内就可以避免使用 sudo。

  1. 创建 docker 组:sudo groupadd docker
  2. 将用户加入 docker 组内:sudo usermod -aG docker $USER
  3. 重新登录

一些好用的self-host服务

dockge 和 uptime-kuma 配置

参考文档: https://go.opensl.life/u8GXM

以前自己要起服务总是会去捣鼓容器镜像,但是最近越来越喜欢使用简单的可视化操作,于是dockge这个应用出现在了我每台服务器上。

可以使用容器化部署该应用,具体的方法这里不会详述,主要介绍该应用在我的qnap上进行反向代理的时候出现的问题,主要是在npm上配置反代后一直504,后来看后台,dockge压根没有收到请求。

要点如下:

  • 在配置该应用反代时,切记打开websocket选项
  • 第二就是npm需要和dockge做桥接

docker镜像

因为一些原因,我们都知道最近的docker hub国内镜像都挂掉了,目前是采用自建镜像的方案。

下面的仓库给了一些自建的整套软件,可以参考参考。

参考仓库:https://go.opensl.life/bTHmv

在使用国内服务商的服务器时,还需要配置docker-ce镜像,centos可使用如下命令:

1
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
SHELL

参考文档:https://go.opensl.life/k2M6g

Nginx-Proxy-Manager 添加 media type

常常会有一些新文件类型添加到了本地文件托管服务中,如果不正确配置media type,那么也许你从链接访问时就会直接变成下载。亦或者,在hugo等使用该连接时,hugo也无法处理该文件的MediaType。

从这里,可以看到配置content type的方法 > https://nginxproxymanager.com/advanced-config/#custom-nginx-configurations

也就是说,我们需要在http头中添加你需要支持的文件类型,下面是一个文件示例。

content/zh-cn/notes/devel/server-setup/http_top.conf
CONF
types {
    application/wasm wasm;
    image/avif avif;
}

WIN10 和 WIN11 跳过联网激活

前几天在M系列macbook上安装windows虚拟机,系统初始化时候无论如何也无法连接网络,查了一下才知道需要进了系统以后安装vmware-tools才可以联网。反过来讲,最新的Windows系统又要求必须要联网才可以激活进入系统。于是,就有了这么一条。

WIN10 和 WIN11 初始化配置或重装系统时,正常安装进度时会提示登陆微软帐号,不得不说这个步骤非常不友好,那我们如何跳过强制登陆微软帐号安装系统呢,可按以下步骤:

1、开机看到安装画面,同时按 Fn+Shift+F10,调出命令提示符窗口,输入 OOBE\BYPASSNRO 回车(不区分大小写);

2、等待重启即可选择 “我没有 Internet 连接”, “继续执行受限设置” 即可跳过联网激活;

3、按个人喜好自己设置即可看到 Windows 界面。

小盘鸡垃圾清理

linux-trash-clean

转载于: Linux 清理磁盘空间常见操作

#linux

使用如下方式可以清理 Linux 的绝大部分垃圾。

清理 journal 日志

一般可以清理 2~3 GB。

  • 查看 journal 日志占用的硬盘空间:
1
  journalctl -x --disk-usage
SHELL
  • 一次性清理 journal 日志:
1
  journalctl --vacuum-size=10M  # 清理日志到只剩下 10M journalctl --vacuum-time=1d   # 清理一天前的日志
SHELL

注意

这两个操作只是一次性清除日志,并不能限制以后的日志文件不会超过这个大小。很多博客里说这两个操作可以限制日志文件的大小,属实是误导人。

如果需要永久限制日志文件的大小,需要修改 /etc/systemd/journald.conf 文件。

  • 永久限制 journal 日志的大小: journald.conf [Journal] SystemMaxUse=10M # 硬盘中只保留最近 10M 的日志 RuntimeMaxUse=10M # 内存中只保留最近 10M 的日志
  • 不保留日志 journald.conf [Journal] Storage=none # 丢弃所有的日志,不保存到内存或磁盘

危险

不要使用 rm 命令来删除 journal 日志。参考 删除日志释放空间最好不要用 rm

清理 apt-get 缓存

一般可以清理数百 MB。

apt-get clean

清理 pip 缓存

一般可以清理两三百 MB。

rm -r ~/.cache/pip

清理旧版本 snap 包

一般每个旧的 snap 包可以清理 100 MB。

  • 列出所有的 snap 包: snap list --all 可以见到很多标记为 disabled 的 snap 包,这些包是可以直接卸载的。 Name Version Rev Tracking Publisher Notes certbot 1.26.0 1952 latest/stable certbot-eff✓ classic cmake 3.23.0 1070 latest/stable crascit✓ disabled,classic cmake 3.23.1 1082 latest/stable crascit✓ classic core 16-2.55.2 12941 latest/stable canonical✓ core,disabled core 16-2.54.4 12834 latest/stable canonical✓ core core18 20220309 2344 latest/stable canonical✓ base core20 20220318 1405 latest/stable canonical✓ base
  • 删除这些重复的 snap 包: snap remove XXXX --revision YYYY # XXXX 是软件的 name,YYYY 是软件的 Rev
  • 也可以使用这个脚本清除: 来自 How to Clean Up Snap Package Versions in Linux #!/bin/bash # Removes old revisions of snaps # CLOSE ALL SNAPS BEFORE RUNNING THIS set -eu snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do snap remove "$snapname" --revision="$revision" done

清理登录日志

这个文件是记录错误登录的日志,如果有人每天试你的密码来暴力破解你的 ssh,那你的这个文件就会很大。

echo "" > /var/log/btmp

该文件同理

echo "" > /var/log/auth.log

同理,不应当使用 rm 而是使用 echo 来清空这两个日志。

清理 docker

  • 查看空间占用情况 docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 5 1 645.4MB 611.9MB (94%) Containers 1 1 0B 0B Local Volumes 1 1 69.54kB 0B (0%) Build Cache 0 0 0B 0B
  • 清理 Build Cache docker system prune --volumes 这会清除所有:
    • 停止的 Container
    • 未被任何 Container 所使用的 Network
    • 未被任何 Container 所使用的 Volume
    • 无实例的 Image
    • 无实例的 Build Cache
  • 清理 Images 上一步中可能不会清理 Images,从而在 docker system df 中仍然能看到 Images 的空间占用。这一步可以清理这些 Images。 查看所有的 Image docker images -a 清理指定的 Image docker rmi <IMAGE ID>

请在评论前阅读我们的评论政策


内容是由智能博客生成器生产 powered by ChatGGPTT
使用 Hugo 构建
主题 StackedJimmy 设计,Jacob 修改