一、花生壳的作用

花生壳(www.oray.com)到底有什么作用,因为ADSL每次拨号上网所获得的IP地址都是动态变化的,花生壳起到的作用就是方便用户访问我们的服务器(只需要输入域名便可),而不用每次都输入IP地址那么麻烦(因为我们也不可能每次重新拨号上网后,又去告诉用户现在的服务器的IP地址什么,ADSL拨号后的IP地址是不断切换的)。

例如,花生壳护照下有一个域名 mimvp.oray.net,那么只要在电脑上用该护照登陆了花生壳客户端。当别人输入 mimvp.oray.net 的时候,会自动解析到那台电脑所在的网络的公网IP地址。

下面介绍两种常见上网方法的服务器的建立,这两个上网方法主要区别在于用来做服务器的计算机,能否得到公网的IP地址。

 

二、ADSL直接拨号上网(不经过路由器等路由设备)

如果是通过ADSL Modem直接ADSL拨号上网,那么您的计算机获得的是公网的IP地址,公网IP地址是动态变化的。

 

三、通过路由器共享上网(经过路由器的局域网内部)

如果您是通过路由器上网,那么则需要在路由器上做端口映射,外网的计算机才能访问你的服务器。

背景知识:

1.什么是私有IP地址(内网IP地址)

私有地址,这些地址被大量用于企业内部网络中。一些宽带路由器,也往往使用192.168.1.1作为缺省地址。私有网络由于不与外部互连,因而可能使用随意的IP地址。保留组的地址供其使用是为了避免以后接入公网时引起地址混乱。使用私有网络在接入Internet事,要使用实质翻译(NAT),将私有地址翻译成公用合法地址。在Internet上,这类地址是不能出现的。

2.私有IP地址的范围(形式):

192.168.x.x (如192.168.1.2到192.168.1.254)

10.x.x.x

172.16.x.x ~172.31.x.x

为什么局域网内做服务器要在路由器上做端口映射?

首先,我们必须清楚:

1)Internet网络中,只有公网IP是能够互相通讯的。

2)局域网内,通一网段的私有IP地址能够互相通讯。(但公网IP不能和私有IP直接互相通讯。)

3)路由器一般有两个IP:一个是公网IP地址(用于和公网的计算机通讯),一个是内网(私有)IP(用于和内网的计算机通讯)。

4)与路由器连接的计算机,获取的只是内网(私有)IP地址。只能通过路由器和公网的其它计算机进行通讯。(它自己是不能直接和外网的计算机通讯的)。

注意第(2)点,这就是为什么许多朋友都问:“为什么我的网站在局域网的电脑上可以浏览,但外网的电脑却打不开?”的主要原因。

常见的服务器端口号:

WEB服务器(网站服务器):80、443端口

FTP服务器(文件服务器):21端口

终端服务器:3389端口(Windows的远程桌面)

邮件服务器:25端口(SMTP)和110端口(POP)

虚拟隧道服务器:1723端口

 

四、实例说明

假设现在外网有一台ADSL直接拨号上网的电脑,所获得的是公网IP(61.168.45.23),然后它想访问局域网内的电脑(192.168.1.10)上面的网站。

路由器上已经做好了端口映射,具体规则是:将所有发向自己80端口的数据,都转发到内网的计算机192.168.1.10上。

访问过程如下:

1)公网电脑(61.168.45.23)向路由器(218.6.146.31)发送请求,要求访问它的80端口。(相同道理,如果是要访问FTP服务器,则发送访问路由器21端口的请求。)

2)路由器收到请求后,按照端口映射的规则,通过内网IP地址192.168.1.1把请求的数据发送到局域网内的计算机192.168.1.10上。

3)计算机192.168.1.10收到请求后,把自己电脑中网站的数据发送到路由器。

4)路由器收到计算机192.168.1.10发来的数据后,通过路由器的公网IP(218.6.146.31)把它们发送到公网的计算机61.168.45.23上去。

 

下面我们就结合花生壳,再来说明上面的例子:

例如,我们的花生壳护照abc下有一个域名 mimvp.oray.net,那么我们在192.168.1.10上,用护照abc登陆花生壳客户端。这时候 mimvp.oray.net 对应的IP地址就是路由器的公网IP地址218.6.146.31了。

具体访问过程如下:

1)公网客户端电脑(61.168.45.23)的用户输入 mimvp.oray.net,想要访问局域网内的 192.168.1.10 网站。

2)花生壳的域名服务器告诉客户端电脑(61.168.45.23),mimvp.oray.net这个域名对应的IP地址是 路由器(218.6.146.31)

3)于是,客户端电脑(61.168.45.23)向路由器(218.6.146.31)发送请求,要求访问它的80端口。

4)路由器收到请求后,按照端口映射的规则,通过内网IP地址192.168.1.1把请求的数据发送到局域网内的计算机192.168.1.10上。

5)计算机192.168.1.10收到请求后,把自己电脑中网站的数据发送到路由器。

6)路由器收到计算机192.168.1.10发来的数据后,通过路由器的公网IP (218.6.146.31)把它们发送到公网的计算机61.168.45.23上去。

