YangMame
type: channel
link: https://blog.yangmame.org/
description: less is more
items: Gentoo的一次系统更新记录
items: Linux下如何合理利用SSD和HDD
items: LG Gram 上手
items: 这年头该用啥代理？
items: 关于内核的一些配置
items: DEB打包：快速构建一个Meta Package
items: 为树莓派3B交叉编译安装Gentoo
items: Gentoo安装教程
items: 极限建站
items: 在U盘安装加密的Linux系统

Gentoo的一次系统更新记录
type: item
date: 2022-03-28T02:40:00+00:00
description: 最近闲下来上线了下很早之前装了Gentoo的vps，想着维护更新下系统，遇到了一些常见更新问题记录分享下由于系统有段时间没更新了，系统里的portage只支持EAPI 7，python还是3.7版本。最新的portage的EAPI已经到8了且最低要求3.8版本的python，直接更新emerge -auvDN @world是行不通的直接运行emerge --oneshot sys-apps/portage会遇到EAPI的版本问题。比较稳妥的办法是先在make.conf里改好想用的满足portage最低版本要求的新的python版本（PYTHON_TARGETS，记得删掉3.7的target）并单独更新python：PYTHON_TARGETS="python3_9" emerge -av dev-lang/python:3.9成功更新完python后就可以再单独更新portage了(注意这里用了--nodeps参数是用来跳过一些死依赖的)：PYTHON_TARGETS="python3_9" emerge -av1O portage更新完portage后又遇到了perl的更新问题，这个和portage一样跳过死循环单独更新即可：emerge -av1O perl更新完后补上perl的依赖：perl-cleaner --all最后更新@world应该就没有什么大问题了，无非就是处理下USE。由于是跑服务的系统，这次的USE改动主要为加了条-gui最后就可以跑起emerge -auvDN @world了记得最后emerge --depclean

Linux下如何合理利用SSD和HDD
type: item
date: 2019-08-17T16:00:00+00:00
description: 之前尝试过lvm-cache与bcache，发现性能都挺。。。这篇文章就想记录下我目前使用的新方案硬盘组合是：一块256G的nvme固态硬盘俩块2T的机械硬盘这里简单说下我之前使用的方案吧：俩块HDD使用mdadm组raid1，使用luks加密，并格式化为bcache后端设备，使用btrfs文件系统SSD分512M为EFI分区，余下空间格式化为bcache的缓存设备。看起来没什么毛病，但是实际使用时，如果有大量/大型文件的读写就会造成系统卡顿，且一些命令都会卡住忍到了最近，入了块能容下之前系统数据的移动硬盘备份包了数据本来想换回lvm-cache的，但觉得这货应该也不会比bcache好到哪里于是想到了工作时做chroot环境用到的mount --bind xxx xxx经过实验和重装是可行的：... /dev/mapper/data /mnt/data btrfs defaults 0 0 /mnt/data/home /home none bind 0 0 /mnt/data/var /var none bind 0 0 ...这里的/dev/mapper/data是mdadm组raid1使用luks加密后的块设备，在/etc/crypttab里写入解密的配置让系统启动时自动解密为/dev/mapper/data把它当作数据盘挂载在/mnt/data后在里面创建home和var目录，之所以选择这俩目录挂载到机械硬盘是因为这俩个目录的读写最频繁且数据量最大（home不用说，var是各类软件丢数据和日志的地方）如果你固态硬盘足够大或者对var目录里的读写有性能要求可以改成如下：... /dev/mapper/data /mnt/data btrfs defaults 0 0 /mnt/data /home none bind 0 0 ...要注意的是/dev/mapper/data一定要写在它们前面，因为系统是按顺序挂载的

