2010年12月31日星期五

专访罗斯柴尔德大中华区总裁俞丽萍:“谁是下一个吉利和沃尔沃?”(转)

摘自:http://www.21cbh.com/HTML/2010-12-31/0MMDAwMDIxMzg0MA.html

200多年以来,罗斯柴尔德家族似乎一直有着"和国王一起散步"的神奇权力。

三年前出版的《货币战争》,将200多年前这个创立了现代金融集团雏形的犹太家族,称为"大道无形的世界首富"。罗斯柴尔德上海的办公室里,挂着李鸿章的照片,旁边还有他在1896年给罗斯柴尔德的亲笔信。

2005年,家族奠基人梅耶・罗斯柴尔德(Meyer Amschel Rothschild)名列福布斯杂志"历史上最具有权势的二十位商人"第7位,被称作"国际金融之父"。

随着美国式的投资银行在全球各地急行军式的扩张,曾经引领华尔街辉煌的罗斯柴尔德家族似乎风光不再。

不过,在最近一次的金融危机中,全球投行纷纷陷落甚至破产,而罗斯柴尔德却全身而退,成为爱尔兰、荷兰、英国等十几个国家的财务顾问,并参与了多个国家的汽车行业的重整。

"《货币战争》只是财经小说。罗斯柴尔德家族并非'阴谋家族',而是一个自律的、明确自己经营和战略方向的财富家族。"

说这话的,是目前唯一进入罗斯柴尔德集团全球执行委员会的女性,该集团大中华区的掌门人俞丽萍。12月29日,她接受了本报记者专访。

"经过金融危机,全球制造业进入了洗牌阶段。可以想见,未来中国企业跨国并购的势头有多大。"俞丽萍说。

低调的"金融专卖店"

约俞丽萍采访是件困难的事。

上网搜索有关罗斯柴尔德在中国的近况,除了吉利收购沃尔沃一事触发了集中关注之外,鲜有笔墨。而最近一次彭博社的采访,也是在罗斯柴尔德总部的要求下完成的。

这些年,俞丽萍很少接受媒体采访,也没有上过电视,更不愿提供自己的照片。她上任后主动提出,大中华区不需要公共关系部门。

"我从事过新闻行业,深知新闻宣传的强大力量。"俞丽萍说,"但对罗斯柴尔德来说,扎实完成知名度高的交易,才是最好的宣传。"

面前这位优雅地喝着咖啡、谈话间还细心地将餐巾折叠整齐的女士,是吉利18亿美元收购沃尔沃的幕后推动者之一。收购沃尔沃这样的"百年老店",就是她所看重的知名度高的案子。

"我能够在罗斯柴尔德呆上8年,也是因为我的人生和事业追求和公司风格高度吻合。"俞丽萍表示。

她名片上印着"洛希尔(香港)有限公司",这是罗斯柴尔德的另一个中文译名。很多人因为这个原因,很少将其与"神秘家族"联系起来。

罗斯柴尔德家族在香港及内地开展业务的主要机构,是LCF Rothschild Ltd和洛希尔父子有限公司(N M Rothschild&Sons Limited)。

和金融危机前的投行不同,按照俞丽萍的说法,罗斯柴尔德就是个"金融专卖店",不创造也不购买金融产品,专心做客户的财务顾问。

1994年1月至2004年12月,罗斯柴尔德为55个项目提供了顾问服务,涉及金额达480亿美元,项目数量超过了其它任何一家投资银行的同类业务。

"其实罗斯柴尔德这么多年一直没有太大的变化,只是因为其他投行业务发展太过迅猛,让我们看起来显得低调。"俞丽萍说。

她表示,作为财务顾问,我们更不能高调――毕竟高度保密信息即便透露出一丁点儿,都会引起上市公司股价的异动,或给项目谈判带来影响。

中国的"不扩张"计划

1994年,罗斯柴尔德就在上海设立了办事处。

目前,罗斯柴尔德家族投资2450万欧元持有青岛银行4.98%的股份,是中海基金第三大股东,同时与中信华东集团在山东蓬莱合资成立罗斯柴尔德男爵中信酒业公司。

作为财务顾问,罗斯柴尔德曾经参与了中国联通240亿美元收购中国网通的"中国最大并购案",他们的客户有中石油、上海汽车、小肥羊和阿里巴巴等。

近期,罗斯柴尔德帮助华能支付12亿美元买下印度GMR集团的总部位于美国马萨诸塞州的InterGen公司50%股权;同时,它还帮助中国五矿资源以18.46亿美元收购其母公司名下资产澳大利亚采矿公司MMG,为上市公司注资,这一收购案几周前获得澳大利亚政府批准。

而帮助吉利收购沃尔沃,使得罗斯柴尔德在中国并购顾问排名中,从2009年的第19位,上升到第8位。

俞丽萍表示:"罗斯柴尔德在继承家族专一谨慎风格的同时,也不断适应中国市场快速增长的变化。"

不过,迄今为止,罗斯柴尔德在中国并没有庞大的扩张计划。

俞丽萍透露,目前罗斯柴尔德在中国没有计划设立新的办公室,也不会一味扩大业务范围:"未来我们在中国仍然以并购和资本市场顾问业务为主线,我非常看好其前景。"

