记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

Armbian部署LXC环境以及mihomo、openwrt

Armbian部署LXC环境以及mihomo、openwrt

懒人初级目标

image

 
安装lxc环境
XML/HTML代码
  1. apt-get -y install lxc

image

检查
XML/HTML代码
  1. lxc-checkconfig
image
修改lxc默认的一些配置
/etc/lxc/default.conf
XML/HTML代码
  1. nano /etc/lxc/default.conf
image
可根据自己习惯,在基础配置里增加一些其他的设定
禁用lxcbr0启动/etc/default/lxc-net
XML/HTML代码
  1. nano /etc/default/lxc-net
image
创建第一个lxc
基于debian的mihomo
XML/HTML代码
  1. lxc-create --name mihomo --template download -- --dist debian --release bookworm --arch arm64 --server mirrors.bfsu.edu.cn/lxc-images
image
修改配置
XML/HTML代码
  1. nano /var/lib/lxc/mihomo/config
image
使用宿主系统网桥
image
基础环境
XML/HTML代码
  1. apt install -y  openssh-server nano curl wget git apt-transport-https ca-certificates
安装mihomo

telegram-cloud-photo-size-5-6244447463142439184-y

telegram-cloud-photo-size-5-6244447463142439242-y

telegram-cloud-photo-size-5-6244447463142439243-y

退出该lxc
XML/HTML代码
  1. exit
配置LXC 内的debian 网络
XML/HTML代码
  1. nano /etc/systemd/network/eth0.network
根据自己实际情况修改
XML/HTML代码
  1. [Match]
  2. Name=eth0
  3. [Network]
  4. Address=10.10.10.10/24
  5. DNS=10.10.10.1
  6. IPForward=yes
  7. IPv6AcceptRA=true
  8. [Route]
  9. Gateway=10.10.10.1
启、停服务
XML/HTML代码
  1. # 查看网络服务的状态
  2. systemctl status systemd-networkd
  3.  
  4. # 启动网络服务
  5. systemctl start systemd-networkd
  6.  
  7. # 停止网络服务
  8. systemctl stop systemd-networkd
  9.  
  10. # 重启网络服务
  11. systemctl restart systemd-networkd
  12.  
  13. # 设置开机启动网络服务
  14. systemctl enable systemd-networkd
  15.  
  16. # 禁止开机启动网络服务
  17. systemctl disable systemd-networkd
具体操作 mihomo
XML/HTML代码
  1. apt -y install curl nano wget git apt-transport-https ca-certificates apt-utils
  2. wget https://github.com/MetaCubeX/mihomo/releases/download/Prerelease-Alpha/mihomo-linux-arm64-alpha-6399347.gz
  3. gzip -d mihomo-linux-arm64-alpha-6399347.gz
  4. chmod 777 mihomo-linux-arm64-alpha-6399347
  5. mv mihomo-linux-arm64-alpha-6399347 /usr/local/bin/mihomo
  6. mkdir /etc/mihomo
  7. nano /etc/mihomo/config.yaml ## 使用官方推荐配置或者自己按照官方例子填写
  8. git clone https://github.com/metacubex/metacubexd.git -b gh-pages /etc/mihomo/ui
  9. nano /etc/systemd/system/mihomo.service   ###官方文档填写
  10. systemctl daemon-reload
  11. systemctl enable mihomo
  12. systemctl start mihomo
或者自行了解
第二个lxc openwrt
image
使用flippy openwrt rootfs
解压到
XML/HTML代码
  1. tar -zxf openwrt_lxc_template_R24.01.26-flippy-87+-rootfs.tar.gz -C /var/lib/lxc/openwrt/rootfs/
配置网络

image

XML/HTML代码
  1. nano /var/lib/lxc/openwrt/config
XML/HTML代码
  1. # Distribution configuration  
  2. lxc.include = /usr/share/lxc/config/common.conf  
  3. lxc.arch = aarch64  
  4.    
  5. # Container specific configuration  
  6. lxc.apparmor.profile = generated  
  7. lxc.apparmor.allow_nesting = 1  
  8. lxc.rootfs.path = dir:/var/lib/lxc/openwrt/rootfs  
  9. lxc.uts.name = openwrt  
  10.    
  11. # Network configuration eth0  
  12. lxc.net.0.type = veth  
  13. lxc.net.0.link = vmbr0  
  14. lxc.net.0.flags = up  
  15.    
  16.    
  17. # Network configuration  eth1  
  18. lxc.net.1.type = veth  
  19. lxc.net.1.link = vmbr0  
  20. lxc.net.1.flags = up  
  21.    
  22. # PPPoe  
  23. lxc.cgroup2.devices.allow = c 108:0 rwm  
  24. lxc.mount.entry = /dev/ppp dev/ppp none bind,create=file  
  25.    
  26. # TUN  
  27. lxc.cgroup2.devices.allow = c 10:200 rwm  
  28. lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file  
  29.    
  30. # 启用N1 的无线网卡  
  31. lxc.net.2.type = phys  
  32. lxc.net.2.link = wlan0  
  33. lxc.net.2.flags = up  
  34. lxc.net.2.name = wlan0  
启动openwrt
XML/HTML代码
  1. lxc-start openwrt
进入
XML/HTML代码
  1. lxc-attach openwrt
退出
XML/HTML代码
  1. exit
###openwrt内配置网络
XML/HTML代码
  1. nano /etc/config/network