LG Gram 上手
type: item
date: 2019-06-13T20:20:00+00:00
description: 由于pixelbook的半残不废加上出差在外，想换个续航叼且Linux友好的无独显笔记本。同事之前推荐过2018款的LG Gram就一直关注着这个系列，之后出了2019款便想着入手了。淘宝上有加装内存且有保修的店家，但价格还是不太理想，所以终于等到618京东稍微降了点价就入了（白条分期+信用卡，留下了没钱的眼泪），上手用了一段时间后自己加装了8G内存（编译 Gentoo 终于不用怕经常爆内存了，还能丢tmpfs编译）因为有了雷电接口，部分 Linux 发行版会开机时刷 acpi error 错误造成很大概率不能正常启动，对于 5.x.x 的内核可以直接通过加入 pci=nommconf 内核参数解决。LG gram目前未解决的问题有：设置功能键未正常驱动，可以设置快捷键启动设置禁用/启用触摸板的功能键未正常驱动，可以设置快捷键但状态灯不会变化阅读模式的功能键未正常驱动，可以安装 redshift 并配合 plasma 插件+快捷键获得较完美的体验充电到 80% 自动断电的功能未正常驱动，目前无解决方案，不过不要紧以下列出下它目前Gentoo的主要配置：/etc/portage/make.conf:COMMON_FLAGS="-march=native -O2 -pipe" CFLAGS="${COMMON_FLAGS}" CXXFLAGS="${COMMON_FLAGS}" FCFLAGS="${COMMON_FLAGS}" FFLAGS="${COMMON_FLAGS}" MAKEOPTS="-j6" # NOTE: This stage was built with the bindist Use flag enabled PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" # This sets the language of build output to English. # Please keep this setting intact when reporting bugs. LC_MESSAGES=C #GENTOO_MIRRORS="https://mirrors.ustc.edu.cn/gentoo/" GENTOO_MIRRORS="https://mirrors.tuna.tsinghua.edu.cn/gentoo/" EMERGE_DEFAULT_OPTS="--keep-going --with-bdeps=y" #EMERGE_DEFAULT_OPTS="--keep-going --with-bdeps=y --load-average --jobs=5" FEATURES="ccache userfetch" CCACHE_SIZE="15G" ACCEPT_KEYWORDS="~amd64" ACCEPT_LICENSE="*" L10N="en-US zh-CN en zh" LINGUAS="en_US zh_CN en zh" VIDEO_CARDS="intel i965" CPU_FLAGS="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" CPU_FLAGS_X86="${CPU_FLAGS}" # USE BASE_SYSTEM="-plymouth btrfs device-mapper libkms -grub systemd pulseaudio networkmanager bluetooth touchpad mtp cryptsetup iptables initramfs gnuefi lvm" APP="konsole dolphin cups fcitx chromium telegram -nautilus 7zip rar vim samba cups" DESKTOP="kvantum user-session infinality emoji cjk gtk gtk3 legacy-systray -gnome gnome-keyring -gnome-shell browser-integration crypt display-manager sddm" ELSE="-bindist vim-syntax git bash-completion client icu python brightness-control vaapi" USE="${BASE_SYSTEM} ${APP} ${DESKTOP} ${…

这年头该用啥代理？
type: item
date: 2019-05-20T15:00:00+00:00
description: 富强、民主、文明、和谐自由、平等、公正、法治爱国、敬业、诚信、友善更新19.4.8更新权限配置ServerTrojan这里还是说在Debian上的搭建方式首先建议你升级到Debian 10（buster）：apt update apt dist-upgrade cp /etc/apt/sources.list /etc/apt/sources.list.bak sed -i 's/stretch/buster/g' /etc/apt/sources.list #将stretch更换为你的codename apt update apt dist-upgrade apt --purge autoremove然后安装Trojan：apt install trojanTrojan的配置位于/etc/trojan.json编辑它将"password":内的值改为你自己的密码"cert":和"key":改为你网站的ssl证书和私钥通过acme申请证书：# 安装acme curl https://get.acme.sh | sh echo 'alias acme.sh=~/.acme.sh/acme.sh' >> ~/.bashrc source ~/.bashrc # 声明Cloudflare帐号与API KEY并申请证书(在这个[页面](https://www.cloudflare.com/a/profile)点击Global API Key--->View API Key即可看到): export CF_Key="你的API KEY" export CF_Email="你的邮箱" acme.sh --issue --dns dns_cf -d google.com -d *.google.com #这里的google.com换成你的域名 # 安装证书： mkdir -p /etc/letsencrypt/live/google.com/ acme.sh --installcert -d google.com \ # 记得更改域名 --key-file /etc/letsencrypt/live/google.com/privkey.pem \ # 记得更改域名 --fullchain-file /etc/letsencrypt/live/google.com/fullchain.pem \ # 记得更改域名 --reloadcmd "chown -R nginx:nginx /etc/letsencrypt/ && systemctl restart trojan" # 这里的nginx注意修改为nginx使用的用户名（完整内容可以阅读这篇文章）其他可保持默认如果你使用Nginx，则建议将trojan服务(/lib/systemd/system/trojan.service)的运行用户修改为nginx或www-data（其它web server用对应的用户也可以）：... User=nginx # 或www-data ...否则将证书的权限开放出来（不建议）:chmod 755 -R /etc/letsencrypt/ # 记得修改acme.sh的--reloadcmd参数启用服务：systemctl enable trojan systemctl start trojanNginxTrojan对于非Trojan客户端的请求都会转向服务端本地80端口（仍是443端口），这里选用nginx作为web服务器apt install nginx nano /etc/nginx/sites-enabled/default所以nginx的配置不能写有监听443，监听在本地的80端口即可至于其它配置照常写就行了（关于ssl证书等配置将无效）如果你还希望运行v2ray则加上（因为trojan还没有像样的手机客户端，所以只能先跑个v2ray）：... location /download { proxy_redirect off; proxy_pass http://localhost:1234; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; } ...启动Nginx：systemctl enable nginx systemctl start nginxV2rayV2ray的TLS+websocket+Nginx应该是最稳的方案之一了但是延迟却比较感人，且因为GO未支持tls1.3还只能用tls1.2wget https://…

