软路由实践
阅读量
0
阅读人次
0
前言
2024/06/29
经过将近一年的使用体验,发现 All In One 模式的软路由,存在很多不足。
- 使用的猫棒,发热量非常大,手放上去感觉会起水泡。这肯定会给稳定性带来影响。
- 在折腾 软路由/NAS 的过程中,经常需要断网、重启等操作,这无疑会影响其他使用网络的人。
- 软路由/NAS 基本就是代表着不稳定,所以网络体验给人带来的感觉就是不好。
这些不足,网上都有人描述。不过自己折腾了一遍,才深有体会。所以后续还是使用光猫 + 2.5G路由器的组合,顶多在 NAS 上根据实际需求,使用 iStroreOS 搭建旁路由。
2023/11/11
经常折腾PC,所以对软路由了解甚久,这次就来折腾一下吧。
经过大约一周的折腾,最后敲定为 爱快(主路由)+ iStoreOS(旁路由)的双路由模式。主要是因为iStoreOS一直拨号不成功,实在没办法才这样,个人意愿还是能少部署一个则少一个。
硬件:
系统:
- Proxmox Virtual Environment,虚拟化平台,后续想着还可以在上面折腾Mac OS。
- iKuaiOS,试了很久,只有它拨号成功了,且其路由能力很强大,设置DHCP规则很灵活。
- iStoreOS,基于OpenWRT深度定制的软路由系统。
软件:
- OpenClash,安装在iStoreOS下,负责科学上网。
IP分配:
设备 | IP | 作用 | 详释 |
---|---|---|---|
猫棒/光猫 | 192.168.1.1 | 桥接 | 光电信号转换 |
爱快 | 192.168.2.1 | 主路由 | PPPoe拨号,内网管理 |
iStoreOS | 192.168.2.2 | 盘路由 | 安装各种插件 |
PVE | 192.168.2.3 | 底层平台 | 管理虚拟底层平台 |
MediaServer | 192.168.2.4 | NAS服务器 | 用于存储文件,Jllyfin |
Ubuntu24.04 | 192.168.2.5 | LXC / VM | Linux虚拟机 |
Windows11(虚拟机) | 192.168.2.6 | 直通核显,HDMI输出 | 挂迅雷? |
Windows7(虚拟机) | 192.168.2.7 | 兼容软件测试 |
Proxmox Virtual Environment
下载最新固件,使用Rufus烧录至U盘。上电R86S后立即按 F7 进入 BIOS 设置,选中U盘作为引导启动项,后续的按照提示操作即可。
在系统安装引导界面,可以设置磁盘分配空间,我们可以预留一部分空间给Windows使用,如果有多系统需求的话。
如果此时需要 iKuaiOS 拨号才能上网,可先配置 iKuaiOS 拨号成功后再继续后续PVE配置。
安装完系统之后,需要修改DNS,默认的DNS只有 127.0.0.1
。
nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 127.0.0.1
替换国内镜像源:
# 基础系统(Debian)
sed -i 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
# Proxmox
source /etc/os-release
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve $VERSION_CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
# ceph 仓库
if [ -f /etc/apt/sources.list.d/ceph.list ]; then CEPH_CODENAME=`ceph -v | grep ceph | awk '{print $(NF-1)}'`; source /etc/os-release; echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-$CEPH_CODENAME $VERSION_CODENAME no-subscription" > /etc/apt/sources.list.d/ceph.list; fi
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak # 不使用enterprise仓库
# CT Templates
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
sed -i 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
systemctl restart pvedaemon
apt update && apt upgrade
pveam update
如果在安装完系统后,想要重新修改IP,可以打开/etc/network/interfaces
文件,更改 vmbr0 的 address 即可。修改完成后需要重启。
auto lo
iface lo inet loopback
iface enp1s0 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports enp1s0
bridge-stp off
bridge-fd 0
iface enp2s0 inet manual
# ......
硬件直通
在kernel中启用I/O Memory Management Unit(直通PCI设置之前必须要启用IOMMU):
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
加载相应的内核模块:
vfio
vfio_iommu_type1
vfio_pci
确认核显的供应商(Vendor)和设备(Device) ID:
lspci -nn
......
00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-N [UHD Graphics] [8086:46d0]
......
在PVE上屏蔽系统中的开源显卡驱动避免开启显卡被系统加载,以及关掉核显使用(后面Windows直通显卡需要用到,屏蔽后,PVE将无法使用HDMI输出,即也无法正常通过显示器查看控制台):
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
options vfio-pci ids=8086:46d0
options kvm ignore_msrs=Y
更新grub及initramfs,然后重启:
update-grub
update-initramfs -u -k all
reboot