她说:"尽管IPO仍是投行的主流业务。但是很多人忽视了一点:企业在资本市场进行积累后,接下来要依靠并购整合来实现进一步增长。"

她透露,现在罗斯柴尔德正在为国内的一些工业企业物色合适的海外收购对象。

吉利项目之后,她开始考虑,尽管国有企业仍唱主角,但各行各业的民营企业对于技术和品牌的需求逐渐浮现,这是她未来进一步投入精力的领域。

罗斯柴尔德模式

从历史上看,与政界保持紧密联系,是罗斯柴尔德金融王国的不二法门。

时至今日,罗斯柴尔德家族的收入当中有一大半来自于为世界各地的政府提供顾问和金融投资服务。

在吉利收购沃尔沃之后,俞丽萍也遭遇到了媒体对其和政府高层关系密切的种种猜测。

"这些猜测完全淡化了整个团队在案子中付出的努力。"俞丽萍表示,"我不觉得和政府沟通是投行的主要工作内容。我们的客户自身都有很强的沟通能力,而投行需要做的是,从商业上为公司提出更大的利益。"

不过,从她的经验来看,和一些公司管理层熟悉,对于项目的推动有一定作用,如果在全球范围内获得了第一手信息,那么她就会将目标公司直接拿给客户,这样就会占得先机。

前不久由她推动的光明乳业收购澳洲糖业的案子,就是通过这样的方式而来。

目前,她手上有中信证券和法国里昂证券的合作项目。不过,她对结果态度谨慎:"即便有99%的成功概率,我都不敢预测。有时放弃也是一种成功。"她表示。

跨国并购:中资企业路漫漫

如果说前两年跨国并购都是以吸引海外战略投资为主,如今此轮金融危机后,中国强大的外汇储备和企业自我增长的需求,都为中资企业的海外扩张提供了动力。

汤森路透集团报告称,2010年中国并购市场总体规模较去年上涨18%,涉及金额1643亿美元,发生并购案例3057宗。其中中国涉及对外并购交易321宗,规模545亿美元。

根据俞丽萍观察,中资企业的海外并购,从早期购买矿产等自然资源,到如今开始逐步转向制造业和消费品行业。

"全球的工业制造业进入了一个洗牌阶段,正在实现产业转化。中国在制造业转移中,正好可以有机会重新整顿,以资金换取技术、品牌和国际网络。"

经济复苏期,欧美频频向中国企业伸出橄榄枝,政府间游说也不在少数。俞丽萍认为:"老外现在盯着中国企业口袋里的钱。中国企业必须冷静,对自己的战略定位有清晰认识。"

根据多年的从业经验,她认为中资企业海外并购时,冲动型收购是通病。"如果客户对于目标对象是否能成为今后的战略资产并不明确,那么将影响我们对交易的估值,也会影响客户的长远发展"

她透露,经常发生的情况是,客户缺乏对目标资产的战略性考虑,为几百万或几千万美金使一个好的收购项目夭折,这非常可惜。另外,也有一些客户在最后关头因为非商业因素而放弃收购。

在选择具体标的时,中资企业也面临难题:仅收购一部分股份,无法满足企业的战略发展需要,对目标公司的话语权会很小;而全盘吃下,中国企业需要考虑未来的管理如何跟上。

"谁是下一个吉利?这很难说。"她表示,"沃尔沃拥有独立品牌和技术体系,吉利能收购其技术、网络、团队和知识产权――这样理想的标的,又适合中国公司的,为数很少。"

2010年12月27日星期一

在盛大像游戏一样工作(转)

摘自:http://magazine.caing.com/2010-12-24/100210886.html?utm_source=mail.caing.com&utm_medium=referral&utm_content=caing_news_mail&utm_campaign=caing

从游戏式管理到岗位作业平台,盛大网络不断升级的信息化管理系统,令陈天桥成为盛大网络里的“老大哥”,清楚地看到公司里每个人的工作
《新世纪》周刊 记者 王姗姗

      陈天桥提出游戏式管理的灵感,源自他对网络游戏观察产生的疑问。一款游戏能吸引300万人同时在线,玩家们练级涨级的时候“从来不需要谁批准”。

  “这300万人自觉自愿地付出时间、金钱,而游戏仅仅给他们提供虚拟的成就感,他们就很满足。员工从企业拿工资,为什么还老有人闹着要走?”他曾经这样向负责人力资源的下属表达自己的困惑。

  盛大网络创始人、董事长兼CEO陈天桥从2007年就开始琢磨游戏式管理的可行性,并将之作为公司年度十大项目之一。2008年该系统正式上线运营,盛大对外宣布,“从此再也没有手动调薪,晋级统统由经验值积分说了算”。

  简而言之,游戏式管理体系核心是经验值管理系统,是一套通过实时记录方式,让所有员工犹如游戏中的“打怪”“做副本”一样,完成自己的工作以获 得经验值累积的激励系统。在电子游戏里,你的经验值决定着你的游戏角色能否升级。而对于盛大网络员工来说,自从游戏式管理上线后,经验值就直接关系到他们 能否加薪、升级。

  两年过去,这套游戏式管理推行情况如何?根据盛大网络12月22日发布的2010年三季度《员工发展报告》,过去三个月内,在纳入游戏式管理体系下的4000名盛大网络员工中,40%的员工自动获得职级晋升和薪资增长,10%的员工获得职级大类晋升。

  2005年,陈天桥从北大方正挖来米丹宁,出任盛大网络副总裁兼首席信息官(CIO),从此开始了对于盛大IT管理系统的搭建,目标是实现整个 公司的信息化系统管理。而所谓的经验值管理系统,只是这个庞大信息化系统的一小部分。2006年7月上线的工作流平台,就像一个神经网络,让陈天桥通过这 个平台能实现对企业各项工作流程的掌握。而即将上线的岗位作业平台,将进一步发挥精细化管理的能量,实现对各个流程系统的集合,届时员工每时每刻的行动都 会留下痕迹并被记录,转化为经验值,而陈天桥则能凭此实现对每一名员工工作细节的掌握。

  “挣点分呗!”现在,这句话已经逐渐成为盛大员工们之间互相打趣的口头禅。在企业工作真的能简单等同于参与一场网游吗?

