我试过一键虚拟化项目的pve安装脚本,可惜没有对ipv6 only进行适配,使用他提供的任何一个脚本都会导致机器断网。
DD系统,使用5k哥的脚本1keydd的devdeskos(我印象里基于pve)模板,不行,脚本不知道为什么半天没动静。
官方文档是只有英文版的,啃起来说难倒是不难,但是整合了一下自己踩过的坑和nat网络配置,希望能帮到我自己,还有正在读文章的你。
下文中ipv6地址均使用 [::1] 举例,操作时记得换成自己真实的ipv6地址,一般都是网卡上的。
安装一些必要的组件:
apt update
apt install vim wget sudo -y
下面主机名以 mypve 为例,你想设置什么就设成什么。首先设置一下主机名:
hostnamectl set-hostname mypve
编辑hosts vi /etc/hosts
,在最后添加这一行内容:
::1 mypve.proxmox.com mypve
# 添加源
echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
# 更新
apt update && apt full-upgrade
apt install proxmox-default-kernel -y
systemctl reboot
apt install proxmox-ve postfix open-iscsi chrony -y
Note:
Local Only
。mypve.proxmox.com
,直接OK就完事了。稍稍优化一下PVE的占用。
apt remove linux-image-amd64 'linux-image-6.1*' -y
update-grub
如果不是双系统,那么可以直接删除os-prober软件包。
apt remove os-prober -y
单节点pve,用不着的服务,统统关掉!这里不多解释了,参考了下面参考文章里的第二个文章,那边有一些解释。
systemctl stop pve-ha-lrm.service
systemctl stop pve-ha-crm.service
systemctl disable pve-ha-lrm.service
systemctl disable pve-ha-crm.service
systemctl stop pvescheduler.service
systemctl disable pvescheduler.service
systemctl stop spiceproxy.service
systemctl disable spiceproxy.service
同上。
TEMP_CRON=$(mktemp)
sudo crontab -l > $TEMP_CRON
echo "*/5 * * * * echo 1 > /proc/sys/vm/drop_caches" >> $TEMP_CRON
echo "*/5 * * * * sleep 60; echo 2 > /proc/sys/vm/drop_caches" >> $TEMP_CRON
echo "*/5 * * * * sleep 120; echo 3 > /proc/sys/vm/drop_caches" >> $TEMP_CRON
echo "*/5 * * * * sleep 180; fstrim -av" >> $TEMP_CRON
sudo crontab $TEMP_CRON
rm $TEMP_CRON
cat >>/etc/sysctl.conf << EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF
sysctl -p
echo 'fs.file-max = 65535' >> /etc/sysctl.conf
echo '* soft nofile 65535' >> /etc/security/limits.conf
echo '* hard nofile 65535' >> /etc/security/limits.conf
echo 'ulimit -SHn 65535' >> /etc/profile
接下来,最好reboot
重启一下,继续下面的操作。
注: 网卡配置只有桥接eth0(如果有多个v6 可以用vmbr0来配置ipv6公网 ,然后内网nat warp v4出口) 我这台机器没有多个ipv6,ipv6 nat也没啥意义,就没有整。
编辑/etc/modprobe.d/local.conf
: vi /etc/modprobe.d/local.conf
,添加或修改这一行内容:
options ipv6 disable=0
编辑/etc/modules
:vi /etc/modules
,添加如下内容(对的,就一个ipv6):
ipv6
接着通过ip a
看一下ip在哪个网卡上,一般都是eth0
,下面就拿eth0举例了。如果不是eth0,下面的eth0(8、9行)全部换成你的网卡名称。
编辑/etc/sysctl.conf
:vi /etc/sysctl.conf
,添加如下内容到文档底部:
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv6.conf.eth0.autoconf=0
net.ipv6.conf.eth0.accept_ra=2
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.default.proxy_ndp=1
net.ipv6.conf.all.proxy_ndp=1
下面是重点,必须三思而后行,稍有失误就有很大可能导致机器断网。
建议先备份一次原先的网卡配置,如果炸了进vnc还原后再进行操作就可以了:cp /etc/network/interfaces /etc/network/interfaces.bak
网卡配置文件所在位置从上面你应该就看出来了:/etc/network/interfaces
。
懒了,自行对比一下内容吧:
我的原先配置如下:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet6 static
accept_ra 0
address 2604:abc0:XXXX:XXXX:0000:0000:XXXX:XXXX
netmask 64
post-up /sbin/ip -r route add 2604:abc0:XXX:XXX::X dev eth0
post-up /sbin/ip -r route add default via 2604:abc0:XXX:XXX::X
编辑后:
# The loopback network interface
auto lo
iface lo inet loopback
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet6 static
accept_ra 0
address 2604:abc0:XXXX:XXXX:0000:0000:XXXX:XXXX
netmask 64
bridge_ports eth0
bridge_stp off
bridge_fd 0
auto vmbr1
iface vmbr1 inet static
address 10.10.10.1/24
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -j MASQUERADE
post-up /sbin/ip -r route add 2604:abc0:XXX:XXX::X dev eth0
post-up /sbin/ip -r route add default via 2604:abc0:XXX:XXX::X
编辑完成后,执行下面命令锁定文件,pve8会将其覆盖!
chattr +i /etc/network/interfaces
重启机器,能联网,就是完工了。
开小鸡的时候,选择STATIC(静态ip),ip填10.10.10.XX/24,网关10.10.10.1就可以了,小鸡和母鸡通信理所应当就是10.10.10.1。
由于我的vps只有ipv6网络,无法访问ipv4网络,故配置完网卡后安装一下warp,提供v4网络连接。
我使用的是fscarmen的脚本:
wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh
选择添加IPv4出口,我用的是warp+,这篇文章主要讲pve,就不多说了,配置起来很简单的