什么是LXC?:
LXC是所谓的操作系统层次的虚拟化技术,与传统的HAL(硬件抽象层)层次的虚拟化技术相比有以下优势:
更小的虚拟化开销(LXC的诸多特性基本由内核特供,而内核实现这些特性只有极少的花费,具体分析有时间再说)
快速部署。利用LXC来隔离特定应用,只需要安装LXC,即可使用LXC相关命令来创建并启动容器来为应用提供虚拟执行环境。传统的虚拟化技术则需要先创建虚拟机,然后安装系统,再部署应用。
LXC跟其他操作系统层次的虚拟化技术相比,最大的优势在于LXC被整合进内核,不用单独为内核打补丁。
安装要求:
据博主的观察,CentOS7下整套系统下来所要占用的内存大概在500M左右(包括系统),因此1G其实就可以开着玩了
硬盘占用大概5-7G
然而考虑到小鸡的硬盘,所以至少要15G
KVM虚拟化下的VPS符合安装
HY虚拟化下的VPS也符合安装
安装前准备:
LXC部署需要一个VG卷组,如果你的CentOS在拿到时已经分好区了(比如只有一个区占满了硬盘),则需要做一些改动:
创建部分可以按顺序参见:
官方推荐的划分:
/ 80-100 GB 实际测试中只需要5-6G就可以将系统和常见的ISO装下了(CentOS7,8 Debian 7,8,9 Ubuntu16,18,20的64位各一份)
SWAP 4 GB + 这个我设置的是与内存相同,应该要随自己VPS的情况改变
存储 硬盘上剩余的所有空间 要创建为VG卷组,但是不应该创建逻辑卷(参考准备工作)
安装
打开Shell终端(例如PuTTY)并通过SSH连接到您的服务器。运行以下命令:
wget –N http://files.virtualizor.com/install.sh
chmod 0755 install.sh
./install.sh email=your@email.com kernel=lxc
(注意这里email=your@email.com email=这里填写你的邮箱)
整个安装过程较慢,安装完成后这里可以记录下后台信息,再按y重启。
安装的日志文件位置为 /root/virtualizor.log
登录
要登录Softaculous Virtualizor管理面板,请访问以下URL:
https://服务器IP:4085/
https://服务器IP:4084/
使用服务器root账号密码登录。
管理面板的样式:
Virtualizor使用的端口为4081 – 4085,如果登不上可以考虑防火墙的问题
firewall-cmd --zone=public --permanent --add-port=4081-4085/tcp
创建存储
Virtualizor Admin Panel -> Storage -> Add Storage
Storage Type :储存类型 (LVM)
Storage Path: 储存路径(LVM卷组路径,如果用我上面的那种的话就填/dev/VolGroup01)
Overcommit:空间大小(剩余多大就填多大)
Alert Threshold: 告警(就是如果硬盘占用超过这个值就会提示你,一般不变就行了)
Primary Storage: 如果你只有这一个硬盘请勾选,否则WHMCS开机器会报错
构建NAT环境
创建虚拟网卡
CentOS后台输入:
vim /etc/sysconfig/network-scripts/ifcfg-intbr0
拷贝下面内容填写进去:
DEVICE=intbr0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.0
重启网络
service network restart
创建IP池
在Virtualizor的管理页面 IP Pool -> Create IP Pool
name 随意 Gateway 192.168.1.1 netmask 255.255.255.0 nameserver1/2 选择Google就好 First IP 192.168.1.2 Last IP 192.168.1.254 Is Internal IP Range ? 这里是重点!这个要打上勾,然后下面的这项才会出现 Internal IP Bridge 这里填刚刚创建的那个虚拟网卡名字 intbr0 其他不变,点保存
下载操作系统镜像
Virtualizor Admin Panel -> Media -> OS Templates Browser
然后勾选你要的镜像,最后点 save settings保存 会自动下载。
创建VPS
Virtualizor Admin Panel -> Create VPS
在下方展开Advanced Options 高级选项
全部设置完毕后,页面最下方点Add Virtual Server 添加虚拟服务器即可
端口转发
wget -N --no-check-certificate "https://github.com/ldayday/virtualizor-iptables/releases/download/1.1.1/iptables-pf.sh"&&chmod +x ./iptables-pf.sh&&bash ./iptables-pf.sh
初次使用前请请务必执行 1. 安装 iptables
最后CentOS后台输入,完成:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
不执行会出现NAT机器可以进入,但是不能Ping外网,也没网的情况
- 第一个要转发的肯定是22端口,这样才能ssh到nat鸡上
- 打开脚本后,选择
4. 添加 iptables 端口转发
比如: iptables欲转发至的远程端口:22,远程ip:就是vps的IP 本地监听端口,你挑一个喜欢的,比如 50000 本服务器公网 ip,一般这个直接回车 转发类型:1.TCP 或者默认回车就好
- 然后按提示操作,成功后,就可以在外面像正常的vps那样,用母鸡的公网ip,端口用刚刚设置的那个50000 ssh到nat鸡了。
- 假如你要一次性设置20个转发端口那么下面举例子:
iptables欲转发至的远程端口:50001-50019,远程IP:就是你创建的vps的IP 本地监听端口:50001-50019 本服务器公网 ip,回车 转发类型:3.TCP+UDP
- 到这里,这个nat机器正常的了
遇到的问题总结
- 如果你发现,ssh进入到nat鸡,但是连接不到外网,具体为
- 可以ping 127.0.0.1 / nat鸡ip / 母鸡公网ip,但就是不能继续ping不到外面,或许还差一条iptables规则
- 在母鸡上操作
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE