PVE虚拟机下安装ikuai、openwrt及配置IPv6

本文最后更新于:2021年9月21日 下午

PVE虚拟机下使用ikuai进行流控,openwrt进行去广告、KMS服务器等高级功能。
2021.9后可参考视频PVE全新奶妈保姆级+爱快+openwrt+黑群晖7.0.1+直通+IPV6+MAC地址

一、 安装PVE

2.1 固件安装

用U盘制作ventoy启动盘后,把PVE官方映像拖到U盘里面。

bios里面使用u盘启动,选择下载的PVE官方映像进行安装。

  1. 选择安装的磁盘。
  2. country选择China
  3. 输入root密码,邮箱随意,可以不输入。
  4. 网卡默认,hostname设置为你的域名或随意域名,下面的ip按需设置,网关设为openwrt的地址,DNS设为114.114.114.114。
  5. 安装。

2.2 web界面配置

输入https://你的ip:8006/进入web界面。

点击系统-网络-选择默认网桥(类别为Linux Bridge),双击-桥接端口,把上面的网络设备名称全部添加进去(空格间隔)。

双击网络里面的全部接口-设置为自动启动。

下面更换源和关闭订阅提示。
将下面的代码保存为pve.sh,拖到PVE/root根目录,chmod +x pve.sh./pve.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#! /bin/bash

#修改apt国内源
echo "deb http://mirrors.ustc.edu.cn/debian/ stretch main contrib non-free" > /etc/apt/sources.list
# echo "deb-src http://mirrors.ustc.edu.cn/debian/ stretch main contrib non-free" >> /etc/apt/sources.list

echo "deb http://mirrors.ustc.edu.cn/debian/ stretch-updates main contrib non-free" >> /etc/apt/sources.list
# echo "deb-src http://mirrors.ustc.edu.cn/debian/ stretch-updates main contrib non-free" >> /etc/apt/sources.list

echo "deb http://mirrors.ustc.edu.cn/debian/ stretch-backports main contrib non-free" >> /etc/apt/sources.list
# echo "deb-src http://mirrors.ustc.edu.cn/debian/ stretch-backports main contrib non-free" >> /etc/apt/sources.list

echo "deb http://mirrors.ustc.edu.cn/debian-security/ stretch/updates main contrib non-free" >> /etc/apt/sources.list
# echo "deb-src http://mirrors.ustc.edu.cn/debian-security/ stretch/updates main contrib non-free" >> /etc/apt/sources.list
echo -e "\033[32m 已修改apt源为中国科学技术大学源!\033[0m"

#修改pve-no-subscription源
rm -f /etc/apt/sources.list.d/pve-enterprise.list
# echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" >> /etc/apt/sources.list
wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
echo -e "\033[32m 已完成修改pve-no-subscription源!\033[0m"

#apt update更新
apt update -y && apt dist-upgrade -y & apt-get clean
#pveupdate
#pveupgrade
echo -e "\033[32m 已完成apt更新!\033[0m"

#登陆屏蔽订阅通知
# find / -type f -name "*.js" | xargs grep -Hn --color=auto "You do not have a valid subscription for this server"
sed -i_orig "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
echo -e "\033[32m 已屏蔽登陆订阅通知!\033[0m"

2.3 关闭TSO

PS:我用的M73,因为原生网卡不支持,需要关闭TSO,如果你的不需要,则忽略此步骤,先安装ethtoolapt install ethtoolip link show查看网口,用ethtool -k vmbr0查看网口是否开启了TSO,我这边网口是vmbr0。

关闭TSO命令ethtool -K vmbr0 tso off

nano /etc/init.d/tsooff,编辑开机自动关闭TSO脚本如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh

### BEGIN INIT INFO
# Provides: tsooff
# Required-Start: $network $remote_fs $local_fs
# Required-Stop: $network $remote_fs $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: TSO_off
# Description: tso_off
### END INIT INFO

ethtool -K eno1 tso off
ethtool -K vmbr0 tso off
ethtool -K vmbr1 tso off

exit 0

ctrl+O,ctrl+X保存并关闭编辑

chmod +x /etc/init.d/tsooff

将脚本加入自动执行
update-rc.d tsooff defaults

2.4 添加温度显示

使用GitHub-pvetools一键工具添加温度显示

命令行安装,需要用root账号来运行

