Blog

Proxmox ve创建虚拟机、设置NAT端口转发教程

    前几天折腾2欧的时候看到后台有Proxmox,就试了下,因为母鸡cpu的限制,不能虚拟kvm的小鸡,只能折腾openvz的了。

    Proxmox 是一个集成了KVM、OpenVZ的开源虚拟化管理平台。基于Debian Etch构建。Proxmox有简单易用的WEB控制面板。让用户可以在网页环境中轻松的建立和管理KVM以及OpenVZ构架的虚拟机。

二、安装Proxmox

我在网上看到很多都是通过官方提供的ISO镜像或者独服自己提供模板来装的Proxmox,自己编译安装还没找到相关的教程,不过对于独服来说挂载个iso也不是啥难事。

1.进入2欧的管理界面,点击“install”进行重装。重装的时候选择“Vurtualization distributions”选项。

20151113-0

 

2. 在上方的系统选择中点击“Proxmox”,之后在最下面点击“install proxmox”按钮。

20151113-1

20151113-2

 

3. 在系统配置选项中依次输入:主机名、管理密码、用户名、用户密码。(这里建议大家用一样的密码以免弄混)

20151113-3

 

4. 在下一个页面中点击“delete all my disks and install the system!” 就进入正式安装环节了。系统会提示这将会花费你45-60分钟的时间。在实际安装中。大概仅需要20-30分钟即可安装完毕。我们仅需要耐心的等待。

20151113-4

 

5. 安装完成之后,即可在后台看到Proxmox的管理地址。如下图。

20151113-5

 

6. 访问该地址,并使用 root 用户以及管理密码登陆。记得选择中文。

需要等1个小时左右才能通过上面 的地址来访问面板,最好直接使用https://yourip:8006来访问面板。

20151113-7

 

7. 成功登陆之后,即可看到简介又强大的proxmox面板。

20151113-6

三、NAT网络配置

在正式创建虚拟机之前,我们先要对Promox的网络进行配置。由于2欧这台机器仅有一个公网IP。我们并不能为创建的虚拟机分配各自的公网IP。所以本章节的目的就是,为每一台虚拟机分配一个内网IP地址。并通过iptables 为每一个内网IP地址做相应的端口转发。

典型的SSH 22端口转发为公网IP其它端口的网络图。

proxmoxnat

当我们通过公网IP(195.154.8.8)的1022端口访问SSH时,首先访问的是Proxmox主机的NAT网络。再通过iptables的转发,最终访问虚拟机内网IP(10.99.0.1)的22端口。从而实现将虚拟机的22端口在公网之中可以顺利访问。

1. 实现代码:

auto vmbr2
iface vmbr2 inet static
    address 10.99.0.254
    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.99.0.0/24' -o vmbr0 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s '10.99.0.0/24' -o vmbr0 -j MASQUERADE
    post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 1022 -j DNAT --to 10.99.0.1:22
    post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 1022 -j DNAT --to 10.99.0.1:22

以上代码将新建一个vmbr2的虚拟网卡。并规划 10.99.0.*内网网段。将此网段的所有上下行流量通过NAT全部转发至vmbr0的网卡。最后两行,是通过iptables将静态IP (10.99.0.1)的22端口转发为公网IP的1022端口。所以如果您需要新建1个以上的虚拟机。请添加更多的转发设置,以及设定新的转发端口。

2. 配置过程

将以上代码复制,并添加到Proxmox主机的 /etc/network/interfaces 文件当中。具体过程参见接下来的步骤。

① 本机通过之前创建Proxmox主机时设置的用户名、密码登陆SSH (例:ssh izcv@195.154.8.8)

② 通过 “su root” 命令,切换为root用户登陆。切换过程需要root密码。

③ 通过vi 编辑器。编辑 vi /etc/network/interfaces  并将步骤1中的代码添加到该文件的最下方。并保存退出。

20151116-0

 

如上代码添加完成后使用如下命令重启网络。

service networking restart


接着使用ssh编辑防火墙规则

iptables -A INPUT -p tcp --dport 1022 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1022 -j ACCEPT

使用 iptables-save 命令保存规则。

四、创建Openvz虚拟机

1. 创建虚拟机之前我们需要将系统镜像拷贝到Proxmox相应的目录当中。镜像可以从各大Linux发行版的官网进行下载。也可以通过Proxmox官网提供的镜像地址下载。

http://download.proxmox.com/appliances/system/

KVM虚拟机所需的ISO镜像对应目录:

/var/lib/vz/template/iso

OpenVZ虚拟机所需的tar.gz镜像对应目录:

/var/lib/vz/template/cache

首先在SSH 连接到Proxmox服务器上之后,通过 “su root”切换为root用户登录。本文所演示的是OpenVZ虚拟机的创建,所以利用 “cd /var/lib/vz/template/cache”命令,进入对应目录。将所需要的系统镜像利用wget命令下载到对应目录当中即可。

2. 登录到Proxmox的WEB后台。点击右上角的”创建CT” 则开始创建OpenVZ虚拟机。

20151116-0

 

3. 根据下列图示填入虚拟机的节点名称、CPU、内存等基本信息。并选择我们之前下载到目录中的镜像模板。

20151117-0

20151117-1

20151117-2

20151117-3

20151117-5

 

4. 在网络选项卡中,按照下图填入相关信息。网卡我们桥接之前创建的“vmbr2”,并为其指定我们预设好的固定IP。后面的DNS、确认。都保持默认,最后点击“完成”即可。

    网关那里应该是10.99.0.254

20151117-6

20151117-7

20151117-8

 

5. 创建完成之后。在该虚拟机中,点击“启动”即可将该机成功启动。我们也可以通过右上角的“控制台”来通过浏览器的VNC来控制我们刚刚创建好的虚拟机。

20151117-10

 

五、通过SSH连接虚拟机

经过以上的步骤我们的“小鸡”,就已经成功建立。并可以通过外网IP的1022端口来连接该虚拟机。如下图

主要来自大表哥的Proxmox创建虚拟机、NAT端口转发教程

4 comments

  1. PlanB

    一直没弄明白,
    post-up和post-down,不是相互抵消了么?为什么要post-down呀?

    沙发
  2. 小宝

    OpenVZ 端口转发可以使用 但是kvm 安装win系统 这个转发命令就不能使用了

    板凳
  3. lop

    赞b( ̄▽ ̄)d

    地板

Leave a Reply