关于内核的一些配置
type: item
date: 2019-01-01T00:00:00+00:00
description: 更新：2019-01-23，增加“单独编译某个模块并加载使用”。单独编译某个模块并加载使用比如我想编译r8822be模块（网卡驱动）,你需要先找到它的位置：cd /usr/src/linux grep -rin "r8822be*" | grep Makefile进入目录并编译模块：cd /usr/src/linux/drivers/staging/rtlwifi make CONFIG_R8822BE=m -C /lib/modules/`uname -r`/build/ M=$PWD modules在当前系统中加载模块：mkdir /lib/modules/`uname -r`/kernel/net/r8822be -p cp r8822be.{mod.o,ko} /lib/modules/`uname -r`/kernel/net/r8822be -v depmod modprobe r8822be不使用initramfs启动系统进入目录并打开配置界面:cd /usr/src/linux make menuconfig 进入 General Setup关掉Initial RAM filesystem and RAM disk (initramfs/initrd) support如果你的fstab用的是UUID,则建议先改成/dev/sdX的格式把你所有的modules编译进内核即built-in状态然后开始编译吧这里我就不说GRUB相关的配置了,因为我没有尝试过,具体请看这里用的是接下来要说的efibootmgr启动系统使用efibootmgr启动系统进入目录并打开配置界面:cd /usr/src/linux make menuconfig 你要确保已启用所有必须的efi相关选项进入 Processor type and features 搜索 Built-in kernel command line 并启用然后会出现 Built-in kernel command string填入 root=/dev/sda2或者root=PARTUUID=xxxxsda2换成你实际的根目录所在分区或通过blkid查看根分区的PARTUUID然后开始编译吧首先确保efibootmgr已安装:emerge -av efibootmgr 创建目录(可选):mkdir -p /boot/efi/boot 将你的内核复制到对应目录(或者直接复制到boot):cp /boot/vmlinuz-* /boot/efi/boot/bootx64.efi 查看是否已挂载efivars:mount | grep efivars 重新挂载efivars为可读写:mount -o remount,rw -t efivarfs efivarfs /sys/firmware/efi/efivars 这里说下efibootmgr的参数:--create (-c) 创建新的启动项 --part (-p) efi分区的的序号,假设是/dev/sda2 则值为2 --disk (-d) efi分区所在的磁盘,例如/dev/sda --label (-L) 启动项的名称 --loader (-l) 可启动的efi文件所在处(efibootmgr路径用的是\不是/) 示例添加启动项:efibootmgr --create --disk /dev/sda --part 2 --label "Gentoo" --loader "\efi\boot\bootx64.efi" 这里也简单说下删除启动项的参数:--bootnum (-b) 启动项的识别号(通过efibootmgr -v查看,例如Boot0001则值为1) --delete-bootnum (-B) 进行删除 删除示例:efibootmgr -b 2 -B 将Intel-ucode编译进内核进入目录并打开配置:cd /usr/src/linux make menuconfig 确保在Processor type and features里已选上CPU microcode loading support和你对应的CPU microcode loading support例如Intel CPU选中Intel microcode loading support然后进入Device Drivers ---> Generic Driver Options启用Include in-kernel firmware blobs in kernel binaryFirmware blobs root directory填入: /lib/firmware/另开终端安装源文件(注意查看这里的输出):emerge -av sys-firmw…

