环境:公网服务器A
目标:公网服务器A上,创建虚拟机B,并可远程管理B。
其它:要求共用一个IP。
注意:虚拟机--操作系统级,虚拟主机--web应用服务器级,当然有混着叫的,知道自己要什么就行。这里创建虚拟机--操作系统级别的。
A的操作系统ubuntu,安装vm虚拟机,这里选用vmplayer(vmserver有问题,见后面描述)。
在vmplayer里安装操作系统,也可以下载虚拟机备份,如
http://www.thoughtpolice.co.uk/vmware/
http://www.vmware.com/appliances/directory/
为啥没windows呢?国外肯定没了,免费则侵权啊,国内就不怕了,找找也有。
在此安装与A同样的操作系统ubuntu,该系统为虚拟机B,选用Nat模式,当然也可以选择Host-only。(网络模式见后面描述)
A安装了vmplayer后,多出了两个网络适配器vmnet1、vmnet8。
vmnet1为Host-only模式时B访问A的地址。
vmnet8为Nat模式时B访问A的地址。
在B操作系统的shell里操作,设置B地址为静态地址,否则虚拟机重启后可能会变化。
nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address B地址
netmask 255.255.255.0
gateway 网关
B地址使用原来的,ifconfig查看,网关可以通过route -n查到。
重启 /etc/init.d/networking restart
操作系统设置搞定,接下来要配置两个重要的东东
1)端口映射:用来管理B。
2)web转发:让B可以通过A被外网访问到。
注意三个ip地址(A外网地址、A内网地址、B内网地址),B只有内网地址。
通过A的2222端口映射到B的22端口:
iptables -t nat -A PREROUTING -d A外网地址 -p tcp --dport 2222 -j DNAT --to-destination B内网地址:22
iptables -t nat -A POSTROUTING -d B内网地址 -p tcp --dport 22 -j SNAT --to A内网地址
iptables -A FORWARD -o eth0 -d B内网地址 -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -i eth0 -s B内网地址 -p tcp --sport 22 -j ACCEPT
还要把ip转发的开关打开
nano /etc/sysctl.conf
去掉下面注释
#net.ipv4.ip_forward=1
系统重启后会丢失,为自动启动,修改网络配置。
nano /etc/network/interfaces,增加两行:
#网络关闭时保存配置
post-down iptables-save > /etc/iptables.up.rules
#网络连接时加载配置
pre-up iptables-restore < /etc/iptables.up.rules
检查,重启网络
/etc/init.d/networking restart
再
iptables -L
可以查看到两行Chain FORWARD,在OK。
这样端口映射就搞定了,当然可以映射任何端口,包括80。
但是通常A的80端口还有其他用途,不能转给B,因此就要配置第二个,web转发。
A上安装好apache2,修改/etc/apache2/sites-available/下的配置文件,默认为default。
Web站点通常单独使用配置文件,如xxx.conf,给个例子
NameVirtualHost *:80
<VirtualHost *:80>
ServerName xxx.wikiway.cn
#web转发
ProxyPass / http://B的内网地址/
ProxyPassReverse / http://B的内网地址/
</VirtualHost>
这样http://xxx.wikiway.cn就转发到了虚拟机B上去了。
安装多个虚拟机,配置多个转发,达到多个主机共享一个IP的目的。
虽然在A中安装多个web服务器或者配置多个host、connector,通过apache2前置转发也可以共享一个ip,但非常不安全。各种用户权限配置麻烦,疏忽大意,给黑客“旁注”的攻击机会。别相信虚拟主机托管的安全性,国内这点银子还能要求网管怎样。资源允许情况下,不如用虚拟机,保住A则万事ok。
========附========
VMware免费产品简介
1)VMware vSphere Hypervisor:本身是个操作系统,装在裸机上,再在上面安装各种操作系统。
2)VMware Player:虚拟程序,在vm里再安装操作系统。
3)VMware Server:虚拟程序,在vm里再安装操作系统。比player多一个远程桌面管理(web方式),还有个好处,服务器可以不需要GUI界面。
注意vmserver安装后其本身有tomcat服务,若host机器已经使用tomcat,应修改vm的tomcat端口(8005/8009,8080vm未启用),路径查看进程可知。
vmserver共用ip则只能用nat或者host-only模式,这两种模式在ubuntu11.04上有问题,启动/etc/init.d/vmware start报Virtual ethernet failed。替换为vmplayer后则没问题。
VMware三种网络模式
1)Bridged,桥接模式,相当于虚拟机单独物理ip,也需要公网分配独立的ip,这样与主机是平等的,可访问外网,外网可直接访问到虚拟机。
2)Nat,适配模式,通过主机上网,其网址为局域网虚拟地址,可访问外网,外网需通过主机转发访问虚拟机。
3)Host-only,主机模式,只能访问主机,也具有局域网虚拟地址,不能访问外网,适合安全性高的场合。