在终端中按行分别执行以下内容:

强烈建议先删除企业源:rm /etc/apt/sources.list.d/pve-enterprise.list

1
2
3
4
5
export LC_ALL=en_US.UTF-8
apt update && apt -y install git && git clone https://github.com/ivanhao/pvetools.git
cd pvetools
./pvetools.sh
# 如果提示没有权限,输入chmod +x ./*.sh

执行后,按提示操作即可。

卸载脚本

删除下载的pvetools目录

2.5 更改ProxmoxVE的LXC仓库源为国内中科大源

1
2
3
grep -rn "download.proxmox.com" /usr/share/perl5/PVE/*   #查找设定下载源的文件
sed -i.bak "s#http://download.proxmox.com/images#https://mirrors.ustc.edu.cn/proxmox/images#g" /usr/share/perl5/PVE/APLInfo.pm #替换为中科大源
wget -O /var/lib/pve-manager/apl-info/mirrors.ustc.edu.cn https://mirrors.ustc.edu.cn/proxmox/images/aplinfo-pve-6.dat # 下载aplinfo-pve-6文件,也可下载aplinfo.dat

二、 安装ikuai

点击local-内容-上传,上传ikuai官网下载的ISO映像。

创建虚拟机-名称ikuai-操作系统选择上传的映像-系统显卡一定要选择VMWARE兼容,否则不能正确显示。-硬盘总线SCSI,磁盘大小2-CPU为1核2线程、高级中启用NUMA(支持热拔插,不需要则不开启)-内存64位4096或者32位2048-网络VirIO(半虚拟化)-确定。

web界面点击虚拟机100。

硬件-添加-网络设备-选择桥接接口-模型选VirtIO-添加。

选项-开机自启动设置为

启动,选择控制台。2绑定网卡,0LAN口地址设置。

登录ikuai的web界面。

网关配置

三、 安装openwrt

3.1 PVE配置

先修改映像名字为 openwrt.img ,再用 winscpopenwrt 的映像传到 PVE/root 根目录。

PVE的shell命令行工具中输入如下命令:

映像转换的命令格式为(区分大小写):
qemu-img(转换工具) convert -f raw(-f后面指明原文件格式) -O qcow2(输出格式) openwrt.img openwrt.qcow2

qemu-img convert -f raw -O qcow2 openwrt.img openwrt.qcow2

首先先创建虚拟机101.

PVE的web界面点击虚拟机101

操作系统 -> 不使用任何介质。

系统 -> 默认。

硬盘 -> 随意设置 2G, 之后会删除。

CPU -> 1核2线程 -> 类别 host

内存 -> 1024

网络 -> 默认。

然后PVE-web界面分离不用的硬盘:选择刚刚创建的“Openwrt虚拟机” -> 硬件 -> 硬盘(scsi0) -> 点击“分离” -> 点击“删除”。

PVE的shell命令行工具中输入如下命令:

导入磁盘命令格式为(区分大小写):
qm importdisk 101(虚拟机编号) openwrt.qcow2(映像名字) local-lvm(pve存储空间名字)

qm importdisk 101 openwrt.qcow2 local-lvm

选择刚刚创建的“Openwrt虚拟机” -> 硬件 -> 未使用的硬盘0 -> 点击“编辑” -> 总线/设备“SATA” -> 添加。

硬件 -> 硬盘SATA0 -> 调整磁盘大小,增加3

(这一条如果不用openwrt拨号可以不设置,我这边没添加)添加-网络设备-选择桥接接口-模型选VirtIO-添加。

切换到虚拟机的“选项”选项卡,双击“引导顺序”,第一引导项选“Disk ‘sata0’”。开机自启动设置为

启动虚拟机101,控制台操作如下命令行。

1
2
3
4
5
6
# 修改LAN口固定IP
vi /etc/config/network
# option ipaddr可以改为你想要管理路由的IP地址,比如'192.168.10.1'

# 重启网络
/etc/init.d/network restart

3.2 更改web端口和SSH端口

  1. 修改uhttpd端口
1
2
3
4
5
6
# 修改uhttpd
vi /etc/config/uhttpd
# 将以下改为新的端口
list listen_http 0.0.0.0:80 --> list listen_http 0.0.0.0:8081
# 保存,重启uhttpd
#/etc/init.d/uhttpd restart

3.3 网关配置

登录openwrt的web界面。

网关配置

3.4 在openwrt配置HP1020设置为网络打印机

参考:openwrt共享打印机【上】【完美解决】HP10系打印异常问题

openwrt安装打印服务器
1、安装USB支持软件包(eSir固件可省略)
opkg update
opkg install luci-i18n-base-zh-cn (openwrt安装中文语言包)
opkg install kmod-usb-storage
opkg install kmod-usb-printer #USB口打印机支持
opkg install p910nd
opkg install luci-app-p910nd
opkg install luci luci-base luci-compat (更新一下luci-compat即可)
2、WEB界面设备选择HP1020,接口未指定,端口默认,双向模式关闭
3、上传固件sihp1020.dl到路由器/etc/
4、/etc/hotplug.d/usb/10-usb-printer(替换原有的10-usb_printer文件)(自动加载固件到打印机)
5、网络-防火墙-通信规则,开放9100端口
6、写入语句到路由器启动项中 cat /etc/sihp1020.dl >>/dev/usb/lp0(路由器在重启后自动加载固件到打印机)
7、PC上添加本地网络打印机,路由器和打印机双向打印都关闭。

四、 配置ipv6

首先在ikuai中网络设置-开启IPv6并设置DHCPv6(很简答,选自动获取,傻瓜操作)。

其次在openwrt中IPv6如此设置参考图片,图片里是WAN,但我们是二级路由,所以是LAN

  1. 从网络 –> 接口 –> 删除“IPv6 ULA 前缀” –> 保存&应用
  2. 手动添加一个新接口–> IPV6 -> 协议选 DHCPv6客户端 -> 自定义接口: @lan -> 提交
  3. DHCP/DNS –> 高级设置 –> 禁止解析 IPv6 DNS 记录 ,取消勾选
  4. 防火墙 –> 基本设置 中 入站数据、出站数据、转发,全部改为“接受” -> IP 动态伪装: 勾选 -> 区域中 LAN 入站数据、出站数据、转发,全部改为“接受” -> 继续点击修改(lan口) -> 覆盖网络 勾选IPv6、LAN -> 端口触发 勾选IPv6、LAN
  5. 网络 -> 负载均衡 -> 策略 -> 修改-> 备用成员设为 默认(使用主路由器)

访问IPv6测试网页测试

使用IPv6进行内网穿透教程

五、 修复ikuai状态监控中MAC地址重复的问题

一、进入openwrt后台,系统 – 软件包-刷新列表

二、在过滤器里面搜索SNMP(eSir的固件自带SNMP,不需要单独安装)
在可用安装包里面安装snmpd。

三、安装好后回到爱快配置。高级应用-第三层应用,添加一条
里面SNMP服务器ip:就填入你openwrt的后台地址即可,其他就不用填其他的。

四、现在回到爱快监控里面看,MAC地址已经显示正确了且不重复了。

五:如果安装SNMP出错,可按下面方法处理(eSir的固件自带SNMP,不需要单独安装):
ssh连接你的OPENWRT路由,连接后输入以下代码(下载可能有点慢)

1
2
3
echo "nameserver 114.114.114.114">/tmp/resolv.conf
rm -f /var/lock/opkg.lock
opkg update

六、 双路由如何设置端口转发

情景设置:
爱快:10.10.10.3,它负责PPPoE拨号,负责DHCP,在DHCP上设置了网关为10.10.10.1
openwrt:10.10.10.1,它负责广告屏蔽和其他网络应用,它在内网上设置了静态IP,网关设置为10.10.10.3

方法如下:

  1. 在爱快路由上设置:内网地址全部设为10.10.10.1(即openwrt的ip)。内网端口就是局域网访问端口,不能重复(比如ikuai内网访问端口为80,我需要外网访问端口为800;openwrt端口改为81,外网访问端口801);外网端口设置为外部访问的端口号(这边iKuai为800,openwrt为801)。
  2. 在openwrt上设置:外部端口设为局域网访问端口(按上面的例子ikuai就是80,openwrt就是81),内部ip地址为需要访问设备的ip,内部端口设为局域网访问端口(ikuai就是80,openwrt就是81)。(PS:外部区域即源区域,和内部区域都是LAN)

等于是做了两层转发,先从wan口经过ikuai转发到openwrt,然后从openwrt转发到内网需要访问的ip和端口。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!