员工=玩家

  并不是所有盛大网络员工都纳入了游戏式管理体系。随着盛大网络近几年陆续展开收购,员工数量膨胀至将近1万人,后期收购公司还有待整合,现在纳入游戏式管理的包括盛大游戏、盛大在线的员工,总数约4000人。

  在游戏式管理体系中,每个员工面前都摆着一张完全相同的“双梯发展模式图”,图上分列出专业岗位和管理岗位的晋升阶梯——从初级技术人员到首席专家;从主管到首席执行官。当员工积累的经验值达到晋升和涨薪标准,将自动获得晋升。

  游戏式管理体系的核心是经验值系统,也是人事激励制度的信息化系统。经验值可以通过两个渠道获得,一类是岗位经验值,另一类是项目经验值。

  岗位经验值是对员工日常工作完成情况的考核,合格则奖,不合格则扣。不同级别的员工按不同标准积累日常经验值,级别高则经验值的日积累数就会更高,每一个经验值都会换算为具体的钱数,员工只要不出太大差错,每年基本能得到5%的薪水上调。

  项目经验值则是由员工通过主动申报项目,完成之后而获得。员工提出项目后,盛大网络各子公司的每个业务系统下设的计划与风险控制委员会(为盛大 内部非常重要的部门,简称计委会),会对员工申报的项目进行事前的评估立项,按照项目的重要性分为集团级、公司级和中心级三等,并预设定项目指标。员工按 时保质实现指标,就可以获得额外项目经验值。

  在陈天桥看来,游戏式管理体系可以让员工非常清晰地知道自己的发展目标,“只要通过自身努力去达成目标”。按照这一考核体系,要想尽快提薪升职,最好的办法是在干完本职工作的基础上,主动多做额外项目以获取额外经验值。


碰撞

  对于任何一种管理上的改变来说,碰撞似乎都是不可避免的。一些员工在接受采访时,对这套积分式的管理方式并不推崇,认为这种“公式化”的人事加 薪晋级体系有失必要的灵活性,不具备太强吸引力,而且一些关键的指标仍然需要主观定夺,并没有避免“拍脑袋”的决策。人力资源部则表示,公司更看重的是这 套系统是否为有进取心的员工提供了空间。理想与现实的矛盾,集中体现在了打分的规则上。

  在盛大,额外经验值被视为是对那些有进取心的优秀员工的荣誉奖励。为了鼓励员工多做额外项目,盛大人力资源部门甚至希望今后能将季度结算升级为周期更短的结算方式,好让员工的努力可以尽快转换为直接的加薪。

  根据公司人力资源部门的统计,2009年员工参与立项743个,50%以上的公司员工都有参与。按项目的重要程度,又分为集团级、公司级和中心级,平均每个项目3000点-5000点经验值。

  可是,不少员工向本刊记者表示,项目经验值的立项往往存在周期长、多人搭伴完成的情况。“经验值三个月结算一次,而立项很多都不能在三个月内完 成,最后每个项目摊到每个人头上,就只有几百个经验值。”一位盛大员工告诉本刊记者,1万个经验值大约可加薪1500元到2000元,依靠做项目所获的经 验值,对工资和职业晋升几乎杯水车薪。因此,真正有指望的,还是每年依靠岗位经验值所获得的保底5%的加薪。

  但是,岗位经验值换来的保底加薪是否公允,也遭遇员工质疑。因为低级员工与高级员工的成长速度相同,但低级员工的薪水基础相对较低,同样5%加薪对低级员工和高级员工差异很大。

  “他们辛苦做五年,不过是从一个很低的薪水基础涨25%,而岗位经验值通常要积累四五年才够获得一次职级大类的晋升机会。”一位在盛大游戏工作 多年的中层管理人士向本刊记者透露,自己团队中很多年轻员工,面对那张清晰的“双梯发展模式图”时,几乎可以一眼看尽自己在盛大未来五年甚至十年之内那极 为有限的薪水浮动和升职空间,不免生出前途黯淡之感。

  也有盛大网络员工表示,额外项目与日常本职工作之间的界线并不明晰。因此,游戏式管理中一味加强额外项目含金量的做法,会导致一些员工疏于对本职工作投入足够多的精力,反而一门心思都放在做额外项目上。

  计委会对项目进行评估过程中,项目价值与经验值之间如何转换,其主观判断环节始终在员工中引发争议。几年来盛大人力资源部门虽不断优化其操作流程且积累了很多转换经验值的经验,但并未彻底打消这一过程的争议性。

  对于员工的种种质疑,盛大网络人力资源总监熊力向本刊记者表示,“这套系统的主要任务是发现、吸引和留住优秀员工,让他们有机会脱颖而出。任何 一个公司,都不可能所有人都是优秀员工,这个比例在全体员工中通常是20%-25%。如果每个人都感觉升得很快,这其实是不正常的。”

  这种充分透明的晋升机制,让盛大的中层也经受挑战。为了要稳住一些对打分和晋升不满意的下属,避免人员流失,他们要想方设法为下属争取加薪。过 去,他们可以出具更笼统和主观的意见,但现在,则必须研究这套积分体系,挖掘加分空间,或者争取特殊加薪,也常常心有余而力不足,因为每年只有很少的名 额。

  熊力向本刊记者证实,没有立项的额外加薪申请,通常先经计委会评估,最后由陈天桥本人审核,每年获得特殊加薪的员工在总人数中不超过1%。

  可是,盛大网络从同行企业中挖来的人,薪水常常要高于处在同等职位的老员工,他们也对这种薪水差异很不满。“任何一家企业在其发展扩张的过程中,都会遭遇新人与老人之间的利益冲突。”熊力解释说,盛大要发展,这就是不可避免的矛盾。


