ProxmoxVE是一个集成了KVM、OpenVZ的开源虚拟化管理平台。基于Debian构建。Proxmox有简单易用的WEB控制面板。让用户可以在网页环境中轻松的建立和管理KVM以及OpenVZ构架的虚拟机。
据我参考的作者所说这个方法适合online.net / oneprovider.com和hetzner.de的独立服务器,以及digitalocean.com的VPS服务器。但目前我只在online的服务器上成功安装。
启用独服(母鸡)的ipv6
关于怎么让母鸡获取ipv6,可以看我这个教程:
安装ProxmoxVE
ProxmoxVE有2种安装方式,一种是常见的从ISO引导安装,需要独立服务器提供IPMI远程界面及远程挂载ISO的功能,因为地域网络限制,不方便且速度较慢。另外一种方法是直接在Debian9系统中通过网络安装,通用性较强,且直接安装最新版本,推荐使用。
首先安装标准的Debian9(64位),一般系统模板中提供的Debian9即可。
为服务器IP地址添加/etc/hosts解析
ProxmoxVE需要主机名可通过/etc/hosts
解析,即需要为该主机名分配一个IPv4地址,同时确保未指定主机名的IPv6地址。
例如,服务器IP地址195.154.138.88,我们为主机设定名称为pve(如果你不知道主机名称是啥,直接在命令行里输入hostname
,显示的即为你的主机名),那么文件应该如下所示:
127.0.0.1 localhost.localdomain localhost
195.154.138.88 pve
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
输入命令hostname --ip-address
,返回值应该是你的服务器IPv4地址。这一步不可跳过且必须正确配置,这是后续安装顺利进行的保证。
接着添加ProxmoxVE的软件源及密钥,并更新系统,出现选项,选择默认即可。
echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.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
apt update && apt dist-upgrade -y
安装ProxmoxVE。
在Postfix Configuration
选项处,如果你的服务器没有邮件系统,并且大部分服务器商家也禁止用服务器向外界发送邮件,所以在出现的选项里面选择No configuration
即可。
apt install proxmox-ve postfix open-iscsi -y
等待它安装结束。
配置网络
首先,配置IPv6网络,编辑/etc/modprobe.d/local.conf
,修改或者添加如下内容:
options ipv6 disable=0
编辑/etc/modules
,添加如下字符:
ipv6
开启IPv4,IPv6转发,编辑/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.enp1s0.autoconf=0
net.ipv6.conf.enp1s0.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
其中的enp1s0
需要修改为自己的网卡名:
net.ipv6.conf.enp1s0.autoconf=0
net.ipv6.conf.enp1s0.accept_ra=2
ip addr
获取网卡名
最后,编辑
/etc/network/interfaces
,内容如下:# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug enp1s0
iface enp1s0 inet dhcp
post-up odhcp6c -P 56 -c 00:03:00:01:6b:e2:4e:a1:46:40 enp1s0 -d
post-up ip -6 a a 2001:bc8:2e51:100::/56 dev enp1s0
post-up ip -6 r a 2001:bc8:2e51:100::/56 dev enp1s0
#之前的内容都不动
#创建虚拟网桥
auto vmbr0
iface vmbr0 inet static
address 10.10.10.1
netmask 255.255.255.0
bridge-ports none
bridge-stp off
bridge-fd 0
iface vmbr0 inet6 static
address 2001:bc8:2e51:100::1
netmask 56
#转发IPv4流量到虚拟机,使虚拟机与外网联通。
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o enp1s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o enp1s0 -j MASQUERADE
重启服务器,登录https://195.154.138.88:8006
(注意这里是https
)网页端进行配置。
配置虚拟机
由于3o的独服性能并不算好,虽然ProxmoxVE可以创建KVM和OpenVZ类型虚拟机。但我还是选择使用OpenVZ类型虚拟机。
OpenVZ类型虚拟机是有官方提供的系统模板,可以直接下载使用,KVM需要自己上传ISO镜像进行系统安装。
左侧选择:数据中心-FR-local,选择模板,即为openvz的模板。
选择一个模板下载使用。点击网页右上角创建CT,即为创建openvz虚拟机。
CPU,内存,硬盘大小等可根据个人需求选择调配。网路部分配置如下:
OpenVZ虚拟机的网卡选择桥接在vmbr0上,IPv4地址选择内网地址段,IPv6地址选择对应物理网卡的地址段。DNS可以填写8.8.8.8或者2001:4860:4860::8888,不填写也行。配置完成后,启动虚拟机就可以连接到外网,但是这时只能访问IPv4地址,IPv6这个时候还是不通的,需要在主机输入以下命令开启:
ip -f inet6 neigh add proxy 2001:bc8:2e51:100::100 dev enp1s0
ip -f inet6 route add 2001:bc8:2e51:100::100 dev vmbr0
尝试ping google.com以及ping6 ipv6.google.com来检验网络是否通畅。
因为IPv6地址没有内网与外网区分,外网是可以直接通过IPv6地址访问虚拟机,所以也可只配置IPv6信息,不配置IPv4信息。
如果有多台虚拟机,可以为每台虚拟机配置一个IPv6地址。理论上硬件允许的话你可以开无限个IPv6虚拟机。
另一方面,IPv4是经过内网转发的,所以现在只可以访问外网,而外网却无法访问虚拟机。所以我们需要配置端口转发,将外部的访问转发到虚拟机。一般的做法是通过iptables进行转发。我的选择是使用brook的一键脚本进行端口转发。
同时在ProxmoxVE防火墙中开放或者关闭10022端口来控制外网对虚拟机的访问。
KVM虚拟机的配置是类似的,创建时选择桥接vmbr0,不论安装的是Linux系统还是windows系统,都需要手动输入IPv4和IPv地址,同时在主机配置IPv6信息和添加端口转发。
这样,一个同时开启了NAT和IPv6的虚拟机就创建好了。但是,还有个问题,IPv6的配置和端口转发是会随着主机重启而失效,我们需要在主机上启动开机自启服务,保证每次开机的时候,虚拟机器都能正常工作。
(下面的方法不可行,求大神留言最新的方法)
这个方法压根不可行,为了防止有人和我一样被坑我就留着了,注意:使用该方法开机运行会导致小鸡无法正常启动,删除rc.local内的内容后,会导致母鸡无法启动
首先,需要在debian 9中开启开机自启服务:
这样,我们只需要将需要执行的命令写在
/etc/rc.local
的exit 0前面,就可以在开机后自动执行。由于online的一个ipv4要5€,我就不测试pve使用多个ipv4创建小鸡了。
参考:
单IP服务器利用ProxmoxVE建立IPv4-NAT和IPv6虚拟机
版权属于:寒夜方舟
本文链接:https://www.wnark.com/archives/32.html
本站所有原创文章采用署名-非商业性使用 4.0 国际 (CC BY-NC 4.0)。 您可以自由地转载和修改,但请注明引用文章来源和不可用于商业目的。声明:本博客完全禁止任何商业类网站转载,包括但不限于CSDN,51CTO,百度文库,360DOC,AcFun,哔哩哔哩等网站。