小明苦学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. 下载个内网穿透的软件

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

可以跟你朋友说:



​​​​​​​

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

  1. 免费内网穿透端口映射工具-网络通

    网络通是一款永久免费的内网端口映射,内网穿透软件,使用它可以轻松访问连接内网,穿透内网,不需要设置路由器,不需要设置公网ip,不需要固定ip,不需要动态域名,用户可以免费添加多个映射,适合在公司,小区 ...

  2. 内网穿透-端口映射-跨域问题解决

    文章目录 1. 内网穿透 2. 端口映射 3. 跨域问题 1. 内网穿透 内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而 ...

  3. 使用python做内网穿透小工具实现花生壳功能,一键生成内网穿透端口映射

    本文是基于https://gitee.com/stlswm/transponder 这位大佬的源码的基础上,做的小工具 测试系统: 外网:linux 内网:windows python:python3 ...

  4. GSM模块的GPRS的TCP测试成功-校园网(内网穿透)映射

    ** GPRS的TCP测试成功-校园网(内网穿透)映射 ** 笔者是基于手上已有SIM800C的GSM模块进行测试,也是经过一番测试才获得成功的测试经历,特此分享. 首先GSM模块的硬件连接就不说了, ...

  5. 内网ADSL 端口映射 提高BT下载速度

    内网ADSL 端口映射 提高BT下载速度 一直以来有很多ADSL用户在寻找如何做端口映射,使自己的BT下载速度能有一个质的提高. 这里收集整理了一些网上文章 希望对广大淫民有所帮助 现在很多关于端口映 ...

  6. 内网穿透——T1-ngrok 内网穿透 端口修改

    (新人进)参考.推荐文章: https://blog.csdn.net/chain_fei/article/details/79152692 https://blog.csdn.net/zyw_jav ...

  7. 使用FRP进行内网穿透的最佳实践

    转自我的个人博客https://blognas.hwb0307.com.欢迎关注! 前言 前不久我出过一期<Docker系列 通过FRP实现内网穿透>讲述怎么利用FRP进行内网穿透.不过, ...

  8. ESXI + pfsense + 公网ip ,实现内网服务器端口映射

    暴露内网服务器端口的方法有很多,之前介绍过ngrok和frp,今天我们用 ESXI +pfsense 来做下. 0. 准备材料 ESXI服务器一台,双网卡,版本5.5以上 公网ip一个(有固定IP是最 ...

  9. 钉钉内网穿透工具,如何使用钉钉小程序访问内网

    描述:公司内网搭建项目,客户端钉钉小程序,如何实现钉钉小程序请求公司内网服务. 钉钉提供了内网穿透工具. 一.安装工具 git clone https://github.com/open-dingta ...

最新文章

  1. VS2013 编译程序时提示 无法查找或打开 PDB 文件
  2. 【采用】【风险管理】(第一篇)风险管理核心指标
  3. mysql计算后精度增大_Mysql用法汇总
  4. 一个容易忽略的问题—Javascript文件加载的顺序
  5. 响应式布局方法的方法
  6. C++ 输出调试信息 类似MFC的TRACE等宏
  7. Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告
  8. Java基础-hashMap原理剖析
  9. 高并发秒杀系统--Service事务管理与继承测试
  10. 微软删除最大的公开人脸识别数据集,只因员工离职?!
  11. lsof查找放进linux回收站中的删除文件,并彻底删除或恢复文件
  12. python 菜鸟-Python3 面向对象
  13. 10. Django基础:静态文件
  14. CodeForces 2B The least round way
  15. html css的参考文献,网页制作论文参考文献大全 网页制作参考文献有哪些
  16. html link 怎么设置密码,tplink路由器手机怎么设置密码?
  17. [矩阵论]欧氏空间的线性变换是正交变换的充要条件是,它对于标准正交基的矩阵是正交矩阵
  18. [Java]-单例模式与volatile简介
  19. 快速了解使用ncurses(按键的快速响应)
  20. 人工智能笔记 2.1人工智能导论- 1.什么是AI,深度优先,广度优先,最优路径

热门文章

  1. 【配电网重构】基于粒子群求解配电网重构模型matlab源码
  2. 卡巴斯基公司的官方申明
  3. matlab程序实现物理现象,关于基于Matlab物理实验系统设计与实现
  4. finally的作用以及使用
  5. ChatGPT似乎有的时候并不能搞懂Java的动态分派,你懂了吗?
  6. 属牛人有什么性格特点?
  7. Shell语言中的变量和引用
  8. EV录屏/向日葵文件播放没有声音问题,不能拖动时间进度条
  9. 轻量级对象存储服务minio安装及使用
  10. 无字天书之Python第七页(基础数据结构—上)