OneNote

源码编译

编译安装squid
./configure --prefix=/usr --localstatedir=/var --libexecdir=${prefix}/lib/squid 
--datadir=${prefix}/share/squid --sysconfdir=/etc/squid
--with-default-user=proxy --with-logdir=/var/log/squid
--with-pidfile=/var/run/squid.pid
--with-openssl --enable-ssl --enable-ssl-crtd

make
make install

ubuntu22.04系统需要自己编译openssl_v1.1后再编译squid, 对应的选项

--with-openssl --enable-ssl --enable-ssl-crtd

修改成

--with-openssl=/usr/local/openssl_1.1/ --enable-ssl --enable-ssl-crtd

systemctl cat squid

# /etc/systemd/system/squid.service 
## Copyright (C) 1996-2020 The Squid Software Foundation and contributors
##
## Squid software is distributed under GPLv2+ license and includes
## contributions from numerous individuals and organizations.
## Please see the COPYING and CONTRIBUTORS files for details.
##
[Unit]
Description=Squid Web Proxy Server
Documentation=man:squid(8)
After=network.target network-online.target nss-lookup.target

[Service]
Type=forking
PIDFile=/var/run/squid.pid
ExecStartPre=/usr/sbin/squid --foreground -z
ExecStart=/usr/sbin/squid -sYC
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed

[Install]
WantedBy=multi-user.target
ubuntu20.04编译Linux 5.15.41

安装依赖

sudo apt install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison 
sudo apt install dwarves
sudo apt install zstd

拷贝当前内核的配置文件

cp /boot/config-$(uname -r) .config 

配置编译选项, 可以直接save && exit

make menuconfig
scripts/config --disable SYSTEM_REVOCATION_KEYS
scripts/config --disable SYSTEM_TRUSTED_KEYS

编译内核

make
make modules_install
sudo make install

Application

kvm bridge网络配置

①删除kvm默认网桥。

virsh net-destroy default 
virsh net-undefine default

②更改host主机系统网络配置。

③创建虚拟机, 网络选择刚创建的bridge-kvm。

win10虚拟机添加物理分区(virtio驱动, 读写性能高)

安装virtio驱动有两种方案:

①安装win10虚拟机的时候就带上virtio驱动, 这样win10虚拟机本身的启动盘也是virtio类型, 性能最佳 
win10已经安装后可以挂载virtio-win-0.1.215.iso, 运行里面的setup.exe, 安装驱动后重启,
这里需要注意的是版本太新可能会安装失败。推荐virtio-win-0.1.215.iso

驱动安装后即可添加本地磁盘(virtio方式, 否则只能SATA方式性能较低) 。ls -l /dev/disk/by-id/ 结合 df -h得到需要添加的物理分区编号。

添加硬件, 磁盘。

这里介绍安装virtio驱动的第一种方法。

①安装win10时, 启动盘就选择virtio。

②这种方式安装win10时需要额外添加一个CD/DVD, 加载virtio-win-0.1.215.iso, 不然没法识别virtio硬盘。

③加载驱动, 识别硬盘,然后安装win10系统 。

然后就可以识别virtio硬盘, 安装常规方式安装系统。

参考文章:
https://linuxhint.com/install_virtio_drivers_kvm_qemu_windows_vm/
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_host_configuration_and_guest_installation_guide/form-virtualization_host_configuration_and_guest_installation_guide-para_virtualized_drivers-mounting_the_image_with_virt_manager
kvm虚拟机添加串口设备

①虚拟机添加完成后默认会生成一个serial设备。

②虚拟机内部开机自启动串口ttyS0设备。

systemctl enable serial-getty@ttyS0.service 
systemctl start serial-getty@ttyS0.service

③更改grub文件, 指定串口输出(/etc/default/grub)。

GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0" 
GRUB_TERMINAL="serial console"
update-grub2

④宿主机用命令连接到串口。

virsh list 
virsh console ubuntu20.04
kvm 虚拟机使用usb设备

①为虚拟机的usb设备设置为usb3。

②使用USB功能重定向即可, virt-manager菜单:Virtual Machine -> Redirect USB Device

③查看Windows Guest我的电脑。

pve安装openwrt

①解压openwrt--combined-squashfs.img.gz文件, 得到openwrt--combined-squashfs.img, 上传到pve主机。
②分离pve默认创建的硬盘后, 点击“删除”该硬盘。
③ssh登录到pve的后台, 把img导入100编号的虚拟机。

qm importdisk 100 ./openwrt-*-combined-squashfs.img local-lvm 

⑤然后进入openwrt虚拟机的硬件设置, 选中未使用的磁盘0 -> 编辑 -> 弹出窗口默认配置, 直接点击添加。

docker部署rsshub
不包括puppeteer
docker run -d --name rsshub -p 1200:1200 -e HTTP_BASIC_AUTH_NAME=username -e HTTP_BASIC_AUTH_PASS=password diygod/rsshub

包括puppeteer
docker run -d --name rsshub -p 1200:1200 -e HTTP_BASIC_AUTH_NAME=username -e HTTP_BASIC_AUTH_PASS=password diygod/rsshub:chromium-bundled
ubuntu22.04安装搜狗输入法

安装搜狗输入法官方包后需要再安装对应依赖。

sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2 libgsettings-qt1 
批量修改文件和文件夹权限
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;
dnsmasq搭建dns服务器

①关闭系统自带的绑定53端口。
vim /etc/systemd/resolved.conf

DNSStubListener=no 
This will switch off binding to port 53.

②cloudflare官方教程链接。

https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/dns-over-https-client/ 
sudo tee /etc/systemd/system/cloudflared-proxy-dns.service >/dev/null <<EOF

[Unit]
Description=DNS over HTTPS (DoH) proxy client
Wants=network-online.target nss-lookup.target
Before=nss-lookup.target

[Service]
AmbientCapabilities=CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
DynamicUser=yes
ExecStart=/usr/local/bin/cloudflared proxy-dns --address 0.0.0.0 --port 5553

[Install]
WantedBy=multi-user.target
EOF
wireguard Linux客户端

安装依赖

apt install resolvconf

把服务器上生成的client配置文件放到/etc/wireguad目录,配置文件名称必须以.conf结尾(wg0对应配置文件: wg0.conf)。有两种方式可以启动:

①systemd管理客户端
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

②手动启动客户端
sudo wg set wg0 peer <Client Public Key> endpoint <Client IP address>:51820 allowed-ips 10.10.10.2/24
sudo wg

Issues

BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
make: *** [Makefile:1106: vmlinux] Error 1
解决办法: sudo apt install dwarves

手机刷机

ubuntu线刷miui
①安装adb和fastboot
sudo apt install android-sdk-platform-tools

②手机fastboot模式下连接到电脑,输入命令查看是否连接好设备(root权限)
sudo fastboot devices

③解压线刷包,执行刷机脚本(root权限)
sudo ./flash_all.sh
twrp卡刷miui
①手机进入fastboot模式, 连接到电脑 

②刷入TWRP的recovery
sudo fastboot flash recovery twrp-3.6.1_9-0-dipper.img

③重启到recovery模式
sudo fastboot oem reboot-recovery

④双清甚至三清

⑤adb上传卡刷包到手机sdcard目录
adb push ./xiaomi.eu_multi_MI8_V12.5.2.0.QEACNXM_v12-10.zip /sdcard/

⑥recovery里面卡刷即可
注意:有的刷机包和recovery都支持sideload的话可以adb sideload 刷机