“老大哥”陈天桥

  引进游戏式管理体系,某种程度上折射出陈天桥管理公司的个人风格。自2004年完成上市融资之后,盛大网络创新乏力,只能通过对外并购扩张来保持业绩。

  2008年7月,盛大网络集成了多家网络文学站点,成立盛大文学。此后盛大网络进一步向互动娱乐媒体的战略目标转舵,2009年6月收购华友世 纪,9月完成盛大游戏在美国拆分上市,11月与湖南广电投资成立了华影盛世,随后收购线视频网站酷6网。至此,盛大已基本形成了包括游戏、文学、媒体、影 视、旅游等五大业务板块以及盛大在线和盛大无线两大平台在内的综合互动娱乐集团,员工总数接近万人,并且还在以每年大约10%的速度在递增。

  一位熟悉陈天桥的业内人士向本刊记者分析,陈天桥很勤奋,对公司管控意愿很强,但是仅凭一己之力,再勤奋也会力不能及,所以陈天桥试图利用信息化管理系统来延长自己的管控半径。

  米丹宁出任盛大网络首席信息官后,2006年向陈天桥献上第一件“宝物”——工作流系统。这一系统于2006年3月开始规划,7月即正式上线。经过此后多年优化,工作流系统支持的流程从最初的几个,已经丰富到现在的300个。

  与风风火火、对做事效果又格外挑剔的陈天桥相对比,米丹宁讲话慢条斯理,却也滴水不露。

  在他看来,串联了各个流程功能组件的工作流系统,已真正变成了盛大的“神经网络和高速公路”,陈天桥就是大脑,各个子公司和业务系统就是“手和脚 ”。

  米丹宁也许是全公司最能领会陈天桥管理梦想的人。2009年以后,他率领一个近百人的团队,主要任务转向配合陈天桥的“集团化”战略,开发相应的信息化系统管理规范。对应盛大网络集团化的要求,信息化管理系统也从支持单一企业,变成了要支持多企业。

  米丹宁的最终目标是将目前已经投入使用的各个流程应用系统汇集于一个统一的平台之上,他将这一平台取名为“岗位作业平台”。

  “希望这个统一的平台可以支持更加到位的管理。特别是在打通经验值系统之后,可以实现对于岗位经验值更精细化的管理。”米丹宁对本刊记者说。

  即将上线的横跨整个盛大网络集团的“岗位作业平台”,可以记录下员工工作的点点滴滴,形成清晰的业绩历史。如果盛大网络是一场游戏,陈天桥则可以说是盛大网络里的“老大哥”,他能随时随地清楚地看到公司里每个人都正在做什么。

  在陈天桥的眼里,这可能是一个没有管理死角的理想场景。不过,这是那80%安于现状、只想躺在岗业经验值上轻松拿到每年5%保底加薪的员工们希望的场景吗?

2010年12月24日星期五

什么是域名解析AAAA记录、TXT记录、NS记录?

AAAA记录和IPv6相关,是通过将 IPv4 A记录的简单扩展得到合法的 IPv6 地址,它因此不能完成支持IPv6的层次性等特性。

