内网穿透(端口映射)实践,让你的小伙伴访问你的网站

小明苦学web技术,终于在自己主机上搭了服务器,做了一个网站。

此时,小明想要向他的朋友们炫耀一下,于是把本机ip和端口号发给了小伙伴们,

但小伙伴却反馈网址打不开。。。

小明心想怎么可能?于是打开命令行输入ipconfig确认了自己的ip地址,接着确认了服务器暴露的端口。发现没问题啊,也把防火墙关了,小伙伴怎么访问不了呢?

小明百思不得其解,或许,屏幕前的你也有这样的困惑,接下来,我来讲讲如何让你的小伙伴访问你的网站

 首先要解决一个问题,就得清楚问题原因所在!!!

公网ip和私网ip

小伙伴访问不了小明的网站,最主要的问题就是ip是错的!

什么?ip不是在命令行查出来了吗?难道你的主机会骗你?

hh,主机没骗你,但它只是显示你的私网ip

公网ip:简单理解为在互联网上能够直接访问的ip,例如百度的ip

私网ip:不能在互联网上直接访问的ip

看到这,你可能会有疑问,既然我的主机是私网ip,那不就不能访问互联网?那我平时上网是怎么回事?

私网ip:192.168.*、10.*等,这些ip是无法被直接访问的

私网主机访问公网主机的过程其实是ip转换的过程,通俗讲就是你的ip在请求的时候会转换成公网ip,然后再进行通信

转换ip的过程称为nat技术,而nat的出现就是为了节省ip,还能保证一定的安全

例如你的ip是192.168.110.65,这是一个私网ip

你的上网过程就是下面这张图

首先你要访问百度,然后在主机输入www.baidu.com

接着dns会解析网址,得到百度的ip,例如是1.2.3.4

接着你的请求发到nat-router上,其实就是发到你家的路由器上,这是过程1

接着nat-router解包发现目标ip是1.2.3.4,不是本网络的ip,他就会转换源ip

此时源ip变成路由的ip,例如134.243.123.42,且端口号也会改变

私网主机一个ip和一个port对应nat-router上的ip和某个port,nat-router会记录这个映射,当然不同的nat技术是有差别的

此时,发往百度的请求变成上图的过程2

通过网络后,到达百度的服务器,百度处理后返回包,这就是过程3

再次通过网络后,回到nat-router,nat-router查看映射,再次将包的ip和端口号转换(查看映射)

这就是过程4,然后你的主机收到回复,且你认为就是百度发给你的。

可以发现,想要收到外界的回复,需要在router上有映射关系,否则即使router收到response,它也不知道发给谁。

这就是你的小伙伴访问不了你网站的原因

怎么解决呢?

 既然要通过router,那我们就在router上面添加映射

步骤

1. windows+R,输入cmd打开命令行,输入ipconfig查看你的ip

2. 在浏览器网址格输入默认网关

3. 找到nat服务(端口映射、虚拟服务器等等,不同router叫法可能不一样)

4. 一般会有外部端口、内部端口、外部ip、内部ip,内部ip

内部端口写你服务器的端口,外部端口随便写一个例如80,添加映射之后,你的小伙伴应该就能访问了

不能访问是怎么回事? 

1. 你服务器开了没有?用手机在局域网内登入你的网站看看能不能进去

2. 主机防火墙关了没有?或者设了白名单没有?

3. 检查路由的防火墙

4. 你的主机没有公网ip

第四点出现的概率比较大,怎么查看呢?

打开百度,输入‘ip地址’,会弹出来你的公网ip,比较一下你的默认网关的ip,相同就说明你有公网ip,否则没有。(为什么这么比较,你看看上面那张图就知道)

 等等?什么?这时候又弹出来公网ip了?不是没有吗?

原因如下图:

看的出来,你的nat-router外面还有nat-router,也就是你的第一层外网其实也是内网

即使你设了端口映射,但外网还是访问不了你的网站,不过在上图中最大圈圈里面的主机(比如你的隔壁宿舍,如果运营商相同的话)都可以访问你的网站,至于原因,相信你在看了文章后已经知道了。

 此时没有什么好的办法,除非你有办法一层层在nat-router添加映射

其他方法

1. 干脆点,买个云服务器

2. 下载个内网穿透的软件

搞完以后,你就可以暴露自己的网站了

可以跟你朋友说:



 ​​​​​​​

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值