新闻资讯

电脑搭建服务器如何实现外网可访问 花生壳突破内网访问

2019-05-24

服务器和普通电脑有什么不同呢?这是我最近忽然想到的一个存在已久的问题,在我看来,最大的区别就是服务器有固定的IP,自己电脑的IP是变化。那么,有没有什么办法可以用自己的电脑搭建服务器,并且外网还可以访问?

就我们寝室来讲,首先你在Windows上面获取的192.168.xx.xx这个是本地IP,是路由器分配的,连到同一个路由器上的电脑可以通过这个来访问(同一个局域网内)其他电脑,前提是访问的电脑提供了服务,同理,在同一个局域网内,把一台电脑作为服务器,其他电脑根据IP来访问是没问题的(有时候电脑开启了防火墙也会访问不到,关了就好了)。

那么外网怎么访问呢?首先PC的外网IP是变化,但是一般不重启路由器什么的,不会经常变化。通过这个网站我们可以看到电脑当前的外网IP。而且,你会发现同一个路由器下面的电脑外网IP都是一样的。

通过IP访问自己电脑

那通过这个外网IP能不能访问到自己电脑呢,其实没有这样简单。首先,这个外网IP可以算作是路由器的IP,所以意思就是只能访问到路由器,想要访问到路由器下的电脑上,那么要进行端口映射。端口映射很简单,路由器基本自带的功能,路由器设置一下,比如你的电脑本地IP是192.168.31.198(可以在路由器设置固定地址),你的程序端口是8080,那么添加一条端口映射规则,外部、内部端口设置8080,内部IP设置192.168.31.198,就可以了。或者开启DMZ,开启DMZ功能可以将内网某一个设备的IP映射到外网,方便从外网访问到该设备,就是相当于把这个设备当做路由器一样,外网可以直接访问。

使用域名访问

那理论上这样做外网是可以访问自己的电脑了,但是作为服务器,你的IP始终在变化,那没法用。比如APP,可以想一些办法,比如IP变了,我们下发通知APP相应改变,但是服务器IP都变了,APP根本没法连接服务器,就无法更改内容;可以把IP存在其他服务器上,自己电脑IP变了,就发送到其他服务器,APP每次都从其他服务器先获取IP,这样有点麻烦了,还需要其他服务器。

其实有很多软件可以做到这件事包括我听的有点多的花生壳,它的解决方案比较有意思,它是卖一个域名给你,通过动态解析域名来实现。具体就是,域名需要解析到一个公网IP才能使用,使用方法和IP地址没什么两样就是好记。当IP改变的时候我重新解析域名到新的IP地址,那不管外网IP怎么变我的域名永远是指向我的电脑的外网IP的,可以通过域名来访问我们的电脑

运营商分配IP

但是,事情没有这样简单,这么流行收费软件是有原因的。我做完上面的步骤还是不行,外网还是没办法访问服务器,我检查了很久,发现路由器显示的IP和我获取到的外网IP不一样,理论上都应该是外网IP,应该一样的。用代码获取到的IP肯定是外网IP,那路由器上显示的IP就不是外网IP,我百度了一下:

如果你在路由器中查看到的WAN口IP地址,和外网的IP地址不一样。这种情况是宽带运营商,给你分配的一个内网IP地址;即你路由器WAN口IP地址是一个内网IP地址,很多个宽带用户,共同使用一个外网IP地址上网。

之所以出现宽带运营商,给大家分配内网IP地址,让多个宽带账号共享一个外网IP地址上网,应该是IPv4地址不够用的原因。所以,宽带运营商才会才去这种措施,让多个用户共享一个外网IP地址。

这情况实际上和我们自己使用路由器上网一样的,我们电脑、手机上获取的是路由器分配的一个内网IP地址,最总多台电脑、手机共同使用路由器中的WAN口IP地址上网。

一般来说,WAN口IP和外网IP地址不一样,并不会影响到我们的正常上网;不过在一些特殊网络环境下,会影响到用户的正常使用。例如在路由器中设置端口映射的时候,由于路由器的WAN口和外网IP地址不一样,会导致端口映射失败。

看到没有,有这种情况,就是你的路由器本来就不是用的外网IP,相当于在你的路由器上面还有一个路由器,而且我们没法在那里设置端口映射。有人说可以打电话叫服务商给你换一个外网IP,我感觉我学校是没什么可能,我也没试过,我感觉家里或者公司应该可以。

利用花生壳来搭建突破内网访问的服务器

案例

背景

笔记本电脑一台

VM虚拟机安装在该笔记本电脑上(此处的虚拟机是Linux的)

笔记本电脑和VM虚拟机可以正常访问网络

VM虚拟机的IP为192.168.128.xxx(xxx代表任意数字,具体的需要自己去查看)

步骤

1 到这里http://hsk.oray.com/download /下载linux版本的花生壳客户端程序

2 linux下是一个rpm包,把这个包扔到虚拟机中并进行安装(使用rpm -ivh命令)

3 成功后会你看到successful的红字提示并不断闪送(太刺眼了)

4 启动虚拟机中的服务,我这里以tomcat为例,之后在本地笔记本电脑中用浏览器访问ip+端口

5 同样到上面的地址去下载花生壳windows版本的客户端(必须用最新版)并进行安装

6 启动并注册完毕之后,点击下图中的域名列表,你可以已经免费给你了一个域名,这个域名我们就可以在以后用了

7 之后点击内网穿透并开启该功能。此功能本身免费,但需要认证身份所以要支付6元(这个是我当时的价格)。到这里大家可能觉得还的付钱啊,但我觉得还好啊,这个可比你买个云主机便宜多了,甚至你买个域名都不止这个价啊,知足吧!

8 开启内网穿透之后进入该页面并点击添加映射

9 在点击添加映射

10 完成上述步骤之后,等待5-10分钟生效,然后再外网通过花生壳给你的域名就可以访问了

小结

这个只是花生壳利用电脑搭建服务器的冰山一角。更多实用的使用方法感兴趣的朋友可以自己去试验。花生壳动态域名解析于2013年11月11日正式发布花生壳(内网穿透)服务。无需公网IP,无需路由器端口映射,从此对nat说NO!颠覆式的动态域名技术创新,全新的交互界面及功能体验,满足你多元化的需求,带给你焕然一新的使用感受。在安装完成花生壳(内网穿透)版本的客户端以及注册花生壳账号之后就可以使用花生壳进行内网穿透了。