什么是域名TXT记录?
用户可点击"生成简单的SPF信息"来生成简单的SPF信息
TXT 记录,一般指为某个主机名或域名设置的说明,如:
admin IN TXT "管理员, 电话: 13901234567″
mail IN TXT "邮件主机, 存放在xxx , 管理人:AAA"
Jim IN TXT "contact: abc@mailserver.com"
也就是说您可以设置 TXT ,以便使别人联系到您
设置TXT的主要目的是,向hotmail这样的邮局开始过滤掉没有做SPF的邮件,用户可以为域名设置含有SPF信息的TXT记录,避免邮件无法正常收发
SPF信息:就是Sender Policy Framework。SPF是跟DNS相关的一项技术,它的内容写在DNS的txt类型的记录里面。mx记录的作用是给寄信者指明某个域名的邮件服务器有 哪些。SPF的作用跟mx相反,它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件的。SPF的作用主要是反垃圾邮件,主要针对那些发信人伪造 域名的垃圾邮件。例如:当邮件服务器收到自称发件人是spam@gmail.com的邮件,那么到底它是不是真的gmail.com的邮件服务器发过来的 呢?那么我们可以查询gmail.com的SPF记录SPF可以防止别人伪造你来发邮件。

NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。

摘自:http://amangs.com/fav/?p=351
http://baike.baidu.com/view/616263.htm#3

2010年12月20日星期一

windows2003 配置VPN(转)

第一步:首先确定禁用了Windows Firewall/Internet Connection Sharing (ICS)服务

windows2003 配置VPN - wisp - 月月鸟

如果开启了,要设为禁用状态!

windows2003 配置VPN - wisp - 月月鸟

第二步:开启VPN相关服务:

在“管理工具”中打开“路由和远程访问”,开始配置。

windows2003 配置VPN - wisp - 月月鸟

这里选择“自定义配置”:

windows2003 配置VPN - wisp - 月月鸟

选择一般要用的VPN和NAT功能:

windows2003 配置VPN - wisp - 月月鸟

狂点下一步和完成!

windows2003 配置VPN - wisp - 月月鸟

第三步:配置NAT地址转换!

windows2003 配置VPN - wisp - 月月鸟

选择WAN口,如果不是这样显示就选择服务器连接外网的网卡名称:

windows2003 配置VPN - wisp - 月月鸟

做以下配置:

windows2003 配置VPN - wisp - 月月鸟

还要配置一下VPN网关:

windows2003 配置VPN - wisp - 月月鸟

 

windows2003 配置VPN - wisp - 月月鸟

保证VPN(PPTP)被 选中!

windows2003 配置VPN - wisp - 月月鸟

第四步:设置VPN最大连接数:

windows2003 配置VPN - wisp - 月月鸟

Windows Server 2003企业版最多支持30000个L2TP端口,16384个PPTP端口

windows2003 配置VPN - wisp - 月月鸟

第五步:设置VPN基本属性:

windows2003 配置VPN - wisp - 月月鸟

添加静态地址,最好不要和内网地址一样!

windows2003 配置VPN - wisp - 月月鸟

第六步:配置远程访问策略:

先在服务器中建立一个组,把要远程登入VPN的用户都加进这个组中!

然后新建策略:

windows2003 配置VPN - wisp - 月月鸟

随便写个名:

windows2003 配置VPN - wisp - 月月鸟

下一步就把刚才新建的组加到策略中,就完成策略!


摘自:http://lihuipeng007.blog.163.com/blog/static/1210843882009101104818401/?fromdm&isFromSearchEngine=yes

如何用Windows VPS搭建翻墙VPN(转)

最近从Photonvps.com 租了一台windows主机用来测试网站,512MB的内存,35GB的硬盘空间,每个月500GB的流量和2个独立IP地址。我感觉价格偏贵,不过售后服务还是蛮不错的,每次提交的ticket很快就会得到回复。

