pacman -S caddy
Debian安装
apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy
添加 http.handlers.replace_response
模块
caddy add-package github.com/caddyserver/replace-response
检查http.handlers.replace_response
模块是否安装完成
[root@archlinux ~]# caddy list-modules | grep http.handlers.replace_response
http.handlers.replace_response
Caddy目录
[root@archlinux caddy]# tree
.
├── Caddyfile
└── conf.d
修改默认 Caddyfile
配置文件 注册 replace
指令
nano /etc/caddy/Caddyfile
{
order replace after encode
}
添加网站配置
nano /etc/caddy/conf.d/example.com
example.com {
reverse_proxy https://example.com {
header_up Host {upstream_hostport}
header_up Accept-Encoding identity
}
replace aaa bbb
}
重载caddy配置
systemctl reload caddy
参考
https://caddyserver.com/docs/caddyfile/directives/reverse_proxy
]]>wireguard
等依赖Debian
apt update -y && apt install wireguard sudo curl vim openresolv -y
Arch Linux
yay -S wireguard-tools openresolv wgcf vim dnsutils linux-headers --needed
Debian
curl -fsSL git.io/wgcf.sh | sudo bash
wgcf register
wgcf generate
vim wgcf-profile.conf
[Interface]
PrivateKey = 这里会自动生成
Address = 172.16.0.2/32
Address = 这里会自动生成
DNS = 8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844
MTU = 1280
[Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
AllowedIPs = 0.0.0.0/0
AllowedIPs = ::/0
Endpoint = engage.cloudflareclient.com:2408
更改engage.cloudflareclient.com
为IPV4/6地址(如双栈网络接入忽略)
[root@archlinux ~]# nslookup engage.cloudflareclient.com
Server: 1.1.1.1
Address: 1.1.1.1#53
Non-authoritative answer:
Name: engage.cloudflareclient.com
Address: 162.159.192.1
Name: engage.cloudflareclient.com
Address: 2606:4700:d0::a29f:c001
删除配置文件中的AllowedIPs = ::/0
删除配置文件中的AllowedIPs = 0.0.0.0/0
cp wgcf-profile.conf /etc/wireguard/wgcf.conf
wg-quick up wgcf
# IPv4 Only VPS
curl -6 ip.p3terx.com
# IPv6 Only VPS
curl -4 ip.p3terx.com
wg-quick down wgcf
systemctl start wg-quick@wgcf
systemctl enable wg-quick@wgcf
]]>systemctl stop reflector.service
如无法连接上网络可尝试使用dhcpcd
命令
iwctl
列出无线网卡设备
device list
用wlan0
网卡扫描网络
station wlan0 scan
列出网络
station wlan0 get-networks
连接网络网络SSID不支持中文
station wlan0 connect 无线网名字
输入密码,连接成功后使用exit
或者quit
timedatectl set-ntp true
把中国的服务器排在前列
nano /etc/pacman.d/mirrorlist
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
刷新软件包
pacman -Sy
安装ssh远程软件
pacman -S openssh
启用sshd服务
systemctl start sshd
passwd
设置当前root账户的密码
ip a
查看ip地址
局域网内使用其他设备连接SSH操作更方便
lsblk
显示当前磁盘和分区情况
cfdisk /dev/nvme0n1
系统格式可使用Btrfs或者EXT4
首先创建 Swap 分区。选中 Free space
> 再选中操作 [New]
> 然后按下回车 Enter
以新建 swap
分区(类似 Windows 的交换文件)
我们再只需要一个分区即可(因为使用 Btrfs
文件系统,所以根目录和用户主目录在一个分区上),所以类似的:选中 Free space
> 再选中操作 [New]
> 然后按下回车 Enter
以新建分区
分区类型默认即可,无需更改。接下来选中操作 [Write]
并回车 Enter
> 输入 yes
并回车 Enter
确认分区操作
选中操作 [Quit]
并回车 Enter
以退出 cfdisk
分区工具
EFI引导分区可使用Windows的ESP分区。如没有可自行创建300MB
的EFI引导分区
mkswap /dev/nvme0n1px
mkfs.btrfs -L Arch /dev/nvme0n1px
mkfs.ext4 /dev/nvme0n1px
将 Btrfs
分区挂载到 /mnt
下
mount -t btrfs -o compress=zstd /dev/nvme0n1px /mnt
创建 Btrfs 子卷
通过以下命令创建两个 Btrfs
子卷,之后将分别挂载到 /
根目录和 /home
用户主目录:
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
复查子卷情况
btrfs subvolume list -p /mnt
子卷创建好后,我们需要将 /mnt
卸载掉,以挂载子卷
umount /mnt
挂载/
目录
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1px /mnt
创建home
目录
mkdir /mnt/home
挂载/home目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1px /mnt/home
创建 /boot/efi
目录
mkdir -p /mnt/boot/efi
挂载 /boot/efi
目录
mount /dev/nvme0n1px /mnt/boot/efi
mount /dev/nvme0n1px /mnt
创建 /boot/efi 目录
mkdir -p /mnt/boot/efi
挂载 /boot/efi 目录(使用Windows系统ESP分区)
mount /dev/nvme0n1px /mnt/boot/efi
挂载交换分区
swapon /dev/nvme0n1px
往/mnt
目录里安装系统
其中最基础的四个包是base
base-devel
linux
linux-firmware
pacstrap /mnt base base-devel linux linux-firmware dhcpcd iwd vim sudo bash-completion nano net-tools openssh man git wget zsh fish
genfstab -U /mnt >> /mnt/etc/fstab
复查一下 /mnt/etc/fstab
确保没有错误:
cat /mnt/etc/fstab
使用以下命令把系统环境切换到新系统下:
arch-chroot /mnt
首先在 /etc/hostname
设置主机名:
nano /etc/hostname
然后在 /etc/hosts
设置与其匹配的条目:
127.0.0.1 localhost
::1 localhost
127.0.1.1 myarch.localdomain myarch
随后设置时区,在 /etc/localtime
下用 /usr
中合适的时区创建符号链接:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
Locale
决定了软件使用的语言、书写习惯和字符集。
编辑 /etc/locale.gen
,去掉 en_US.UTF-8 UTF-8
以及 zh_CN.UTF-8 UTF-8
行前的注释符号(#
):
nano /etc/locale.gen
然后使用如下命令生成 locale
locale-gen
向 /etc/locale.conf
输入内容:
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
passwd root
nano /etc/pacman.conf
ctrl+w 搜索Color
注意大小写 删除#号
系统报错会彩色显示 方便用户排查
[multilib]
这两行前面的#号删除
再手动添加[archlinuxcn]
源
我这里以中科大和网易开源镜像站为例
其他地址 如清华 阿里云 或者你所在的高校有archlinuxcn源 可以自行添加
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
官方源
[archlinuxcn]
Server = https://repo.archlinuxcn.org/$arch
新建用户名arch
可自行更改用户名
useradd -m -G wheel -s /bin/bash arch
设置arch
用户名的密码
passwd arch
编辑arch
用户的权限
EDITOR=nano visudo
ctrl+w搜索%wheel
找到# %wheel ALL=(ALL:ALL)ALL
删除前面的#号
通过以下命令安装对应芯片制造商的微码:
intel-ucode # Intel
amd-ucode # AMD
os-prober #查找已安装的操作系统
pacman -S intel-ucode grub efibootmgr os-prober
安装 GRUB 到 EFI 分区:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Arch
接下来 编辑 /etc/default/grub
文件:
nano /etc/default/grub
进行如下修改:
GRUB_CMDLINE_LINUX_DEFAULT
一行中最后的 quiet
参数loglevel
的数值从 3
改成 5
。这样是为了后续如果出现系统错误,方便排错nowatchdog
参数,这可以显著提高开关机速度GRUB_DISABLE_OS_PROBER=false
# GRUB boot loader configuration
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog"
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_OS_PROBER=false
...
最后生成 GRUB
所需的配置文件:
grub-mkconfig -o /boot/grub/grub.cfg
如遇到报错或无法引导Windows
分区可使用下面的命令
sudo LANG=C grub-mkconfig -o /boot/grub/grub.cfg
pacman -S plasma-meta konsole dolphin # plasma-meta 元软件包、konsole 终端模拟器和 dolphin 文件管理器
pacman -S ntfs-3g **可以读取ntfs格式磁盘 **
pacman -S os-prober **查找已安装的操作系统 **
中文字体 这里如果不安装 之后设置语言的时候都是框框不好辨认
pacman -S adobe-source-han-serif-cn-fonts adobe-source-han-sans-cn-fonts wqy-zenhei wqy-microhei noto-fonts-cjk noto-fonts-emoji noto-fonts-extra ttf-dejavu
pacman -S firefox ark gwenview packagekit-qt5 packagekit appstream-qt appstream man neofetch net-tools networkmanager openssh git wget pamac
systemctl enable NetworkManager sddm sshd
立即启动登陆管理器
systemctl start sddm
卸载本机的/mnt目录
umount -R /mnt
重启
reboot
输入密码登录进桌面环境
sudo pacman -S archlinuxcn-keyring && sudo pacman -S yay
sudo pacman -S bluez bluez-utils
sudo systemctl enable --now bluetooth
sudo pacman -S alsa-utils pulseaudio pulseaudio-alsa pulseaudio-bluetooth
Intel 核芯显卡
sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel
不建议安装 xf86-video-intel
,而应使用 Xorg 的 modesetting 驱动(也就是什么都不用装的意思)
注意,只有 Intel HD 4000 及以上的核显才支持 vulkan。
不建议安装 xf86-video-intel
,而应使用 Xorg 的 modesetting 驱动(也就是什么都不用装的意思)
注意,只有 Intel HD 4000 及以上的核显才支持 vulkan。
题外如果太久没更新 密钥环失效
sudo pacman -Sy archlinux-keyring
pacman-key --refresh-keys
更换LTS内核
pacman -S linux-lts linux-lts-headers
pacman -Rsdd linux
grub-mkconfig -o /boot/grub/grub.cfg
开启BBR
echo "tcp_bbr" > /etc/modules-load.d/modules.conf
echo "net.core.default_qdisc=fq" > /etc/sysctl.d/bbr.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.d/bbr.conf
sysctl --system
校验
sysctl net.ipv4.tcp_congestion_control
安装cron定时任务
pacman -S cronie
默认 editor 为 vi, 在 /etc/environment 下配置环境变量
EDITOR=nano
清理系统日志文件 保留的最新日志文件大小为100M
journalctl --vacuum-size=100M
设置系统日志只保留100M
nano /etc/systemd/journald.conf
修改#SystemMaxUse=
为SystemMaxUse=100M
重新加载 systemd-journald
服务以应用更改
systemctl restart systemd-journald
]]>Manjaro换源
sudo pacman-mirrors -c China
添加 archlinuxcn 源,获得更多的包:
sudo nano /etc/pacman.conf
[archlinuxcn]
SigLevel = Optional TrustAll
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
## xTom (Hong Kong server) (Hong Kong) (ipv4, ipv6, http, https)
## Added: 2017-09-18
## Blocking users in mainland China
[archlinuxcn]
Server = https://mirrors.xtom.hk/archlinuxcn/$arch
更新系统、软件
sudo pacman -Syyu
下载 yay AUR 助手
sudo pacman -S yay
yay安装报错
sudo pacman -Sy && sudo pacman -S archlinuxcn-keyring
sudo rm -rf /etc/pacman.d/gnupg
sudo pacman-key --init
sudo pacman-key --populate
安装 base-devel,yay 命令构建包时会使用到
sudo pacman -S base-devel
输入法配置
yay -S fcitx5-im fcitx5-chinese-addons fcitx5-material-color fcitx5-pinyin-zhwiki
fcitx5-im fcitx5 输入法框架包
fcitx5-chinese-addons 中文输入法
fcitx5-material-color 皮肤美化包
fcitx5-pinyin-zhwiki 词库
安装完成后编辑将下面 3 行代码加入到 /etc/environment 文件中,这样可以预防出现某些程序不能输入中文的情况发生
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
ohmyzsh
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
更改默认 shell 为 zsh:
chsh -s /usr/bin/zsh
zsh
下载插件:
自动补全
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
语法高亮
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
zsh-vi-mod
git clone https://github.com/jeffreytse/zsh-vi-mode $ZSH_CUSTOM/plugins/zsh-vi-mode
安装 autojump,终端目录跳转神器:
git clone https://github.com/wting/autojump
cd autojump
./install.py
cd ..
rm -rf autojump
打开 ~/.zshrc
找到 plugins 将它改成下面这样:
plugins=(
git
zsh-syntax-highlighting
zsh-autosuggestions
zsh-vi-mode
colored-man-pages
)
在~/.zshrc
尾部添加
[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh
Chrome
yay -S google-chrome
网易云音乐
sudo pacman -S netease-cloud-music
WPS
yay -S ttf-wps-fonts wps-office-mui-zh-cn wps-office-mime-cn wps-office-cn
yay -S wps-office-fonts ttf-ms-fonts
百度网盘
yay -S baidunetdisk
迅雷
yay -S xunlei-bin
微信
yay -S deepin-wine-wechat
微信运行时会显示:
程序 WeChatApp.exe 遇到严重问题需要关闭。我们对此造成的不便表示抱歉。
其实这个 BUG 不影响使用,但是看着心烦,解决办法是先运行如下命令:
/opt/apps/com.qq.weixin.deepin/files/run.sh winecfg
然后选择函数库选项卡,新增函数库顶替的输入框中中输入 wechatapp.exe
,点击右侧添加,选择新建好的 wechatapp.exe
,点击编辑,选择停用即可。
yay -S deepin-wine-qq
Teamviewer
yay -S teamviewer
火焰截图
sudo pacman -S flameshot
Typora
Typora 最新版已经收费,可以在官网下载以前的版本并手动安装,下面是最后一个免费版本:
下载完成后手动安装:
sudo tar -xvf ~/Downloads/Typora-linux-x64-1.0.3.tar.gz -C /usr/local
sudo mv /usr/local/bin/Typora-linux-x64 /usr/local/typora
添加可视化启动程序,在 ~/.local/share/applications 下新建以下文件,Typora 内部自己有 PNG 图片,所以不需要额外下载,直接复制粘贴以下内容即可:
vim ~/.local/share/applications/typora.desktop
[Desktop Entry]
Type=Application
Name=Typora
Exec=/usr/local/typora/Typora
Icon=/usr/local/typora/resources/assets/icon/[email protected]
Terminal=false
Categories=program;InstantMessaging
Picgo
yay -S picgo-appimage
如果可以直接安装就直接使用。我这里自动安装出现了问题,所以又需要手动安装了。
先到 picgo 的 github 中下载 AppImage 后缀的包,然后双击安装即可。
转换 deb 包
安装 debtab:
sudo pacman -S debtap
更新 debtab:
sudo debtap -u
下载好待转换的 deb 包,将其转换,以下步骤一路回车即可:
sudo debtap ~/Downloads/包名.deb
安装转换后的包:
sudo pacman -U ~/Downloads/包名.pkg.tar.zst
配置Git
配置 Git 用户名、密码、代理 :
git config --global user.name <用户名>
git config --global user.email <邮箱地址>
git config --global http.proxy socks5://127.0.0.1:7890
git config --global https.proxy socks5://127.0.0.1:7890
添加 SSH:
ssh-keygen # 疯狂回车
拷贝公钥 ~/.ssh/id_rsa.pub 中的内容,到 github 中添加 ssh keys 即可。
VMware-WorkStation
VMware-WorkStation包在AUR上可用,可以通过运行命令来安装。
yay -S vmware-workstation
安装系统对应的linux-headers
sudo pacman -S linux-headers
载入vmmon模块
sudo modprobe -a vmw_vmci vmmon
自启动网络服务和USB
sudo systemctl enable vmware-networks.service vmware-usbarbitrator.service
sudo systemctl start vmware-networks.service vmware-usbarbitrator.service
安装osc-url
下载 ocs-url:点我跳转
下载完成后手动安装:
sudo pacman -U ~/Downloads/ocs-url-3.1.0-1-x86_64.pkg.tar.xz
]]>