VMware Workstation虚拟机实例:让外网访问虚拟机

这几天在一台大内存的拥有双千兆网卡的服务器上搞了一个虚拟机做测试,目的是让虚拟机也能跟其他真实存在的机器一样成为一台服务器,为局域网和互联网提供服务。也就是说不止要让局域网的其他机器能访问到,因为有分配了一个公网的IP地址,所以也要让外网访问虚拟机。嗯?有点枯燥?那咱们配图说话(点击图片看大图):

现实物理上 逻辑上向实现的效果

这次安装虚拟机采用的是VMware Workstation。由于之前用虚拟机顶多就是在局域网内跑或是单机跑。所以从来都没怎么关注过VMware Workstation的网络类型。于是马上Google百度分别来几下。搜索到了ChinaUnix论坛上的一篇帖子:http://www.chinaunix.net/jh/4/376768.html

感谢作者,图文并茂介绍了VMware Workstation的虚拟网络类型。经过学习之后,我决定采用Bridge方式。因为这个方式很适合用来实现我想要的功能。

逻辑上,我们在虚拟机上也建立两张网卡,再采用bridge的网络类型,把两张虚拟网卡桥接到实际存在的两张物理网卡上,再分别设置相对应的IP地址。即可。母机上的两张物理网卡,一张是接入内部交换机,网卡名字后面有#2。另外一张接入外网的路由器中。

具体上如何操作呢?下面咱们也来图文并茂给大家介绍一下。图三 首先,得建立虚拟机(感觉是废话),最好采用自定义建立,这样在选择网络的时候,选择Bridged方式(另外三个分别是NAT、host-only、不是用任何网络),建立好之后,先别启动虚拟机。点选如(图三)所示(点击菜单栏的Edit后,再点Virtual Network Settings...) 点了之后会出现Virtual Network Editor的界面,点击Automatic Bridging,然后把那个勾勾取消掉。再点击Host Virtual Network Mapping的标签,进入如(图四)的界面。

这里解释一下哦。因为我们需要虚拟两张网卡,然后采用的是bridge的方式,所以我们这里需要设置一下。把两张虚拟网卡桥接到母机的物理网卡上。如(图四),我们可以看到有VMnet0到VMnet9共10张虚拟网卡。其中,VMnet0默认是采用Bridge是用的虚拟网卡,VMnet8是默认情况下NAT方式使用的虚拟网卡,VMnet1是默认采用host-only时使用的虚拟网卡。当然,这些虚拟网卡的用途,在VMware Workstation中都是可以变更的。

图四点击看大图 图五点击看大图

现在,我们把VMnet0的栏位选择我们的物理网卡#2。再把VMnet2的栏位选择我们的物理网卡(接外网的那张。)这样,VMnet0桥接到局域网的网卡上,VMnet2桥接到外网的网卡上了。

接下来就是为新建立的虚拟机添加第二张虚拟网卡,点击VMware Workstation主菜单上的VM,出现的下拉菜单中再点击Settings... 或是按快捷键CTRL+D。然后在出现的虚拟机编辑界面中,点击add。会出现Add Hardware Wizard的界面。再点击Ethernet Adapter后按下一步,一直到出现如(图五)的界面 ,(图五)的界面就是选择网络类型,这里我们选择自定义(Custom),然后在下拉的虚拟网卡中,选择我们之前设置过桥接的VMnet2(因为建立VMnet0已经被第一张虚拟网卡使用了)。选好之后,点完成。这样就完成了整个虚拟机爽网卡的配置了。接下来就是挂载镜像,启动虚拟机。安装系统。系统安装完成之后,可以看到虚拟机系统也有双网卡了。然后在两张虚拟网卡上分别设置局域网IP地址和外网的IP地址。这里再跟大家解释一下:像我介绍的这样采用桥接方式之后,我们的虚拟机就跟母机在网络上处于对等地位,网络关系上是平等的。因为我这个虚拟机已经分配了一个公网的IP地址。所以。也就实现了文章开头的需要让虚拟机成为局域网中的一台服务器的功能。由于有公网的IP地址,所以以上设置完成之后,就可以使用设置在虚拟机的那个公网IP访问虚拟机了。而局域网的机器则可以采用设置在虚拟机上的局域网IP地址访问虚拟机。整个关系就变化成下图:

采用桥接方式示意图

单网卡单IP的情况请查看:《VMware Workstation实例二:单IP的虚拟机提供外网访问》

Blog出了点毛病。请勿担心。已解决!

今天才发现我昨天修改的那个搜索栏在IE下凄惨不堪。。有时间会调整一下。
还有,今天发现后台只要有提交数据,就会出现空白。正在寻找原因。

原因找到了,我心血来潮,把主题下的functions.php的文件编码修改为utf8。结果就出现以上两个问题了。我现在修改回ANSI的编码格式,就正常了。晕。

原来是因为我保存为utf8。但是编辑器自动加入BOM。结果就不行了。后来去掉了BOM就OK了。呵呵。

即食伊面!厦门泡面!

吃了20多年了吧。

很小的时候,刚刚上小学的时候,每天早晨都是即食伊面+鸡蛋。就这么吃到小学毕业,偶尔会吃更贵一点的其他牌子的泡面,但是我不喜欢,我还是喜欢厦门泡面。

也就是因为我喜欢吃,爸爸就教我煮泡面,所以我只会煮泡面而已。