可以看到,其实整个过程和原来差不多是一样的,只是前面部分稍微有点不同,多了个域名解析过程而已。

 

 

花生壳用处和原理

花生壳的作用是让别人能访问你的网站,而且你的网站就放在你自己的机子里(内网或公网IP动态变化),而不是放到网上的某个服务器的空间里。

 

一、你能上网,但你的机子不在网上

就如同你在剧院,但别人在台上,你只能在台下。在台上的公共主角,大家(包括台下的)都看得到,而看不到台下的你。

你非常想表演,于是你在家里演好录下来,再送到人家的舞台上播放。这就是常见的一种方式:到网上申请一个空间,再把你做的网站传上去。

开始这种方式是免费的,大家玩得十分开心,但后来人家不干了,要收费,郁闷!

自己的硬盘这么大,为何一定要放到别人的机子里,就在自己电脑上表演吧!

可是做好的东西,别人怎么也访问不了!“茫茫网海,我在那里”,你不禁发出一声长叹!

花生壳来也!

 

二、这个东西涉及到对互联网的联网机制的理解

首先,互联网上的计算机都是通过IP地址连络通讯的,IP地址就是电脑的门牌。其次,IPv4地址是有限的,不可能凡上互联网的电脑都配一个。

为了解决IP的不足,同时为了便于管理,互联网可以看成是由很多局域网(通俗理解:局部的网络)联起来构成的,一个局域网内部的电脑的IP地址由它的主人来设定就行。

由于不同的局域网不是直接联系的,例如北大和清华的校园网不互通互联一样,所以只要一个局域网内部电脑的IP各相同就行,不同局域网的IP是可以重复的,例如清华和北大校园网都可以使用内网IP地址192.168.1.10 。这样的IP地址就是常说的内网IP。

由于每个局域网各自为政,没有统一的地址安排,要统一安排也很难,遇到一个故意捣蛋的就影响全世界啊,而且当前这样更灵活,所以局域网内的电脑的IP是通过网关屏蔽起来的,因此称为内网电脑。也就是说,在A局域网内部每个机子看不到B局域网内部机子的IP,看到的最多就是网关(局域网和外部联系的设备)的公网IP。对于互联网来说,我们上网时访问的IP都是全世界统一安排的,也就是外网IP,它也许是一台电脑,更大可能其实是一个网关(当然也有用电脑专们做关网的),比如我们访问新浪,一个域名、一个IP,难道那么多东西都在一台电脑上,当然不是,其实是在很多台电脑上,通过统一的网关供人访问而己。

两个局域网都可以联到互联网上,并且通过互联网实现相互访问。

这时为什么不会发生IP地址冲突问题呢,因为它们并不是直接访问的,而是通过网关代理来访问的,对于局域网外面的电脑来说,这个局域网就象是一台电脑一样,外面的电脑看到的IP其实是局域网的网关的公网IP,它与局域网内部的某台电脑通讯看起来好象就是同网关“这台电脑”通迅。

问题是既然我们都己经联上了互联网,为何还需要花生壳。局域网就象一个房间,大家都在不同的房间里关着,如何知道谁在哪儿呢,房间里的人如何相互区分,建立联系呢?花生壳的作用就在这里:把你呈现到外网上!

 

互联网看起来交互性很强,其实大多数服务是单向的,如Web服务,它让我们可以看网页,就象我们看电视一样,要让人看到电视,就必须将电视节目信息放到大家都可以接收和线路上,同样,要让别人看到你的网页,也必须放到能让别人直接访问的地方,可是你的机子是内网IP,别人是无法直接访问你的机子的。这就是问题所在,就象你在家里看CD别人无法看到一样。要让别人看到你的网页,就必须想办法让别人能够访问你的位置。

再比如QQ,QQ用户之间要能够聊天,也要通过腾讯的服务器做媒人,一旦两个QQ用户互相建立联系之后,很多工作就一需要腾讯的服务器来做了,比如传聊天文字,传文件,传视频语音信息,都是直接的,因此其产腾讯服务器的工作量很小,它主要维护用户的登录状态就行。

其实电讯或网通等宽带服务商可以更方便的花生壳这样的事(提供一个Web服务代理即可)。它们其实本来就是做代理,只不过它们只提供底层的最基本的TCP/IP网络互联代理。也就是只让电脑之间可以互传数据,这是底层的事。

                    

三、花生壳的原理基本是这样的

{本地(安装花生壳的用户)花生壳 Web服务代理 客服端<---互联网--->花生壳 Web服务代理 服务器端《----》Web服务器} <--互联网-->互联网上访问网页的用户

其效果对于普通访问者来说,就如同你的网页直接放到了花生壳的网站一样,而其实你的网页还在你自己的电脑里。

说明:花括弧部分的细节对于访问网页的用户来说是看不到的,感觉如同访问一个普通网站一样;书名号边接的两端都在“花生壳公司”的服务器中,也许放在同一局域网的不同电脑中,也许就在一台电脑中也说不定。

 

 

参考推荐

内网和外网之间的穿透通信:端口映射原理

自建服务器解决外网访问内网的端口穿透映射