DEB打包：快速构建一个Meta Package
type: item
date: 2018-11-30T08:00:00+00:00
description: 部分参考：Building your First Package需要安装的软件：dh-makedpkg-dev创建工作目录：mkdir hello-1.0要求为“包名+版本号”初始化目录（创建必要的文件）：cd hello-1.0/ dh_make --native #本地的这里的包类型我们选择single（其它类型会在之后的文章说，可能）Type of package: (single, indep, library, python) [s/i/l/p]?之后输入y确认生成这时候你当前的目录应该就多了个debian目录编辑debian/control看到如下:Source: hello Section: unknown Priority: optional Maintainer: user <user@unknown> Build-Depends: debhelper (>= 9) Standards-Version: 3.9.8 Homepage: <insert the upstream URL, if relevant> #Vcs-Git: https://anonscm.debian.org/collab-maint/hello.git #Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/hello.git Package: hello Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: <insert up to 60 chars description> <insert long description, indented with spaces>Section是分类，这里改成miscMaintainer是维护者，这里随意（必须为“名字+空格+<邮箱>”的格式）Homepage是软件的主页，这里作为示例故保留原样Package决定了你的包名Architecture是构架支持，如果是元数据（脚本，媒体文件，文本）可以不管Depends是依赖，这里作为示例是没有依赖的故保留原样Description是软件介绍，不可写太长（最长60个字符，多的另外起行，用空格缩进）这里还有个debian/changelog文件用于记录修改，这里不做修改。（之后建议使用dch处理这个文件）最后还有个关于版权的文件debian/copyright，同样这里作为示例不做修改创建一个脚本：mkdir -p usr/bin/ cat << EOF > usr/bin/hello.sh #!/bin/bash echo hello EOF chmod +x usr/bin/hello.sh你可以再丢个文本：mkdir -p usr/share/doc/hello cat << EOF > usr/share/doc/hello/README Hello EOF新建.install文件：cat << EOF > debian/hello.install usr/* usr你或许发现了，这里的usr/xxx/xxx都是相对于系统的目录的路径创建的，而.install文件则是告诉包管理如何处理这些文件（将包根目录内的usr目录复制到系统的usr目录）生成.dsc与源码包，这些东西就是你在Debian 软件源pool目录看到的那堆东西了：dpkg-source -b .构建deb包，这里因为是meta包，可以直接构建，一般情况下建议使用pbuilder构建，之后的文章会写：dpkg-buildpackage -us -uc生成的文件都在上一级目录最后你就可以试试安装你创建的deb包了：dpkg -i ../hello_1.0_amd64.deb #构架名称可能不同试试运行下吧：user@hostname:~/hello-1.0$ hello.sh hello