一直到离开家去外面上初中高中,每次回到家里,肚子饿了,我也吃这个即食伊面。它没有其他牌子的泡面那么多料,面条本身也不是那么好吃。但是,汤!那包调味料!!!那味道!!!!绝了!!!!其他牌子的泡面根本无发跟它比!因为即食伊面的调味料太好了。那味道,我现在写这个日志,都在流口水!!!

由于即食伊面便宜,现在我在大型超市买不到这个即食伊面,只能在小杂货铺里面才能买到,可能是因为利润太低了吧,超市都不肯卖了。还记得即食伊面在我小的时候一包4毛5,前几天买的时候是1块钱一包。在前几年,我极穷的时候,又不想向家里求助,那阶段,我吃最多的就是即食伊面了。

直到每次吃着即食伊面,就会想起父亲母亲。小时候家境并不好,当时一包即食伊面的价格是4毛5。这4毛5在我们农村,那可以足够一家人吃一顿饭了。

最后,即食伊面的冒牌货很多。咱们这里介绍一下。买的时候,注意看牌子,一定要“双山”牌的才是正宗的!切记啊!只有这个牌子的才正宗好吃,因为其调味料的沙嗲味道,其他厂家无法模仿!

修改Microsoft SQL Server 排序规则的方法

注意:任何操作前,请务必备份数据库!此方法不一定适合您的环境,仅供参考。

操作方法:打开SQL 查询分析器
1、如果是数据库:
ALTER DATABASE 数据库名 COLLATE 排列规则
例如:

ALTER DATABASE 9NPC COLLATE Chinese_PRC_CI_AI

2、如果是表中的字段:
ALTER TABLE 表名 ALTER COLUMN 字段名 数据类型(长度) COLLATE 排列规则
例如:

ALTER TABLE Userinfo ALTER COLUMN name varchar(4) COLLATE Chinese_PRC_CI_AI

关于Microsoft SQL Server 排序规则的简介,请看
http://hi.baidu.com/813318/blog/item/783e2ffb7e55f6156c22eb62.html

【转】四种镜像实现方法和原理

这个文章是转自梦游科技信息港的客服中心,因为我有有租用他们的空间,他们有提供镜像的服务。

1.最简单的方法:
一台做主服务器, 其它作镜像服务器, 数据库存在主服务器上, 镜像服务器使用远程调用功能读取主服务器的数据库. 使用工具让主服务器上的网页文件和镜像服务器同步.

优点: 实现简单
缺点: 远程调用效率低, 速度慢. 如果主服务器挂了就全部不行了.

2. 复杂的方法: 相当于集群, 一台做主服务器, 其它作镜像服务器, 让主服务器和镜像服务器数据同步, 包括网页和数据库. 当用户访问的时候, 可以直接读取主服务器或者镜像服务器的数据, 当需要写数据的时候, 通过镜像服务器传送数据直接写到主服务器上.

优点: 速度快
缺点: 实现起来困难复杂. 花费巨大. 如果主服务器挂了就全部不行了. 主服务器和镜像服务器必须保持良好的连接让数据同步时间尽量减少.

3. 更复杂的方法: 相当于更高级的集群, 全部机器数据同步, 包括网页和数据库. 当用户访问的时候, 可以直接读取任何一个服务器的数据, 当需要写数据的时候, 写到正在访问的服务器上, 然后数据再传输到其它服务器. 其中一台当机后恢复的话自动从其它没当机的服务器上同步最新数据.

优点: 速度快, 就算其中某个服务器挂了也不影响正常使用.
缺点: 实现起来非常困难非常复杂. 花费巨大. 主服务器和镜像服务器必须保持非常良好的连接让数据同步时间尽量减少, 不然可能会产生很多问题.

4. 不简单也不复杂的方法: 类似CDN的功能. 一台做主服务器, 其它作镜像服务器, 当用户访问镜像服务器的时候, 镜像服务器从主服务器读取数据返回给用户, 然后缓存数据. 当下一个用户访问同样的页面的时候, 直接返回缓存数据. 写数据的时候通过镜像服务器传送数据直接写到主服务器上.

优点: 实现简单. 花费小. 可以很容易地应用到不同网络不同地区的服务器或网站.
缺点: 镜像服务器必须和主服务器有良好的网络连接, 不然会比较慢. 如果主服务器挂了就全部不行了.

lower_case_table_names=1 让MySQL不区分大小写!

此前有款网络游戏的数据库是采用MySQL。操作系统是CentOS。部分服务器的操作系统又是Windows
出现了一个小毛病。那就是MySQL大小写的问题。

CentOS安装的MySQL的配置文件中(/etc/my.cnf),是没有lower_case_table_names=1这行的。
Windows安装的MySQL的配置文件中(my.ini),是有lower_case_table_names=1这行的。

lower_case_table_names=1的用途是让MySQL实现不区分大小写。

所以当时出了些毛病,后来才发现是这个的问题。连忙在CentOS中的my.cnf(/etc/my.cnf)的[mysqld]区段下增加:

lower_case_table_names=1

MYSQL 局域网或是远程连接速度慢的两种解决方法

配置服务器的MYSQL.发现局域网连接速度非常慢.每次都要等几秒钟.这样对于服务器来说可是致命的.

my.ini
[mysqld]
里面添加了

skip-name-resolve

了之后,
发现速度快了.但是localhost却无法登陆,只能使用IP.

后来.发现,我在(windows)hosts文件里面把IP地址和对应机器名字输入之后,保存,再连.速度果然快了.....

此文写于此前的博客
http://www.i0595.net/blog/post/53.htm