· 5 min read

安装并配置 Arch Linux

又到了新装 Arch Linux 的日子了。这次又是温故而知新的机会,把之前写的笔记稍微整理了一下,在这里记录下教徒搭窝的备忘录。

又到了新装 Arch Linux 的日子了。这次又是温故而知新的机会,把之前写的笔记稍微整理了一下,在这里记录下教徒搭窝的备忘录。

起势

首先,通过 SSH 以 root 用户连接服务器,然后修改 root 密码:

passwd
# 输入两次你的新密码

重装系统

为了避免 IDC 提供的系统镜像有加料、后门、老旧等问题,拿到服务器后第一件事是重装系统。 Arch Linux 是我的第一选择。

借助 felixonmars 的 vps2arch,我们可以将绝大多数的 Linux 系统转换成 Arch Linux 🎉。

wget https://felixc.at/vps2arch
chmod +x vps2arch
./vps2arch

等待几分钟就完成了。如果是中国大陆境内的机子,建议全局代理或使用自定义的系统镜像源。可以从下面的网站获取镜像地址。地址上有查询参数,可以根据自己需要修改。

https://archlinux.org/mirrorlist/?country=HK&protocol=https&use_mirror_status=on

推荐使用 https://hkg.mirror.rackspace.com/archlinux/

./vps2arch -m 'https://hkg.mirror.rackspace.com/archlinux/'

如果系统装不上,可以在 IDC 面板上重装其他系统后再试,推荐使用 Debian。

脚本执行完成后,按脚本提示执行下面的命令重启设备,密码将被保留:

sync ; reboot -f

重启时,SSH 会断开连接。因为新系统的 SSH 主机指纹会变化,所以需要忘记旧指纹:

ssh-keygen -R <remote-host>

# example
ssh-keygen -R '[20.20.20.20]:20000'

之后重新连接 SSH。

基本配置

设置主机名:

hostnamectl set-hostname arch.example.com

启用 pacman 并行下载:

  • 编辑 /etc/pacman.conf
  • 取消 ParallelDownloads 前的注释,值为并行下载数

常用环境安装

我的常用环境如下:

  • 一个自己的账户
  • Git
  • Yay
  • Zsh
  • Docker
  • TailScale

创建账户

安装 sudo

pacman -Sy sudo

创建账户:

useradd -m ivan
passwd ivan
usermod -aG wheel ivan

给刚刚创建的账户分配一个具有 sudo 权限的账户

EDITOR=vim visudo

找到 %wheel ALL=(ALL: ALL) ALL 这行,取消这行的注释。

现在,你自己的账号具有 sudo 权限了,接下来切换到自己的账户连接终端吧。

Git

需要手动安装:

sudo pacman -S git

Zsh

Zsh 是一个不错的终端外壳(Shell)。

使用 pacman 安装:

sudo pacman -S zsh

如果你想执行交互式的初始化配置,可以输入下面命令进入 zsh 并开始初始化配置,否则不要执行下面的命令:

zsh

接下来安装我常用的插件:

sh -c "$(curl -fsSL https://git.io/zinit-install)"

echo 'zinit load zsh-users/zsh-syntax-highlighting
zinit load zsh-users/zsh-autosuggestions
zinit load  ael-code/zsh-colored-man-pages
zinit load agkozak/zsh-z
zinit ice depth=1; zinit light romkatv/powerlevel10k' >> ~/.zshrc

zsh-z

一个快速跳转目录的插件。

避免优先匹配到子目录,在 .zshrc 中添加如下行:

cat >> ~/.zshrc <<EOF

# zsh-z
ZSHZ_UNCOMMON=1
ZSHZ_TRAILING_SLASH=1
EOF

History

配置历史记录,在 .zshrc 中添加如下行:

cat >> ~/.zshrc <<EOF

# History
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=1000
setopt INC_APPEND_HISTORY_TIME
EOF

详细配置参考:Better zsh history | SoberKoder 文档:zsh: 16 Options

然后进入到 zsh 中,执行一次 source ~/.zshrc

zsh

source ~/.zshrc

设置 Zsh 为默认的 shell 程序:

# 列出所有已安装的 shell 程序
chsh -l
# 从上面的结果中找到 zsh 的完整路径
# 我的是 /bin/zsh
chsh -s /bin/zsh

Docker

安装 Docker 和 Docker Compose 也很简单:

sudo pacman -S docker docker-compose
# 启动
sudo systemctl start docker
# 启用
sudo systemctl enable docker
# 添加当前用户到 docker 组
sudo usermod -aG docker $USER
# log in to a new group
newgrp docker

安全配置

禁用 SSH 密码登录

修改 /etc/ssh/sshd_config,找到 PasswordAuthentication,改为 no。 然后重启:

sudo systemctl restart sshd

使用 Fail2Ban

安装:

sudo pacman -S fail2ban

复制配置文件:

sudo cp /etc/fail2ban/jail.{conf,local}

编辑配置文件,找到 [sshd] 块,并添加 enabled=true,(不是解除注释):

sudo vim /etc/fail2ban/jail.local
[sshd]
enabled = true

启动 fail2ban

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

查看状态:

sudo fail2ban-client status

写在最后

大功告成,现在又拥有了一个崭新的 Arch Linux 系统了。后面有机会的话,我得把这些配置脚本化,不然天天配也是有点蠢,哈哈。

Back to Blog

Related Posts

View All Posts »
搭建日常使用的 Arch Linux

搭建日常使用的 Arch Linux

有了上次快速安装步骤后,接下来就是使用这个环境了。要使用环境,首先需要做一些初始化操作。我的步骤适合我,但不一定适合你,只是记录和参考。

在 PVE 宿主机上使用桌面环境

在 PVE 宿主机上使用桌面环境

虽然 PVE 宿主机不应该安装乱七八糟的东西,但是我穷,为了物尽其用,为了在主力电脑翻车时有一个立即可用的备用环境,所以还是安装了基础的桌面环境。现在的 Linux 桌面环境越来越好了,我选择安装 KDE Plasma 作为桌面环境,并且默认关闭,按需启用。

使用 NAT VPS 作为 SD-WAN 中继

ZeroTier 和 TailScale 是我目前正在同时使用的 SD-WAN 组网工具。这次购入了一台 NAT VPS,准备用它中继 ZeroTier 和 TailScale。

在 PVE 中运行 Arch Linux

Arch Linux 的好,懂的都懂。这次在 PVE 中的 LCX 虚拟化了几个 Arch Linux 环境,用于跑一些服务和开发环境。本文主要分享了 Arch Linux 的配置步骤,其他方式入教的同志也可参考本文配置。