OpenVZ虚拟化环境搭建,及中文面板安装

这可能是全网最详细的OpenVZ教程了,包括环境的搭建,面板的安装汉化,内网开设vps无法上网的解决方案。
这个虚拟化我大概在三年前就接触过,拿着一个免费3个月的Xen架构服务器,开出了几十个vps小鸡。当然我不是很建议这种内网开小鸡的方法,因为开出来的vps是无法联网的,还得进行虚拟网卡的操作,也就是说每新开一个都需要做端口转发和网卡桥接,比较麻烦。但如果有一个多IP的服务器,就可以开始愉快的玩耍了,OpenVZ作为一个比较强大的虚拟化程序,可以创建出一堆相互独立的vps用于运行不同的程序。
而且OpenVZ确实比KVM之类的玩起来简单。
promo.png
注意,推荐为物理机,或者Xen,KVM架构的云服务器,其它的虚拟化架构可能出现未知的问题。
我的测试环境为:CentOS6.5 64位,Xen架构
教程参考:乐意分享以及面板官网OpenVZ Web Panel

那么,前期的准备开始了。

1.修改配置文件,关闭SeLinux

vi /etc/sysconfig/selinux

找到相关内容,改为以下的代码

SELINUX=disabled 
SELINUXTYPE=targeted

2.打开3000端口,如果是阿里云腾讯云可以直接在安全组打开,如果不是就执行以下指令

/sbin/iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart

3.配置YUM源,用于直接安装OpenVZ相关服务

cd /etc/yum.repos.d
wget http://download.openvz.org/openvz.repo
rpm --import  http://download.openvz.org/RPM-GPG-Key-OpenVZ
yum update -y

4.修改配置操作系统内核参数

vi /etc/sysctl.conf

找到相关代码,修改为如下

#让VE访问外部网络,启用IP转发
net.ipv4.ip_forward = 1
#控制kernel的debug
kernel.sysrq = 1

上述准备完成,开始安装OpenVZ主服务

1.执行安全指令,通过yum进行安装。

yum install vzkernel vzctl vzquota ploop

2.挂载模块并确认是否加载

modprobe bridge
lsmod|grep bridge

3.重启服务器

reboot

4.检查OpenVZ是否正常运行

chkconfig --list vz
#返回如下信息则表示vz服务正在运行
#vz                0:off 1:off 2:on 3:on 4:on 5:on 6:off
service vz status 
service vz start

到这里OpenVZ的主程序就安装好了,但是如果是这样的话,创建vps都需要手动操作,对于不熟悉linux的人而言很不方便。所以这里我所用的是一个免费的管理面板OpenVZ Web Panel,这个面板前几年我一直在用,但是官网停止维护太久了,而且到某个时间的时候,安装脚本也出现了问题,安装会直接失败。
但是,最近我又发现有人重新开始了对OpenVZ Web Panel面板进行维护,github项目地址是:点击进入
这也就是我想要整理这篇文章的原因。

好的,现在开始安装OpenVZ Web Panel

1.直接运行项目官网提供的脚本。

wget -O - https://raw.githubusercontent.com/sibprogrammer/owp/master/installer/ai.sh | sh

安装后面板应通过以下URL进入,用户名密码都是admin

http://<your-host>:3000

2.对面板进行中文汉化,下载我提供的压缩文件,解压将得到zh_CN.yml放进/opt/ovz-web-panel/config/locales,也可以执行以下指令

wget -P /opt/ovz-web-panel/config/locales http://files.ruletree.club/OpenVZ/zh_CN.yml

汉化文件下载地址:zh_CN.zip

3.有时候会出现无法下载系统模板的问题,因为hw-daemon.rb可能被覆盖为空文档,解决办法就是重新下载hw-daemon.rb这个文件,可以直接在官网的github文件目录里面找到下载,也可以下载我提供的,不过以后版本更新可能就用不了了:点击下载,也可以执行以下的脚本,反正用不了就重新去下载覆盖,覆盖的地址是/opt/ovz-web-panel/utils/hw-daemon,替换完文件就得启动一下

wget -P /opt/ovz-web-panel/utils/hw-daemon http://files.ruletree.club/OpenVZ/hw-daemon.rb
ruby /opt/ovz-web-panel/utils/hw-daemon/hw-daemon.rb start

