一、为什么局域网的服务器无法在外网访问?
服务器、电脑之间靠IP地址寻址,目前大部分基于IPV4进行寻址访问。但是因为IPV4的地址数量有限,中国分到的还比较少,所以非常紧缺。
一个解决方案就是在局域网来建立一个内部的网段,这个局域网的只在本网段内能互相访问,无法从外网访问。 局域网的一般都是192.168.X.X这样的。
局域网内的服务器使用的是私有 IP 地址,这些地址在互联网上是不可路由的。如果没有通过网络地址转换(NAT)或其他方式将其转换为合法的公网 IP 地址,外网就无法直接访问服务器。
二、外网访问局域网的方法
2.1 端口映射
基本概念:
端口映射是一种网络技术,它在网络地址转换(NAT)中发挥着关键作用,能够实现外网对局域网内服务器或设备的访问。
在局域网环境中,设备通常使用私有 IP 地址,这些地址无法直接在公网上被访问。端口映射通过将公网 IP 地址的某个端口映射到局域网内设备的特定 IP 地址和端口上,让外网用户能够通过访问公网 IP 地址和映射端口来间接访问局域网内的设备。
工作原理
- NAT 设备:通常是路由器,它连接着局域网和公网。NAT 设备拥有公网 IP 地址,局域网内的设备使用私有 IP 地址。
- 映射设置:在 NAT 设备上进行端口映射配置,指定公网端口和对应的内网设备 IP 地址及端口。
- 数据转发:当外网用户访问 NAT 设备的公网 IP 地址和映射端口时,NAT 设备会根据映射规则将数据转发到局域网内指定设备的相应端口上;反之,局域网内设备的响应数据也会通过 NAT 设备按照映射规则返回给外网用户。
服务器需要连接到包含公网IP的服务器上!!但现实运营商给你的是私网IP,几乎无法获得公网IP。
2.2 内网穿透
内网穿透就是别人通过外网能够访问到我们本地的服务器。
这个典型代表就是花生壳。这里是一个软件,在服务器上装一个软件,然后做设置。花生壳给你一个域名,将这个域名与你的一个服务进行映射。
此后别人访问这个域名即可,实际上这个域名,在花生壳的服务器上做了一次解析,同时进行了数据的中转(他们是这么声称的)。
他们有免费的,但是还有映射数量,带宽的限制,想实用估计得收费了。
先来说下市面上一些主流的内网穿透方法:
穿透工具 | 入门简易度 | 价格 |
---|---|---|
Ngrok | 简单 | 免费/付费(几元每月) |
Natapp | 简单 | 免费/付费(几元每月) |
花生壳 | 简单 | 付费(偏贵) |
Ssh、autossh | 难 | 免费 |
Frp | 难 | 付费 |
Lanproxy | 难 | 付费 |
Spike | 难 | 付费 |