内网穿透是什么?为什么会有内网穿透?

内网穿透是什么?为什么会有内网穿透?-YULLL博客网
内网穿透是什么?为什么会有内网穿透?
此内容为免费阅读,请登录后查看
大米0
免费阅读

一、为什么会有内网穿透?

在我们的日常开发与部署场景中,经常会遇到这样的情况:

我们的电脑(或服务器)在局域网中,使用的 IP 地址通常是 192.168.x.x、10.x.x.x、172.16.x.x 等内网地址。公网(如阿里云、腾讯云等云服务器)使用的是可被全世界访问的公网 IP。

当我们希望让互联网上的用户访问到我们在本地(内网)搭建的服务(例如网站web、数据库mysql、TCP接口程序、公司ERP系统、打印机等),如果没有公网 IP,直接使用 192.168.x.x 这类内网地址是无法在外网访问到的。其根本原因在于:私有地址(内网 IP)不会在公网的路由中进行传播。路由器(或运营商)通常会做 NAT(网络地址转换),把本地多台设备的内网 IP 映射到路由器的一个或几个公网 IP 上,外部无法直接“反向”找到你局域网里的那台设备。

为了解决这一问题,常见的做法有两种:

1. 部署到云服务器上

最直接的方式是将服务部署到云服务器上(如阿里云、华为云、腾讯云等),因为云服务器拥有公网 IP,这样外网就可以直接通过公网 IP 访问到你的服务了。

优点:访问速度通常更稳定,适合生产环境;公网带宽由云服务商提供;部署方式相对可控。

缺点:需要租用云服务器,产生一定的费用;需要进行额外的运维部署工作,需要相应的云服务器管理技术人员。

2. 使用内网穿透技术

如果我们希望本地电脑仍然是开发、运行服务的主力机器,又或者是本地保留数据且需要让他人访问本地服务(例如展示 Demo网站、共享FTP文件、SVN等),而又不想或无法购买云服务器时,就可以借助“内网穿透”技术来解决。

通过内网穿透服务提供的客户端与服务器端,可以将内网地址映射到一个公网可访问的域名或地址上,从而实现对内网服务的外网访问。

常见的内网穿透工具包括:Ngrok、FRP、NAT123等。

二、两种常见的访问方式

1. 部署到云服务器上

如果我们需要长期、稳定地在互联网上提供服务,最简单的方式就是购买云服务器(如华为云 ECS),并在上面部署我们的项目。部署步骤通常包括:

在云服务器上安装运行环境(Python、php、Nginx、MySQL 等)。

将本地开发完成的项目上传到云服务器。

在云服务器上启动服务,并确保安全组和防火墙已开放对应的端口(如 80、443、8000 等)。

通过云服务器的公网 IP 或域名进行访问。

这种方式能很好地解决外网访问的问题,但缺点是需要一定的服务器费用,同时也需要维护云端环境。

2. 内网穿透

内网穿透的核心思路是:

借助第三方拥有公网 IP 的服务器,来中转外网请求与本地服务之间的通信。

当你在本地运行穿透客户端后,本地客户端会主动与第三方服务器建立连接,外网请求再通过第三方服务器转发到你的本地服务。

3. 常用的内网穿透工具

Ngrok

早期比较流行的内网穿透工具,提供免费和付费版本。

配置相对简单,但官方服务器在国外,速度可能不够理想。

FRP

开源、免费,配置灵活,可自建服务端,常用于团队或企业内部穿透。

配置稍微复杂,但在国内社区中比较活跃,有很多教程可供参考。

NAT123

国内的一家较老牌服务商,提供内网穿透服务,有免费和付费隧道。

操作简单,国内速度较快,但免费隧道有一定限制。

三、内网穿透FRP使用示例

  1. 在公网服务器上部署 FRP 服务端

准备一台云服务器(拥有公网 IP)。下载并配置 FRP 服务端(frps),在 frps.ini 中设置监听端口等参数。

启动 FRP 服务端。

2. 在本地部署 FRP 客户端

下载并配置 FRP 客户端(frpc),在 frpc.ini 中配置好:公网服务器 IP(你的云服务器 IP)。需要穿透的本地服务端口(例如 8000 端口)。分配的域名或自定义域名。启动 FRP 客户端。本地客户端与远程服务器建立连接。

3. 访问验证

当外网用户通过域名或公网服务器的端口访问时,就会被转发到你的本地服务上。这样,就无需将你的项目直接部署到云服务器上,而是通过内网穿透,让别人也能访问到你本地运行的项目。

四、内网穿透nat123使用示例

  1. 下载安装
    在目标内网本地计算机下载安装nat123客户端。不同系统平台对应使用不同版本的,包括windows、Linux、android等。
  2. 注册帐号登录
    如无帐号的则需要先注册一个nat123帐号,然后登录客户端。注意不同网络环境使用时,需要分别注册登录不同帐号区分。
  3. 设置内网公网
    登录客户端后,win界面“添加映射”或对应官网管理后台页面添加端口映射设置。选择合适的映射类型(如80http、443https、非80、同端口直连等),自定义对应内网和公网地址(自动生成的二级域名或自己注册的域名)。
    添加设置好后保存,生成一个带有内网公网地址记录。如绑定用自己域名的需要注意,同时需要在自己注册域名解析管理网站添加对应的cname指向让自己域名生效,不然鼠标停留可见一直提示域名指向不对。
  4. 访问测试
    在任意上网点,通过对应设置好生效的域名地址进行连接访问。如直接将自己电脑IIS提供他人访问。

五、总结

内网穿透解决了内网环境下无法直接暴露给外网访问的问题,为开发测试、临时共享等场景带来了极大的方便,适合数据本地运行网络场景。如数据不在本地保留的,可以直接在云服务器上部署服务也是一个可行的选择。

可以看出无论是部署到云服务器上,还是使用内网穿透,核心都是让外部访问能够绕过内网地址的限制,直接访问到本地服务或部署在公网服务器上的服务。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容