既然有两个IP当然不能浪费了,干脆做个windows VPN用来翻墙。下面详细图文介绍如何用Windows VPS搭建翻墙VPN服务器。首先我们要保证vpn起用的条件,"一停四开":
1.停止window自带的防火墙(windows firewall/internet connection sharing (ICS)服务
2.远程注册表服务(Remote Registry)必须开启
3.server服务 (Server)必须开启
4.route路由服务(Routing and Remote Access)必须开启
5.Workstation 服务必须开启
如果服务器是默认配置的情况下,只需要关闭防火墙就并设置启动方式为禁用。然后在管理工具中打开"路由和远程访问"在列出的本地服务器上点击右键,选择"配置并启用路由和远程访问"。

由于Windows VPS服务器是公网上的一台一般的服务器,不是具有路由功能的服务器,是单网卡的,所以这里选择"自定义配置"这里选"VPN访问"和"NAT/基本防火墙"。下一步,配置向导完成。


点击"是",开始服务。看启动了VPN服务后,"路由和远程访问"的界面下面开始配置VPN服务器,在服务器上点击右键,选择 "属性",在弹出的窗口中选择"IP"标签,在"IP地址指派"中选择"静态地址池"。

然后点击"添加"按钮设置IP地址范围,这个IP范围就是VPN局域网内部的虚拟IP地址范围,每个拨入到VPN的服务器都会分配到一个范围内的IP,在虚拟局域网中用这个IP相互访问。这里设置为 10.10.10.1-10.10.10.10,一共10个IP,默认的VPN服务器占用第一个IP,所以,10.10.10.1实际上就是这个VPN服务器在虚拟局域网的IP。
每个客户端拨入VPN服务器都需要有一个帐号,默认是 windows身份验证,所以要给每个需要拨入到VPN的客户端设置一个用户,并为这个用户制定一个固定的内部虚拟IP以便客户端之间相互访问。在管理工 具中的计算机管理里添加用户,这里以添加一个vpnuser用户为例:先新建一个叫"vpnuser"的用户,创建好后,查看这个用户的属性,在"拨入" 标签中做相应的设置,如图:


远程访问权限设置为"允许访问",以允许这个用户通过VPN拨入服务器。点选"分配静态IP地址",并设置一个VPN服务器中静态IP池范围内的一个IP 地址,这里设为10.10.10.10 。如果有多个客户端机器要接入VPN,请给每个客户端都新建一个用户,并设定一个虚拟IP地址,各个客户端都使用分配给自己的用户拨入VPN,这样各个客 户端每次拨入VPN后都会得到相同的IP。如果用户没设置为"分配静态IP地址",客户端每次拨入到VPN,VPN服务器会随机给这个客户端分配一个范围 内的IP。

至此,客户端就可以直接通过windows连接向导连接VPN服务器了,但是服务器还没有完全配置完,这里需要特别说明一下:我们搭建VPN服务器的目的是翻墙,而不是访问服务器所在的内网。如果仅仅是为了访问内网资源而搭建VPN请看《windows2003架设VPN穿越Juniper防火墙设置步骤》这篇文章介绍了用Windows2003搭建VPN需要注意的细节及通过VPN跨网段访问内网资源的设置。

再回到路由和远程控制,找到"NAT/基本防火墙"右键点击新建接口并选择本地区域链接。如图:

在NAT/基本防火墙设置中选择公共接口链接到Internet,并在这个接口上启用NAT。如图:

选择IP地址池选项卡,将ISP也就是你的主机供应商分配给的公网IP地址添上。如图:

为了维护起来方便,我们可以将VPN用户名和IP绑定起来,也就说每个用户连接VPN会分到固定的IP地址,点击预留IP将公网IP和私有IP进行 绑定,我刚刚建立了一个vpnuser的用户并给此用户分配了私有IP:10.10.10.10 那么我就把这个私有IP绑定在多余的IP地址上。如图:

OK!到这里VPN就配置完成了。尽情享受翻墙的乐趣吧!

摘自:http://www.fendou.info/network/windows-vps-vpn.html

2010年12月18日星期六

一个简单好用的AJAX类,支持超时处理,兼容IE6/IE7/IE8/firefox/chrome/opera(转)

做一回标题党,因为很多人会通过那些关键字搜索进来。是否“简单好用”不太好说,因人而异,但后面两句还是比较靠谱的。


这个AJAX“类”是自己几年前写的,最近抽空整理了一下发出来,供新手或有需要的人参考

在用AJAX的时候,一般只需要关心三个步骤:

1) 请求发送前做什么;

     比如:展现给用户一个loading的图片或文字信息。


2) 发送请求;

     这里有三个参数:url—发送到哪里,data—发送什么数据,method—用什么方式发送数据(GET or POST)


3) 请求返回后做什么;

     比如:将返回后的数据直接或组织成html后插入到页面中展现给用户。


考虑在某些情况下,请求返回的时间很长甚至没有返回,如果一直在loading,恐怕不是一种好的用户体验。所以增加一个在超时的情况下要做的步骤。


由于GET方式经常用,所以单独为它准备了一个方法。


在demo中的test3,除了演示另一种调用方式外,还演示了客户端和服务端之间通过JSON进行通信。


 

最 后面附有完整demo的源代码供下载 <script src="/javascripts/tinymce/themes/advanced/langs/zh.js" type="text/javascript"></script><script src="/javascripts/tinymce/plugins/javaeye/langs/zh.js" type="text/javascript"></script>

