|
本帖最后由 amadeusN 于 2022-8-2 11:30 编辑
由于最近公司业务拓展,要求去火星出差三个月。可是没有固定宽带,所以就拿出了两张4G卡。
由于这两张卡不是同一个运营商,而我又需要各自让他们过一下不同的透明代理以节省流量。所以就有了这个方案。
我相信没人会用完全一样的网络拓补, 但是里面的部分内容还是有记录的价值。希望可以帮到遇到困难的您。
本文几乎没有原创,内容由来包括但不限于
https://molezz.net/n1-debian-ubuntu-lxc-openwrt https://github.com/unifreq/openwrt_packit/blob/master/files/qemu-aarch64/qemu-aarch64-readme.md https://takuya-1st.hatenablog.jp/entry/2021/03/22/100446
使用的固件/系统来自于
https://github.com/SuLingGG/OpenWrt-Buildbot
immortalwrt-armvirt-64-default-rootfs.tar.gz
https://www.right.com.cn/forum/thread-4076037-1-1.html
openwrt_qemu-aarch64_generic_vm_k5.18.14-flippy-75+.qcow2
https://github.com/ophub/amlogic-s9xxx-armbian/releases
Armbian_22.08.0_Aml_s905d_bullseye_5.15.58_server_2022.07.30.img
网络拓补大概是这样
两个4G卡(插入4G卡的4G路由器)分别过两个LXC的欧派网关,然后再KVM虚拟一个欧派当二级主路由。
下面开始高效率的命令行,让我们从装完debian的N1开始。
#设置网桥
- nano /etc/network/interfaces
复制代码- auto br0
- iface br0 inet static
- address 192.168.1.22
- netmask 255.255.255.0
- gateway 192.168.1.1
- bridge_ports eth0
- bridge_stp off
- bridge_maxwait 5
- dns-nameservers 192.168.1.1
复制代码
#开启BBR
- echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
- echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
- sysctl -p
- lsmod | grep bbr
复制代码 #安装中文
#安装 x11 字库
- apt-get install -y fonts-noto*
复制代码 #安装KVM依赖包
- apt update && apt upgrade -y && apt-get install -y gconf2 qemu-system-arm qemu-utils qemu-efi libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager seabios vgabios gir1.2-spiceclientgtk-3.0 xauth ipxe-qemu
复制代码 #在unifreq的详细教程里是没有ipxe-qemu的,会报错failed to find romfile "efi-virtio.rom",最后在日本的玩家这里找到了答案。
#启动
#在虚拟机配置里添加wan口虚拟网卡。就算你打算kvm下主路由,也推荐添加一个eth1。以解决独臂路由lan端DHCP失灵问题
#不要忘记修改lan地址
#开机自启
#My vmname=OpenWRT
#安装LXC
- apt-get install -y lxc bridge-utils
复制代码 #配置LXC模板,这里只演示一台基于LXC虚拟的欧派网关。
- mkdir /var/lib/lxc/OpenWrt1
- mkdir /var/lib/lxc/OpenWrt1/rootfs
- nano /var/lib/lxc/OpenWrt1/config
复制代码- lxc.include = /etc/lxc/default.conf
- lxc.include = /usr/share/lxc/config/common.conf
- lxc.include = /usr/share/lxc/config/userns.conf
- lxc.arch = armvirt
- lxc.uts.name = OpenWrt1
- lxc.start.auto = 1
- lxc.start.delay = 1
- lxc.rootfs.path = /var/lib/lxc/OpenWrt1/rootfs
- lxc.mount.auto = proc:mixed sys:ro cgroup:mixed
- # lan interface
- lxc.net.0.type = veth
- lxc.net.0.flags = up
- lxc.net.0.link = br0
- lxc.net.0.name = eth0
- lxc.cgroup.memory.limit_in_bytes = 512M
- # lxc.cgroup.cpuset.cpus = "0,1"
- # 挂载host的文件夹
- # lxc.mount.entry = /mnt/usb mnt/usb none rw,bind,create=dir 0 0
- # vpn tun启用
- lxc.mount.entry = /dev/net/tun dev/net/tun none rw,bind,create=file 0 0
复制代码 #选择您喜欢的固件,把tar.gz文件丢尽N1的root目录
#解包下载的openwrt
- tar zxvf op.tar.gz -C /var/lib/lxc/OpenWrt1/rootfs/
复制代码 #My filename = op.tar.gz
#不要忘记修改lan地址
最后,我无法解决的问题有:
1.LXC的实例由于未知原因停止后无法启动,只能随机启动。也就是说当您需要重启LXC网关时,必须重启宿主机N1。
2.KVM下均衡负载感觉有点奇奇怪怪,但是规则是可用的。
如果您在折腾N1方面经验尚浅,建议查看我引用的原帖。不仅非常详细,而且那才是创造了价值的东西。而我这充其量就是一个成功报告或者记录。
什么网络风暴?不怕的,我现在在火星面临的是太阳风暴。区区网络风暴。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|