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

PVE使用LXC跑openwrt的研究

PVE使用LXC跑openwrt的研究

PVE常用配置修改工具
使用脚本更新PVE源和修改PVE--pvetools
这是一个为proxmox ve写的工具脚本(理论上debian9+可以用)。包括配置邮件,samba,NFS,zfs,嵌套虚拟化,docker,硬盘直通等功能。
方式一:命令行安装
需要用root账号来运行
在终端中按行分别执行以下内容:
强烈建议先删除企业源:rm /etc/apt/sources.list.d/pve-enterprise.list
XML/HTML代码
  1. export LC_ALL=en_US.UTF-8
  2. apt update && apt -y install git && git clone https://mirror.ghproxy.com/https://github.com/ivanhao/pvetools.git
  3. cd pvetools
  4. ./pvetools.sh
一键无脑安装: 
XML/HTML代码
  1. echo "nameserver  8.8.8.8" >> /etc/resolv.conf && rm -rf pvetools && rm -rf /etc/apt/sources.list.d/pve-enterprise.list && export LC_ALL=en_US.UTF-8 && apt update && apt -y install git && git clone https://mirror.ghproxy.com/https://github.com/ivanhao/pvetools.git && echo "cd /root/pvetools && ./pvetools.sh" > pvetools/pvetools && chmod +x pvetools/pvetools* && ln -s /root/pvetools/pvetools /usr/local/bin/pvetools && pvetools
方式二:wget离线下载安装(或者下载后ssh传到PVE服务器)
XML/HTML代码
  1. wget --no-check-certificate https://mirror.ghproxy.com/https://github.com/ivanhao/pvetools/releases/download/pve8/pvetools-pve8.0.3.zip
  2. unzip pvetools-pve8.0.3.zip
  3. cd pvetools-pve8.0.3
  4. ./pvetools.sh
如果提示没有权限,输入 chmod +x ./*.sh
PVE一键换源、去订阅等(另外一个修改配置工具)
首先安装curl、wget、squashfs-tools工具
以下请在PVE命令行中操作
使用root用户登录,执行以下命令
XML/HTML代码
  1. apt update && apt install -y curl wget squashfs-tools
插件安装:
方式一:PVE中输入以下命令安装pve.sh,然后在PVE命令行中直接输入 pve 运行 推荐
XML/HTML代码
  1. wget https://mirror.ghproxy.com/https://raw.githubusercontent.com/roacn/pve/main/pve.sh -O /usr/bin/pve && chmod +x /usr/bin/pve
在PVE命令行中输入 pve 即可运行脚本。
方式二:直接运行
XML/HTML代码
  1. bash -c  "$(curl -fsSL https://mirror.ghproxy.com/https://raw.githubusercontent.com/roacn/pve/main/pve.sh)"
LXC容器OpenWrt安装、更新
方式一:PVE中直接使用 openwrt 命令运行自动安装更新脚本 推荐
XML/HTML代码
  1. wget https://mirror.ghproxy.com/https://raw.githubusercontent.com/roacn/pve/main/openwrt.lxc.sh -O /usr/bin/openwrt && chmod +x /usr/bin/openwrt
在PVE命令行中输入 openwrt 即可运行脚本,进行安装或更新操作。
方式二:直接运行
XML/HTML代码
  1. bash -c  "$(curl -fsSL https://mirror.ghproxy.com/https://raw.githubusercontent.com/roacn/pve/main/openwrt.lxc.sh)" 
固件下载相关
XML/HTML代码
  1. 选项          说明                        默认值  
  2. 仓库地址       github用户名称/仓库名称      roacn/build-actions  
  3. TAG名称       所在release的tag名称         AutoUpdate-x86-lxc  
  4. API文件       所在release的附件api文件名称  zzz_api  
  5. 固件格式       .tar.gz或.img.gz格式固件;  
  6. 设置为default,默认获取云端两种格式固件;  
  7. 设置为.tar.gz,则只获取云端.tar.gz格式固件;  
  8. 设置为.img.gz,则只获取云端.img.gz格式固件   default  
OpenWrt容器相关
XML/HTML代码
  1. 选项       说明                      默认值  
  2. 容器ID     lxc容器id,需要>=100       100  
  3. 容器名称    lxc容器管理页面显示的名称    OpenWrt  
  4. CPU核心    lxc容器分配CPU核心数        4  
  5. 内存大小    lxc容器分配内存大小,单位MB  2048  
  6. 磁盘大小    lxc容器分配磁盘大小,单位GB  2  
  7. 网络接口    lxc容器分配的网络接口数量    1  
  8. 开机自启    是否启用开机自启动,1为开启,0为不开启    1  
  9. 启动顺序    在所有PVE虚拟机的启动排序    1  
PVE  LXC容器开启TUN/TAP
openclash的tun模式必须修改配置文件,或者zerotier这些需要tun网卡的都必须设置。
假设openwrt的id是102,所以需要找到102的配置文件。
XML/HTML代码
  1. cd /etc/pve/lxc/
  2.  
  3. cat >>102.conf<<EOF
  4. lxc.apparmor.profile: unconfined
  5. lxc.cgroup.devices.allow: a
  6. lxc.cap.drop:
  7. lxc.cgroup2.devices.allow: c 10:200 rwm
  8. lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
  9. EOF
或者手动编辑lxc的配置文件,在最下面添加一下代码
XML/HTML代码
  1. lxc.apparmor.profile: unconfined
  2. lxc.cgroup.devices.allow: a
  3. lxc.cap.drop:
  4. lxc.cgroup2.devices.allow: c 10:200 rwm
  5. lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
然后重启102容器就可以了。
OpenClash手动安装
提前安装好这些依赖:
XML/HTML代码
  1. #iptables
  2. opkg update
  3. opkg install coreutils-nohup bash iptables dnsmasq-full curl ca-certificates ipset ip-full iptables-mod-tproxy iptables-mod-extra libcap libcap-bin ruby ruby-yaml kmod-tun kmod-inet-diag unzip luci-compat luci luci-base
XML/HTML代码
  1. #nftables
  2. opkg update
  3. opkg install coreutils-nohup bash dnsmasq-full curl ca-certificates ipset ip-full libcap libcap-bin ruby ruby-yaml kmod-tun kmod-inet-diag unzip kmod-nft-tproxy luci-compat luci luci-base
然后手动上传安装luci-app-openclash_xxx_all.ipk,不管错误提示,刷新openwrt网页就出现openclash了。剩下的就是根据提示下载内核,配置上网。
PVE安装docker+docker-copmose+Portainer
XML/HTML代码
  1. bash <(curl -sL https://iii80.com/sh/docker.sh)
  2. bash <(curl -sL https://iii80.com/sh/docker-cn.sh)
删除local-lvm分区 (非必要可不修改)
因为local-lvm,占用空间大而且存储类型少,越到后期上面有大量的虚拟机需要迁移,删除会比较麻烦,如果lvm已经有了虚拟机需要将虚拟机磁盘迁移到local存储,再删除
XML/HTML代码
  1. lvremove pve/data  #local-lvm的挂载位置  
  2. lvextend -l +100%FREE -r pve/root  #将空闲的空间全部给local  
从页面将local-lvm删除,修改local卷的存储类型,防止后续有些类型的数据无法存储,全部加上, 勾选备份保留。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):