Js代码
  1. /*! 
  2. * 一个简单的Ajax类 
  3. * author: ichenshy@gmail.com 
  4. * date:   2010/06/04 Friday 
  5. * 
  6. * @param function fnBefore     用户自定义函数 Ajax开始前执行,若无则为null 
  7. * @param function fnAfter      用户自定义函数 Ajax完成后执行,若无则为null 
  8. * @param function fnTimeout    用户自定义函数 Ajax请求超时后执行,若无则为null 
  9. * @param integer  iTime        设置超时时间 单位毫秒 
  10. * @param boolean  bSync        是否为同步请求,默认为false 
  11. */  
  12.   
  13. function Ajax(fnBefore,fnAfter,fnTimeout,iTime,bSync){  
  14.     this.before     = fnBefore;  
  15.     this.after      = fnAfter;  
  16.     this.timeout    = fnTimeout;  
  17.     this.time       = iTime ? iTime : 10000;  
  18.     this.async      = bSync ? false : true;  
  19.     this._request   = null;  
  20.     this._response  = null;  
  21. }  
  22.   
  23. Ajax.prototype = {  
  24.     /** 
  25.     *  将需要发送的数据进行编码 
  26.     * 
  27.     *  @param object data  JSON格式的数据,如: {username:"fyland",password:"ichenshy"} 
  28.     */  
  29.     formatParam : function( data ){  
  30.         if ( ! data || typeof data != "object" ) return data;  
  31.         var k,r = [];  
  32.         for ( k in data ) {  
  33.             r.push([k,'=',encodeURIComponent(data[k])].join(''));  
  34.         }  
  35.         return r.join('&');  
  36.     },  
  37.   
  38.     /** 
  39.     * 创建 XMLHttpRequest对象 
  40.     */  
  41.     create : function(){  
  42.         if( window.XMLHttpRequest ) {  
  43.             this._request = new XMLHttpRequest();  
  44.         } else {  
  45.             try {  
  46.                 this._request = new window.ActiveXObject("Microsoft.XMLHTTP");  
  47.             } catch(e) {}  
  48.         }  
  49.     },  
  50.   
  51.     /** 
  52.     * 发送请求 
  53.     * 
  54.     * @param string             url     请求地址 
  55.     * @param object or string   data    可以是字符串或JSON格式的数据,如: {username:"fyland",password:"ichenshy"} 
  56.     * @param string             method  请求方式 : GET or POST 
  57.     * @param boolean            ifCache 返回数据是否在浏览器端缓存,默认为false; 
  58.     */  
  59.     send : function(url,data,method,ifCache){  
  60.         if ( typeof this.before == "function" ) this.before();  
  61.   
  62.         method = method.toUpperCase();  
  63.         this.create();  
  64.   
  65.         var self = this;  
  66.         var timer = setTimeout(function(){  
  67.                 if ( typeof self.timeout == "function" ) self.timeout();  
  68.                 if ( self._request ) {  
  69.                     self._request.abort();  
  70.                     self._request = null;  
  71.                 }  
  72.                 return true;  
  73.             },this.time);  
  74.   
  75.         var sendBody  = this.formatParam(data);  
  76.   
  77.         if ( 'GET' == method ) {  
  78.             url = [url, ( url.indexOf('?') == -1 ? '?' : '&') ,sendBody].join('');  
  79.             sendBody = null;  
  80.         }  
  81.   
  82.         if ( ! ifCache ) {  
  83.             url = [url, ( url.indexOf('?') == -1 ? '?' : '&') , "ajaxtimestamp=" , (new Date()).getTime()].join('');  
  84.         }  
  85.   
  86.         this._request.open(method,url,this.async);  
  87.         if ( "POST" == method ) this._request.setRequestHeader("Content-Type""application/x-www-form-urlencoded");  
  88.   
  89.         this._request.onreadystatechange = function(){  
  90.             if( self._request.readyState==4 ){  
  91.                 if ( self._request.status==200 ){  
  92.                     if ( timer ) clearTimeout(timer);  
  93.                     self._response = self._request.responseText;  
  94.                     if ( typeof self.after == "function") self.after(self._response);  
  95.                 }  
  96.             }  
  97.         }  
  98.         this._request.send( sendBody );  
  99.     },  
  100.   
  101.     /** 
  102.     *   简单的GET请求 
  103.     * 
  104.     *   @param string url  请求地址 
  105.     *   @param null or string or object data 
  106.     *   @param object html element or string id   e 
  107.     *   @param string loading                     loading时在e中的显示 
  108.     *   @param boolean  ifCache    浏览器是否缓存 
  109.     */  
  110.     get : function(url,data,e,loading,ifCache){  
  111.             if ( typeof e == "string" ) e = document.getElementById(e);  
  112.             if ( loading ) {  
  113.                 var rg = /\.(gif|jpg|jpeg|png|bmp)$/i;  
  114.                 if ( rg.test(loading) ){  
  115.                     loading = ['<img src="', loading , '"  align="absmiddle" />'].join('');  
  116.                 }  
  117.                 this.before = function(){e.innerHTML = loading;}  
  118.             }  
  119.             this.after      = function(s){e.innerHTML = s;}  
  120.             this.timeout    = function(){e.innerHTML = ' 请求超时! ';}  
  121.             this.send(url,data,"GET",ifCache ? true : false);  
  122.     }  
  123. };  

 

常用调用方式:

Js代码
  1. function test1(){  
  2.      (new Ajax()).get("./process.php?test=1",'',$("view"),"test1正在读取数据……"); // 这里可以传入一个loading的图片地址  
  3. }  
  4.   
  5. function test2(){  
  6.     (new Ajax(function(){  
  7.         $("view").innerHTML = "test2正在读取数据,请稍候";  
  8.     },function(s){  
  9.         $("view").innerHTML = s;  
  10.     },function(){  
  11.         $("view").innerHTML = "Sorry,请求超时!";  
  12.     },5000) ).send("./process.php?test=2",{author:"fyland",mail:"ichenshy@gmail.com",date:"2010-06-03"},"POST");  
  13. }  
  14.   
  15. function test3(){  
  16.     var jx = new Ajax();  
  17.     jx.before = function(){  
  18.         $("view").innerHTML = "test3正在读取数据,请稍候";  
  19.     }  
  20.   
  21.     jx.after = function(s){  
  22.         var r = jsonDecode(s);  
  23.         for ( var k in r ){  
  24.             alert(k + ' : ' + r[k]);  
  25.         }  
  26.         $("view").innerHTML = "test3数据读取完毕";  
  27.     }  
  28.   
  29.     jx.timeout = function(){  
  30.         $("view").innerHTML = "Sorry,TEST3请求超时!";  
  31.     }  
  32.   
  33.     jx.time = 5000;  
  34.   
  35.     var data = {  
  36.                     author: "fyland",  
  37.                     mail  : "ichenshy@gmail.com",  
  38.                     date  : "2010-06-03"  
  39.                 };  
  40.   
  41.     jx.send("./process.php?test=3",data,"GET");  
  42. }  

 