4.重启OpenVZ Web Panel面板,然后就能登录了

/etc/rc.d/init.d/owp restart

1.png

大概的使用教程如下,大部分内容来自老赵部落,面板还是英文的

1.进入就可以看到系统模板和服务器模板,还有创建vps的地方
3.png
2.但是首先需要下载系统模板,一般下载常用的就好了
4.png
3.创建服务器的模板,就是快速设置vps的cpu,内存,磁盘之类的。
5.png
4.随后设置一个ip段,也就是服务器母鸡拥有的空闲ip,这里可以用内网ip,但是用内网ip的话请参考文章开头描述,需要创建虚拟网卡和桥接。
6.png
5.最后就可以愉快的进行vps创建了。
7.png
8.png

2019/2/15补充,OpenVZ内网nat开设小鸡无法上网的问题解决方案:

我曾经是解决了这个问题的,但是有点记不清了,所以现在留下几个可能会成功的方案,等到时候新买个测试服务器的时候,我会继续修正的,当然如果有人使用并且解决,也可以在评论留言。
注意,建议还是CentOS6.X,7版本的资料太少了。
教程开始
1.编辑/etc/sysctl.conf,找到对应修改如下

net.ipv4.ip_forward = 1

2.在想要联网的小鸡上新建虚拟网卡

vi /etc/sysconfig/network-scripts/ifcfg-eth0:0

写入如下内容,比如我的内网ip地址是10.0.0.3

DEVICE='eth0:0'
NM_CONTROLLED='yes'
ONBOOT='yes'
IPADDR='10.0.0.3'
NETMASK='255.255.255.0'

3.重启小鸡的网络

service network restart

4.回到外部的母服务器,开始设置iptables

iptables -F -t nat
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 母服务器IP地址

如果母服务器和家用电脑一样IP是浮动的,可以用以下指令

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

如果出现以下错误(我当时就被这玩意折腾得够呛)

iptables v1.4.7: can't initialize iptables table `nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded.

用如下指令编辑配置文件

vi /etc/modprobe.d/openvz.conf

然后将对应的信息修改如下

options nf_conntrack ip_conntrack_disable_ve0=0

做完后重启

reboot

5.这个时候,小鸡就可以上网了,可以用以下指令测试

vzctl start 102
vzctl enter 102
ping www.baidu.com

102是小鸡的ID,实际操作以实际为准,返回类似如下的信息就基本上成功了(这里ping不同也可能是DNS设置错误导致的,可以直接在OpenVZ Web Panel面板单独设置)

PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39: icmp_seq=1 ttl=51 time=10 ms
64 bytes from 14.215.177.39: icmp_seq=2 ttl=51 time=7 ms
64 bytes from 14.215.177.39: icmp_seq=3 ttl=51 time=7 ms
64 bytes from 14.215.177.39: icmp_seq=4 ttl=51 time=7 ms

5.最后就是给母服务器的外部端口去映射小鸡的端口,比如ssh的端口,这样就可以通过外部软件链接,比如我用122端口,去映射IP为10.0.0.3小鸡的22端口(你得确保母服务器122端口开启)

iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 122 -j DNAT --to-destination 10.0.0.3:22

最后再说一句,内网开设的话基本上每个vps都需要单独做一条映射和创建虚拟网卡,一个一个来,否则无法上网。但是在你服务器只有一个IP,又需要创建众多相互隔离环境的时候,还挺适合的。
真是累死我了。
【转载请注明来源】

发表评论
加载中...
    1. haoyuli   2019-05-02 17:26

      我发现网上的这个脚本好像不好使了
      wget -O - https://raw.githubusercontent.com/sibprogrammer/owp/master/installer/ai.sh | sh
      会显示如下报错
      ERROR: While executing gem ... (Zlib::GzipFile::Error)
      not in gzip format
      Checking presence of the command: ruby
      Ruby version: 1.8.7
      Checking presence of the command: gem
      RubyGems version: 1.3.5
      Checking Ruby SQLite3 support: ruby -e "require 'rubygems'" -e "require 'sqlite3'"
      之前是没问题的
      测试版本 centos6.8 x64 icon_eek.gif

      查看对话
        1. 不暇   2019-05-03 12:05

          改天我重新测试一下。

相关文章