image
配置好后
输入修改后的IP 地址

image

image

imageimage

在这个rootfs内启用N1的无线网卡
image
配置文件中添加
XML/HTML代码
  1. # 启用N1 的无线网卡
  2. lxc.net.2.type = phys
  3. lxc.net.2.link = wlan0
  4. lxc.net.2.flags = up
  5. lxc.net.2.name = wlan0
保存并重启这个lxc
image image
第三个lxc 自定义openwrt
以官方openwrt举例

image

image

下载rootfs
XML/HTML代码
  1. wget https://downloads.openwrt.org/releases/23.05.2/targets/armsr/armv8/openwrt-23.05.2-armsr-armv8-rootfs.tar.gz
解压到lxc目录内,oWrt自己手动创建
XML/HTML代码
  1. tar -xzf openwrt-23.05.2-armsr-armv8-rootfs.tar.gz -C /var/lib/lxc/oWrt/rootfs
增加配置文件
XML/HTML代码
  1. nano /var/lib/lxc/oWrt/config
image
XML/HTML代码
  1. # Distribution configuration  
  2. lxc.include = /usr/share/lxc/config/common.conf  
  3. lxc.arch = aarch64  
  4.   
  5. # Container specific configuration  
  6. lxc.apparmor.profile = generated  
  7. lxc.apparmor.allow_nesting = 1  
  8. lxc.rootfs.path = dir:/var/lib/lxc/oWrt/rootfs  
  9. lxc.uts.name = openwrt  
  10.   
  11. # Network configuration eth0  
  12. lxc.net.0.type = veth  
  13. lxc.net.0.link = vmbr0  
  14. lxc.net.0.flags = up  
  15.   
  16.   
  17. # Network configuration  eth1 根据自身需求决定是否添加该项  
  18. lxc.net.1.type = veth  
  19. lxc.net.1.link = vmbr0  
  20. lxc.net.1.flags = up  
  21.   
  22. # PPPoe 根据自身需求决定是否添加该项  
  23. lxc.cgroup2.devices.allow = c 108:0 rwm  
  24. lxc.mount.entry = /dev/ppp dev/ppp none bind,create=file  
  25.   
  26. # TUN 根据自身需求决定是否添加该项  
  27. lxc.cgroup2.devices.allow = c 10:200 rwm  
  28. lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file  
启动并进入
XML/HTML代码
  1. lxc-start oWrt
  2. lxc-attach oWrt
修改root密码
XML/HTML代码
  1. passwd
修改openwrt网络
XML/HTML代码
  1. vi /etc/config/network
重启网络
XML/HTML代码
  1. /etc/init.d/network restart
image
浏览器访问你修改的IP
image
如果要拨号,删除这个接口
image
稍微配置一下 网关、DNS 根据自己实际情况来

image image

image

网络诊断一下,没问题的话进行下一步
image
配置基础换进
仓库里写了三个非常简陋的基础脚本,凑合用用。
官方openwrt安装中文、和设置时区和一些基础环境的,脚本。
XML/HTML代码
  1. wget -O - https://raw.githubusercontent.com/cooip-jm/About-openwrt/main/bash.sh | sh -s -- -v

image

运行完后image

这个用于拨号足够了,非常轻量化
passwall 官方openwrt安装 仅限ARM
XML/HTML代码
  1. wget -O - https://raw.githubusercontent.com/cooip-jm/About-openwrt/main/install-passwall.sh | sh -s -- -v
image image
openclash 官方openwrt安装
XML/HTML代码
  1. wget -O - https://raw.githubusercontent.com/cooip-jm/About-openwrt/main/openclash-install.sh | sh -s -- -v
上面只是为了演示
额外的一些配置,比如v6 DNS

image

image

 
计划任务重,自动更新openwrt软件包
XML/HTML代码
  1. opkg update && opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade
使用mihomo作为网关的话,后两个可以忽略。。。。。。。。。。。
lxc 自动启动
在配置文件里增加
XML/HTML代码
  1. lxc.start.auto = 1
如果要所有的lxc都自动启动
运行 lxc-autostart --all
配置
宿主系统
XML/HTML代码
  1. nano /etc/systemd/system/lxc-start.service
XML/HTML代码
  1. [Unit]
  2. Description="LXC autostart for lxc user"
  3.  
  4. [Service]
  5. ExecStartPre=/bin/sleep 15
  6. ExecStart=/usr/bin/lxc-autostart --all
  7.  
  8. [Install]
  9. WantedBy=default.target
 
image
启用服务
XML/HTML代码
  1. systemctl daemon-reload
  2. systemctl enable lxc-start.service
  3. systemctl start lxc-start.service
  4. systemctl status lxc-start.service
image
关于debian/ubuntu 或使用(systemd)journalctl在 lxc中的日志相关操作
查看日志占用
XML/HTML代码
  1. journalctl --disk-usage
清理方法可以采用按照日期清理,或者按照允许保留的容量清理
XML/HTML代码
  1. journalctl --vacuum-time=2d
  2. journalctl --vacuum-size=500M
如果要手工删除日志文件,则在删除前需要先轮转一次journal日志
XML/HTML代码
  1. systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service  
要启用日志限制持久化配置,可以修改 /etc/systemd/journald.conf
XML/HTML代码
  1. SystemMaxUse=16M
  2. ForwardToSyslog=no
然后重启服务
XML/HTML代码
  1. systemctl restart systemd-journald.service

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):