当前位置: 首页 >> 瞎搞 >> 阅读正文

关于外网访问校园网内服务器的一些事

2014年7月3日     分类:瞎搞     2,740 次浏览
    0 条评论     发表评论  

其实就是关于外网访问无公网IP、无内网路由器控制权的内网服务器主机的问题。

之前一直想将宿舍自己的电脑搭建成能让外网访问的Web服务器,但是一直没找到办法。宿舍用的是学校的锐捷校园网,没有公网IP,也没有校园网路由器的控制权,做不了端口映射。
网上很多人都说这种情况下,不可能让外网访问得了宿舍里的服务器。因此我也没再继续去研究这方面的事。

直到最近淘到了一台ITX小主机,准备用来做开发测试用的Web服务器,又重新有了这想法。决定再详细调研一次。

这次调研有了可喜的结果,成功使外网访问到了宿舍的Web服务器,而且还挺稳定的。

一开始搜到有人说可以做NAT穿透,就能访问了,于是去查了下NAT穿透是什么,网上维基百科的解释提到这一句:“ 尽管有许多穿越NAT的技术,但没有一项是完美的,这是因为NAT的行为是非标准化的。这些技术中的大多数都要求有一个公共服务器,而且这个服务器使用的是一个众所周知的、从全球任何地方都能访问得到的IP地址。 ”看完后,没怎么弄懂NAT穿透是怎么个回事,而且我发现对于我现在来说是不可能建立NAT穿透服务器的,因为没有一台拥有公网IP地址的主机。

于是又继续搜寻,无意中看到有人提到了花生壳、NAT123等可以弄,因此上花生壳官网去看了看,发现好像真的可以。
之前一直都知道花生壳可以做动态域名解析(DDNS),但是也仅仅只是知道它能动态解析有公网IP的主机域名,一直不知道对于这种没公网IP 没路由器控制权的主机也可以做解析。
在花生壳官网看了下套餐,有个人免费版的套餐,但是有很多限制,免费套餐不能做Web服务的转发,而且有带宽限制。只有收费版的才可以。

然后就去看了下NAT123的,发现NAT123也可以做无公网IP主机域名解析,要挂客户端,免费最基础版的也可以用自己的域名,只要在域名商那做CNAME解析到NAT123提供的域名就可以了。操作很简单,没有带宽限制,实时生效的。最大的不好之处就是NAT123客户端没有Linux版的,Linux下只有用Windows虚拟机来挂客户端这种曲线救国的办法,这完全就是消耗机器资源嘛,不过没办法,谁叫它是免费的啊,缺乏资金的情况下就这样吧,能稳定地用就行了。

下面是客户端设置的图片

QQ11

 

 

 

 

 

 

 

 

 

用自己的域名的话要在域名商那改DNS。
当然,也可以用NAT123提供的二级域名。

设置完后就马上生效了

这是使用自己的域名(话要在域名商那改CNAME记录)

20140702215435

 

 

 

下面这是用NAT123的免费二级域名

QQ

 

 

 

弄完之后突然就明白了一件事,就是“NAT穿透”,发现其实他们做的这无公网IP的域名解析服务其实就是NAT穿透,和有公网IP的动态域名解析服务并不同。

动态域名解析服务是在自己的有公网IP的服务器主机A或路由器A上挂上客户端(此主机的公网ip非固定,例如电信ADSL宽带的动态ip),每当机器连上互联网时,客户端将本机的公网ip发送给动态域名解析服务器S,服务器S接收到ip地址后,便把域名解析到此主机A的ip上,从而能动态地解析域名,使该域名能正确无误地解析到此非固定公网ip的主机A。

而NAT穿透方式有几种,
公共前提:
无公网ip的内网主机A挂着客户端,在某个端口上连接着公网服务器S,在域名商中将某域名解析到此服务器S上,并在S上将该域名关联到主机A此端口上。
若有一外网主机B想要访问该域名,则域名被解析服务器S,主机B与服务器S建立连接,服务器S获得主机B的端口号,此时有几种方式穿透NAT:
第一种, 仅在建立连接时需要使用这个服务器S。即服务器S告知主机A、B对方的连接端口,然后A、B两台主机与对方连接,连接后即可做数据交互,访问成功。这种方式下,两台主机的数据交互不经过服务器,所以服务器不会限制带宽。
第二种, 通过这个服务器S中继所有的数据。 服务器S转发主机B的请求给主机A,并将主机A返回的数据转发给主机B,从而实现数据交互访问。由于这种方式会由服务器转发数据,因此会带来带宽开销问题,所以有些服务提供商会限制带宽,例如上面提到的花生壳。
因为浏览器访问域名时,是默认80端口的,而服务提供商的服务器不可能给每个客户都分配80端口,所以使用服务时还要选择其他端口,因此在访问域名时要带上端口号才能实现转发,如www.xxx.com:30000

分享到

相关文章

评论列表

发表评论