注:
1、method只支持GET和POST
2、ifCache设为false或者不设置,可以控制浏览器不缓存,但设为true后,不一定能控制浏览器缓存返回的数据,因为还需要服务端的配合。

 

  • 大小: 4.6 KB
摘自:http://www.javaeye.com/topic/685578

2010年12月17日星期五

Mysql5一主库两从库同步配置(转)

一、安装包选择
mysql-5.0.67.tar.gz  (安装在主库机:server1
mysql-5.0.45.tar.gz  (安装在从库机:server2
MySQL-client-community-5.0.67-0.sles10.i586.rpmMySQL-server-community-5.0.67-0.sles10.i586.rpm  (安装在从库机:server3
最好使用同一版本的安装包。在这里只是想试验一下。
二、安装环境
192.168.100.188  RHEL5.1  数据文件的存放位置/usr/local/mysql5/var
待同步数据库juwangtest 
192.168.100.39   CentOS5.2  /usr/local/mysql/var
192.168.100.15   OpenSuSE11  /var/lib/mysql
rpm包在suse下的mysql服务启动:/etc/init.d/mysql  start
在源码包安装在CentOSRHEL5.1mysql服务分别为:
/usr/local/mysql/bin/mysqld_safe –user=mysql &
/usr/local/mysql/bin/mysqld_safe –user=mysql &
停止服务:bin/mysqladmin shutdown
三、主服务器配置
1)建立用户
grant  replication  slave .  *.*  to  slave1@192.168.100.39  identified by '123456';
grant  replication  slave .  *.*  to  slave2@192.168.100.15  identified by '123456';
flush  privileges;
2)修改my.cnf
vi  /etc/my.cnf
server-id = 1
log-slave-updates
binlog-do-db=juwang 
ç关于复制的数据库一定要分开写。不能写成binlog-do-db=juwang,test。这是无效的,两个数据库一个都不会复制。
binlog-do-db=test
binlog-ignore-db=mysql
3锁主库表
mysql> FLUSH TABLES WITH READ LOCK;
4显示主库信息
SHOW MASTER STATUS;
5另开一个终端,打包主库
cd  /usr/local/mysql5/var
tar  czvf  juwang.tar.gz  juwang
四、设置SLAVE
1)传输主库压缩包、解压
cd  /usr/local/mysql/var
scp  /usr/local/mysql5/var/juwang.tar.gz .
tar  xf  juwan.tar.gz
2)解锁主库表
mysql> UNLOCK TABLES;
3查看修改juwang文件夹权限
# chown mysql:mysql juwang –R
4修改my.cnfCentOS
replicate-do-db=test
log-slave-updates
修改my.cnfSuSe
server-id=3  ç千万别和其它机器的server-id号写重名了。
master-host=192.168.100.188
master-user=slave2
master-password=123456
master-port=3306
replicate-do-db=juwang
replicate-do-db=test
log-slave-updates
 
5验证连接MASTER
 
# mysql -h192.168.100.188 –uslave2 –p123456
mysql> show grants for slave1@192.168.100.39;
 
6SLAVE上设置同步
设置连接MASTER MASTER_LOG_FILE为主库的FileMASTER_LOG_POS为主库的Position
============================
mysql> CHANGE MASTER TO MASTER_HOST='192.168.100.188',MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=98;
============================
7启动SLAVE服务
mysql> slave start;
查看SLAVE状态
mysql> SHOW SLAVE STATUS\G;
其中 Slave_IO_Running Slave_SQL_Running 两列的值都为 "Yes",表明 Slave I/O SQL 线程都在正常运行。
到此主从库搭建成功。

在配置过程中出现:Slave_SQL_Running 的值都为 "No"
mysql> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: No
Last_Errno: 1062
 
原因:
1.程序可能在slave上进行了写操作 。(我确定这样操作过。)
2.也可能是slave机器重起后,事务回滚造成的.
 
解决办法I
1.首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录FilePosition对应的值。
3.slave服务器上执行手动同步:
mysql> show master status;
在从库机上操作如下:
注意:
/etc/init.d/mysql start SuSe中),应这样启动服务:/etc/init.d/mysql  --skip-slave-start
mysql> change master to
> master_host='master_ip',
> master_user='user',
> master_password='123456',
> master_port=3306,
> master_log_file='mysql-bin.000006',
> master_log_pos=98;
1 row in set (0.00 sec)
mysql> slave start;
1 row in set (0.00 sec)
 
再次查看slave状态发现:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
Seconds_Behind_Master: 0
解决办法II
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;
 
解决办法III
重新获取主库上的数据库相关物理文件,然后,再拷贝到从库的相应的位置。重复上述有关操作。
 
在启动从库机mysql服务器时出现了,启动mysqld_safe的时候遇到这个错误:Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
data删除之后mysql_install_db --user=mysql就行了

摘自:http://sqlnet.blog.51cto.com/343343/102980