为树莓派3B交叉编译安装Gentoo
type: item
date: 2018-08-12T16:00:00+00:00
description: 本文章随时可能停止更新或未及时更新，仅作参考参考文章：Raspberry Pi 3 64 bit InstallEmbedded Handbook/General/Compiling with qemu user chroot准备：树莓派3Bsd卡 >=8G读卡器正常运行的Gentoo系统（其它系统请自行决策）开始：环境Crossdev先安装好交叉编译环境：emerge --ask sys-devel/crossdev crossdev -t aarch64-unknown-linux-gnu如果提示：error: please convert /etc/portage/package.env to a directory则运行如下命令并重新运行crossdev -t aarch64-unknown-linux-gnu：mv /etc/portage/package.env /etc/portage/package.env_file mkdir /etc/portage/package.env mv /etc/portage/package.env_file /etc/portage/package.env运行gcc-config -l显示aarch64-unknown-linux-gun-x.x.x确认安装成功Qemu更改配置：echo app-emulation/qemu static-user >> /etc/portage/package.use echo 'QEMU_SOFTMMU_TARGETS="alpha aarch64 arm i386 mips mips64 mips64el mipsel ppc ppc64 s390x sh4 sh4eb sparc sparc64 x86_64"' >> /etc/portage/make.conf echo 'QEMU_USER_TARGETS="alpha aarch64 arm armeb i386 mips mipsel ppc ppc64 ppc64abi32 s390x sh4 sh4eb sparc sparc32plus sparc64"' >> /etc/portage/make.conf安装：emerge --ask app-emulation/qemu创建二进制包（重要）：quickpkg app-emulation/qemu假设你已正确配置好qemu相关的内核选项且已启用CONFIG_BINFMT_MISC：[ -d /proc/sys/fs/binfmt_misc ] || modprobe binfmt_misc [ -f /proc/sys/fs/binfmt_misc/register ] || mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc注册：echo ':aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-aarch64:' > /proc/sys/fs/binfmt_misc/register启用并启动binfmt服务(如果不常用可以只启动）：# openRC: rc-update add qemu-binfmt rc-service qemu-binfmt start # systemd: systemctl enable systemd-binfmt systemctl restart systemd-binfmt编译内核&驱动安装git（如果你没安装的话）：emerge --ask dev-vcs/git创建工作目录：mkdir raspberrypi克隆rpi的firmware：cd raspberrypi git clone https://github.com/raspberrypi/firmwarePS：如果你的clone速度捉急。。。可以加上--depth=1参数克隆rpi的内核源码：git clone https://github.com/raspberrypi/linux进入内核源码目录选择版本：cd linux git branch -a #查看最新的版本 git checkout XXX # 这里的XXX换成最新版本的内核，比如：rpi-4.14.y生成rpi3内核的默认配置并打开配置界面：ARCH=arm64 CROSS_COMPILE=aarch64-u…

Gentoo安装教程
type: item
date: 2018-08-12T16:00:00+00:00
description: 这可能是除了官方wiki写的最全的教程了(可能还存在错误之处,欢迎指出)2018.7.3更新，完善make.conf的说明准备:至少一个人一双能打字的手一个能思考的脑袋俩部电影至少一台正常的电脑一个正常的U盘一个稳定的网络环境一个稳定的电源一个已能完美运行的系统.(如果你是Linux系统则不需要下一个)一个Ubuntu ISO镜像文件如果你是Windows系统:下载Rufus刻录Ubuntu镜像至于UEFI Legacy GPT和MBR等我就不说了,如果不熟悉这些玩Gentoo恐怕困难重重如果你已有一个正常运行的Linux,恭喜,安装Gentoo会简单很多.安装完并确定可用之后之后你可以tar打包已安装的系统使用live CD解压过去并修改相关配置需要知道的一些东西Gentoo有很多好用的工具这里说下安装过程会遇到的eselect可以用来配置系统比如eselect python set X可以设置默认的python（eselect python list查看可用选项）eselect fontconfig enable X可以启用xxx字体配置（eselct fontconfig list查看可用选项）etc-update可以用来更新or生成配置文件假如系统更新了软件 有新的配置文件 Gentoo会生成一个临时的配置文件，需要自己手动删除 合并或覆盖 可以通过运行etc-update进行记住，要尽量保证emerge提示无可用更新的配置文件（特别是更新portage的配置文件的时候）准备磁盘启动到live CD(已有Linux系统忽略这句)使用你喜欢的工具进行分区(或者直接用gparted)这里会声明下分区,之后的过程将使用这些变量UEFI(GPT):sda1 ---/boot--->vfat >=200M #注意分区设置flags为esp sda2 ---/--->ext4,btrfs,xfs,jfs.etc >=20G #建议至少20G大小 sda3 ---swap---> >=2G #除非你16G内存,即使你8G内存也建议设置2G的swap Legacy(MBR):sda1 ---/boot--->ext2 >=200M #可以不设置此分区 sda2 ---/--->ext4,btrfs,xfs,jfs.etc >=20G #建议至少20G大小 sda3 ---swap---> >=2G #除非你16G内存,即使你8G内存也建议设置2G的swap 创建目录:mkdir -v /mnt/gentoo 挂载目录:mount -v /dev/sda2 /mnt/gentoo 安装基本文件在这里你需要选择一个镜像站,在这里列出几个速度比较快的镜像站,请亲自测试选择镜像站:USTCTUNA163进入镜像站的/gentoo/releases/amd64/autobuilds/目录如果你对systemd没有刚需则进入current-stage3-amd64/目录选择最新的stage3下载到本地的/mnt/gentoo目录,例如:stage3-amd64-20171019.tar.bz2如果你需要systemd,则进入current-stage3-amd64-systemd/目录选择最新的stage3下载到本地的/mnt/gentoo目录,例如:stage3-amd64-systemd-20171018.tar.bz2下载完成之后进入gentoo的根目录并解压文件:cd /mnt/gentoo tar vxpf stage3-*.tar.bz2或xz --xattrs-include='*.*' --numeric-owner 配置make.conf和Portage Mirror以下参数在经过自己调整或选择之后加入到 /mnt/gentoo/etc/portage/make.confUSE: 首先,你可以删掉默认的USE标记，加上-bindist (不了解USE的情况下建议如此)CFLAGS: 将CFLAGS修改为CFLAGS="-march=native -O2 -pipe" 或者你也可以指定.例如我的Intel CPU是haswell,将native换成haswell就行(不确定就不要指定).你也可以在这里看到所有可以设置的值MAKEOPTS: 根据你的CPU核心数设置MAKEOPTS例如双四线程设置为MAKEOPTS="-j5"GENTOO_MIRRORS: 设置为GENTOO_MIRRORS="https://mirrors.ustc.edu.cn/gentoo/" 请自行选择速度最快的MirrorEMERGE_DEFAULT_OPTS: 设置为EMERGE_DEFAULT_OPTS="--keep-going --with-bde…

极限建站
type: item
date: 2018-08-12T16:00:00+00:00
description: 前言有很多人可能还用着一键脚本/面版安装的网站优点是轻松傻瓜式，缺点是浪费时间/空间 学习成本可能比我的文章还大（前提是愿意琢磨如果你的VPS只有/剩余5G Disk，显然用这些脚本是不太现实的但是如果自己安装配置 你大概只需要不到1G的空间就能搭建个和我一样的网站更新2018.8.17(七夕)：增加Nginx配置，增加Nextcloud2018.9.30(快国庆了)：更新至Debian 10（buster），增加cloudflare相关配置2018.10.24(双十一要来了，要剁手了）：更正部分旧内容，增加Iptables配置2019.08.06(快七夕了？？？)：更新关于v2ray tls版本的配置2019.12.15(终于能休息了)：更新nginx配置echo的问题预览Web: Caddy or Nginx #请二选一Sql: MariadbBlog: Typecho (blog.yangmame.org)CDN: CloudflareEmail: YandexProxy: V2rayGit: Gitea (git.yangmame.org)File Browser: Caddy with http.filemanager plugin or NextcloudBT: qBittorrent-nox (bt.yangmame.org)购买VPSVPS推荐最低配置：Mem: >=512MCPU: >=1CoreDisk: >=5G我的网站运行在搬瓦工年付19刀的KVM VPS上（流下了没钱的泪）目前运行在Cloudcone上,第一次购买可能会遇到被墙的IP，需要发工单更换IP但是推荐新手买Vultr或DigitalOcean（请使用我的链接注册，这样我也能受益 注册后需要充值五美元才能使用，但请放心 这俩家都是大牌）至于买什么地区，什么配置 自己定夺系统请选择Debian 9 x86_64,如果有Debian10就更好了。 (若出现其他问题需要自行解决，例如systemd版本太低造成参数无效导致权限不足）记得检查VPS的IP是否能访问，否则请更换IP（给VPS商发工单or新开VPS）购买域名域名推荐去Godaddy购买（无需实名制or备案）推荐去Namesilo购买（便宜，免费的隐私保护，不流氓）你要是有更好的选择也行这里说下我知道的主要域名类型.com: 一般网站 .net: 与com类似 .org: 公益 无盈利网站 .me: 个人个性网站 .info: 信息类网站 .blog: 博客网站 .moe: 二次元类网站 .cn: 中国网站（需要备案） 如果仅仅写博客推荐.me 有钱人上.blog如果和我一样推荐.org或.infoACG爱好者推荐.moe如果自己也不确定推荐.com 有钱人上.net配置Cloudflare首先去注册Cloudflare然后添加你的网站，在域名商（Godaddy）中更换域名的DNS为CLoudflare提供给你的DNS地址等待生效后在Cloudflare中转到DNS设置添加A记录：Name填@ IPv4 address填你VPS的IP地址 点击Add Record完成添加添加子域名：（例如blog.yangmame.org），添加CNAME记录：Name填你想添加的子域名（例如blog） Domain name填你的根域名（例如yangmame.org） 点击Add Record完成添加（如果想网站和我一样，则请添加blog,www,file.admin,git,bt子域名，之后的配置按此配置）转到Crypto页面将SSL设置为Full(strict)启用下面的Always use HTTPSTLS版本请选择1.2，除非你不打算用任何GO语言写的东西(v2ray)，因为GO还不支持TLSv1.3。。。 现在最新的go终于支持了，旧版本可能需要升级一下，不过如果你客户端有系统比较旧的建议仍建议选1.2还有些选项如果你了解也可以开启（比如HSTS）转到Page Rules页面添加如下规则以启用http跳转https（减少配置量与Nginx压力）配置VPSssh连接VPS运行如下命令更新系统：apt update apt dist-upgrade apt --purge autoremove reboot 如果你不是Debian10，请先查看当前的Debian版本的codename：cat /etc/apt/sources.list 你会看到类似于如下的一些内容：... deb http://mirrors.xxxx.xxxx.xxx/debian/ stretch main ... 其中stretch为codename，即Debian9的codenameDebian8的codename为jess…

在U盘安装加密的Linux系统
type: item
date: 2018-07-21T01:40:00+00:00
description: 适用场景：外出需要电脑，却没有携带自己的电脑，且不能信任能找到的电脑的环境；不想在外泄漏隐身；不是自己想使用的系统/环境。教程目标：制作一个可以保留更改的运行Linux的U盘，加密根目录(boot除外)，开机可以选择ramroot模式启动(将整个Linux系统加载在内存，适合在大内存机器且不想保留更改时使用)需要的东西：一个正常运行的Arch Linux一个U盘（推荐3.1，3.0和2.0可能体验较差）需要用到的软件/命令：cryptsetuparch-install-scripts(可以直接通过pacman安装）开始以下过程默认在root用户下运行配置分区这里就简单说下如何分区，至于用什么工具分区随你喜欢这里的/dev/sdb将在之后的教程当作U盘使用（请自己注意更换)分区类型：dos，以下分区皆为主分区(primary） 分区-------->挂载点-->大小--->类型 /dev/sdb1--->/boot--->128M--->EFI Filesystem(需要设置为可启动(bootable)） /dev/sdb2--->/------->Free--->Linux创建加密LUKS(需要输入大写yes然后输入你的密码/口令)：cryptsetup luksFormat --type luks2 /dev/sdb2打开LUKS并创建配置LVM(需要输入密码/口令)：cryptsetup open --type luks2 /dev/sdb2 cryptlvm pvcreate /dev/mapper/cryptlvm vgcreate System /dev/mapper/cryptlvm lvcreate -L 8G System -n root # 这里是根分区，一般8G够用 lvcreate -l 100%FREE System -n data # 这里是数据分区，用于存放重要资料（为了和根分区区分，建议不要写入fstab让它默认不挂载）格式化：mkfs -t vfat -F 32 /dev/sdb1 mkfs -i 8192 -t ext4 /dev/System/root mkfs -i 8192 -t ext4 /dev/System/data挂载分区：mount -t ext4 /dev/System/root /mnt mkdir -p /mnt/boot mount /dev/sdb1 /mnt/boot安装系统如果你在使用Arch Linux的Live CD安装，你可能需要修改/etc/pacman.d/mirrorlist选择镜像站pacstrap -i /mnt base base-devel linux # 这里建议不安装默认的linux，安装linux-hardened内核 genfstab -U -p /mnt >> /mnt/etc/fstab进入chroot环境并安装内核：arch-chroot /mnt source /etc/profile pacman -S linux-hardened配置locale:TMP="en_US.UTF-8" # 将这里改为你想使用的语言（建议en） echo "${TMP} UTF-8" > /etc/locale.gen locale-gen echo LANG=${TMP} > /etc/locale.conf至于时区这里示例使用中国时区：ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock --systohc --utc更改root密码与主机名：passwd echo Live > /etc/hostname编辑/etc/mkinitcpio.conf在HOOKS中加入keyboard keymap encrypt以支持加密（需要注意顺序）：# 示例 HOOKS=(base udev autodetect keyboard keymap consolefont modconf block encrypt lvm2 filesystems fsck)添加ramroot支持：pacman -S git git clone https://github.com/arcmags/ramroot cd ramroot ./ramroot enable -r 这里替换为/dev/System/root的UUID -b 这里替换为/dev/sdb1的UUID # 注意，这里生成initramfs时会报错（如果你使用linux-hardened的话）,可以暂时忽略重新生成initramfs：mkinitcpio -p linux-hardened安装引导:pacman -S grub e…