从外网访问局域网服务器的六种方法

article/2025/10/2 17:48:50

目录

  • 1 概况
  • 2 为什么局域网的服务器无法在外网访问
  • 3 外网访问局域网的方法
    • 3.1 端口映射
      • 3.1.1 如何获得公网IP
      • 3.1.2 公网IP是动态的怎么办
        • 3.1.2.1 申请固定IP
        • 3.1.2.2 域名服务
          • 3.1.2.2.1 申请域名
          • 3.1.2.2.1 使用路由器进行域名DDNS服务
          • 3.1.2.2.1 使用花生壳进行域名DDNS服务
      • 3.1.3 我的光猫路由器是运营商的不支持这些设置怎么办
    • 3.2 DMZ主机
    • 3.3 建立专用网络
    • 3.4 VPN
    • 3.5 内网穿透
    • 3.6 建立虚拟局域网
  • 4 参考:

1 概况

因为需要在外网访问局域网的服务器,所以研究了下策略。这里做个总结。

2 为什么局域网的服务器无法在外网访问

服务器、电脑之间靠IP地址寻址,目前大部分基于IPV4进行寻址访问。但是因为IPV4的地址数量有限,中国分到的还比较少,所以非常紧缺。
一个解决方案就是在局域网来建立一个内部的网段,这个局域网的只在本网段内能互相访问,无法从外网访问。
局域网的一般都是192.168.X.X这样的。
如下图,为实际情况下比较普遍的一个拓扑关系。
在这里插入图片描述

(1)光猫+路由器,一般由运营商(移动、电信、联通)提供,可以是光纤接入或者网线接入。一般通过拨号的方式上网:就是在我们办宽带的时候,会给你分配一个拨号的号码加密码,通过在这个光猫+路由器中输入这个账号,即可与运营商连接,实现上网。
(2)光猫+路由器的外口为Wan口,一般为一个公网的IP。特殊情况咱们后面说。然后在他的内部的口为Lan口,有若干个,组成一个局域网,这个局域网是只在这个小范围内互相可以访问,这个局域网内的电脑可以访问外网,但是外网无法访问他们(因为无法路由到他们,按照IP路由的),当然还有别的方法,咱们后面说。一般为192.168.1.X的一个号段,一般会将1开头的作为这个路由器自己内网的一个地址,然后2之后的给其他电脑用。例如咱们例子中的情况,光猫路由器他的内网的地址为192.168.1.1,其他的路由器和电脑都是从2,3这样的。当然这个是可以在路由器中 进行设置的。下面接的电脑的IP可以是静态分配,也可以动态分配。注意:根据子网掩码192.168.1.1
/255.255.255.0,这里的子网为192.168.1.X网段。
所以对于光猫路由器来说,他说横跨两个网的,对应有两个网络的IP,分别为外网(此网段路由器的IP地址为122.15.244.39)和内网子网192.168.1.X网段(此网段路由器的IP地址为192.168.1.1)。
这个光猫路由器,就是靠横跨两个网段,实现了数据从一个网到另一个网的中转的!!
(3)有了光猫路由器后,可以直接将我们的PC机连接到这个上面上网,如图PC机3。当然,这里的连接可以是有线的网线、也可以是无线wifi。这里的连线仅是示意连接关系。
(4)除了运营商提供的路由器外,我们可以自己再购置一些商用的路由器(华为、tplink、华硕等等很多牌子的),可以扩展我们的接入点数量和覆盖范围。例如图中例子,路由器1为扩展的路由器,他的Wan口作为光猫路由器的一个Ip地址,这里是192.168.1.2。
(a)在路由器1的Lan上又形成了一个小局域网,这个网为子网192.168.2.X网段。
(b)与光猫+路由器类似,他也横跨了两个子网,分别是192.168.1.X网段(此网段路由器1的IP为192.168.1.2)和子网192.168.2.X网段(此网段路由器1的IP为192.168.2.1).
(5)服务器,PC机1、2为子网192.168.2.X网段。他们与PC机3分属两个网段。PC机3是无法访问到服务器的。PC机1、2可以访问到服务器。
如果想让PC机3能访问服务器,需要将两个网段做下合并,通过路由器的子网掩码设置,将二者设置成一个网段,则可以访问,如将两个子网的子网掩码设置为255.255.252.0。关于掩码与子网划分可以参考专门的讲解。此处不赘述。
(6)在上述的部署中,局域网内的机器都可以访问服务器,但是外网如果想访问是访问不了的,如图中的PC机X,则无法访问。

3 外网访问局域网的方法

经过研究,有以下几种方法。

3.1 端口映射

这个又叫虚拟映射,这个方法就是在连接外网的路由器上做一个端口映射的设置,具体说将访问该路由器外网地址和特定端口的服务映射到内网的一台电脑的某一个端口上。
具体上面来说,就是在光猫+路由器上做一个虚拟映射的设置,例如,将访问122.15.244.39,端口10101的访问映射到192.168.2.2的端口10101上。
以华为的路由器设置为例,登录华为路由器,示意如下:
在这里插入图片描述
点击+新增或编辑制前的,进入下面界面:
在这里插入图片描述
设置完成后,在外网浏览器输入:122.15.244.39:10101,则可以直接访问到服务器。
需要注意的是:
(1)公网映射时,选择的外部端口最好不选择常用的80,21等,因为路由器会屏蔽这些!!!笔者试过,80确实不行!
(2) 服务器需要连接到包含公网IP的服务器上!!

这里虽然说的简单,但是实际当中会有许多问题。下面说明下。

3.1.1 如何获得公网IP

实际当中,你的光猫+路由器的那个IP地址(可以在登录路由器界面后看到)不一定是公网IP,如果不是,则以上无法完成。因为IP地址很有限,所以很多运营商给你的是私网IP。例如,你看到你的那个地址是通过PPOE得来的,就是私有的。可以参见这里https://blog.csdn.net/hongkaihua1987/article/details/106046819。
要获得公网IP,可以找运营商,要求给公网IP,他们会在后台设置,设置完后就是公网的了。

3.1.2 公网IP是动态的怎么办

你的公网IP有了,但是他通常是动态的(登录路由器,如果是DHCP获得的,就是动态的)。所谓动态就是分给你的是变化的,当你路由器重新加电或复位后就会重新分配一个。这就有点傻了,总不能每次去查路由器吧。这里有两个办法:

3.1.2.1 申请固定IP

(1)找运营商,申请一个固定的公网IP。但是有个前提,运营商只对公司分配固定IP,对个人用户是不可以的。同时公司用户必须申请公司宽带,不能是个人宽带。公司宽带的资费要比个人的贵一些。同时,如果想要申请固定IP,还需要额外收一笔费用,按月计费。

3.1.2.2 域名服务

3.1.2.2.1 申请域名

以上麻烦了吧。还有第2个办法,申请一个域名,将路由器绑定域名。然后通过域名来访问路由器。路由器会定期把自己的IP报给域名服务器(由域名服务器的提供商负责,例如花生壳的),访问域名时,先到域名服务器获得IP,然后再用IP访问这个路由器,这样每次动态也没问题了。
为此,你需要先申请一个域名,关于域名,可以是一级的、也可以是二级的,前者要求较高,通常是大的公司,后者个人都可以申请,网上有很多申请的,还有免费的。例如花生壳的,可以有免费的,但是现在貌似也要收费了。可以看这里:
https://hsk.oray.com/parts-center/domain.html/
https://developer.aliyun.com/article/711533?spm=a2c6h.13813017.content3.1.50c7101cJtWp5u
https://cloud.tencent.com/act/domainsales?fromSource=gwzcw.2046487.2046487.2046487&utm_medium=cpc&utm_id=gwzcw.2046487.2046487.2046487&bd_vid=8387152427382289134

3.1.2.2.1 使用路由器进行域名DDNS服务

有了域名后,登录路由器,做设置即可。这里以华为某路由器为例:
在这里插入图片描述
这里就是用的花生壳的。
我这里就是花生壳提供的二级域名,XXXX.zicp.vip。这样设置完后,再访问服务器就可以这样访问了:http://XXXX.zicp.vip:10101。

如何查看是否域名解析成功了
一方面登陆你得服务试试。另外,可以使用windows得Cmd窗口中得nslookup命令,查一下,就可以看到是否成功。如下图所示:作者查询了一个域名,回复域名得地址。1XX.XX.XX.66得就是我的公网地址了。
在这里插入图片描述
ps:笔者的这个路由器有点问题,就是过几天时间域名解析就无法使用了,需要在路由器上重新登陆,跟客服电话,据说路由器也是使用的花生壳的插件,可能存在问题。我理解,可能这个路由器上的域名解析模块需要定期与域名解析服务器进行通信,类似于心跳服务,过一段时间,没有通信,域名服务器就不给他提供服务了,使用nslookup可以看下。那个地址那里全是0,就是没有解析到了。

3.1.2.2.1 使用花生壳进行域名DDNS服务

使用花生壳提供域名解析服务
上述是使用路由器上提供的DDNS服务,就是域名解析服务。也可以使用第三方软件提供。比如笔者就使用了花生壳的域名服务的。
花生壳这个软件可以在这里下载:https://hsk.oray.com/
下载后安装到你得局域网中得任何一个电脑上就行。然后运行,登陆你得账户,默认你得账户里就一个壳域名,当然你也可以自己再买一个。
在花生壳里,打开你的那个域名,就可以实现域名的解析了。虽然是在内网,但是会把公网IP解析出来了。你可以通过这个域名来访问任何你内外的东西了。当然,这只是提供了一个域名,具体还需要配合端口映射、内外穿透等方式访问。参见其他。笔者的花生壳见下图。(送得那个默认就得开着,还关闭不了)
在这里插入图片描述

(a)花生壳还可以以服务的形式在后台跑。
(b)花生壳主要是用来内网穿透的,当然也有域名解析的功能。这个功能是永久免费的。(买域名是另外一回事。)花生壳的多个收费版,主要只得内网穿透功能,后面说。

3.1.3 我的光猫路由器是运营商的不支持这些设置怎么办

这个肯定是运营商的,运营商的里面也会由上述的支持,其实很多路由器一般都会有的,这些功能一般也都会有的,具体可能稍有差异。
但是运营商的很多是功能比较弱,或者限制比较多,造成我们无法随心所欲的干这些事情。那怎么办呢?我的二级路由器,如上图中的路由器1是商用的,功能也很强大。能不能用他呢。
答案是不能直接这样用,因为他没有公网IP!!
但是,可以有变通方法。就是让光猫路由器只有光猫功能,他的路由器使用桥接模式。
在此模式下,我们不再在光猫路由器上拨号上网,而是在上面的路由器1上拨号上网,这样操作后,路由器1就有了公网的IP,然后,就可以随心所欲的设置了。
最后要说明的是,这个桥接模式的设置需要运营商在他们后台那里设置(跟获取公网IP的策略类似),不能咱们在路由器上设置的!

3.2 DMZ主机

这个说白了就是在路由器设置,让某一个主机直接全部暴漏在外网中。
在路由器中设置,本人没选择,这个风险有点大!具体大家参考吧。

DMZ 区可以理解为一个不同于外网或内网的特殊网络区域,DMZ 内通常放置一些不含机密信息的公用服务器,比如 WEB 服务器、E-Mail 服务器、FTP 服务器等。这样来自外网的访问者只可以访问 DMZ 中的服务,但不可能接触到存放在内网中的信息等,即使 DMZ 中服务器受到破坏,也不会对内网中的信息造成影响。DMZ 区是信息安全纵深防护体系的第一道屏障,在企事业单位整体信息安全防护体系中具有举足轻重的作用。

3.3 建立专用网络

大的公司,要运营商建立专线,将两个或几个地方连接起来。但这个成本贼高!

3.4 VPN

VPN,虚拟专用网络。介绍网上搜索一下即可。
简单说,他可以使用硬件来搭建、也可以纯软件来搭建。
(1)硬件搭建的话,类似与上面的那个路由器,直接将光猫路由器桥接掉,然后他来拨号获得公网IP,然后两个网一手托两家即可。
实际当中,许多路由器就有这个功能,当然也可以使用自己的某一台电脑来完成。还有专门的公司来做这个,生产个专用的硬件盒子。
这里的PC机X需要上网时,就需要有一个专门的客户端登录,可以是客户端软件,也有做成网页吧账号登录。
(2)这里必须有公网IP。且如果公网IP为动态的话,同样需要域名来解析!!类似上面,不赘述。
国内比较多的专门的供应商有:深信服、奇安信等。一般大的有自己的域名服务,免费的,如深信服。

3.5 内网穿透

这个典型代表就是花生壳。这里是一个软件,在服务器上装一个软件,然后做设置。花生壳给你一个域名,将这个域名与你的一个服务进行映射。
此后别人访问这个域名即可,实际上这个域名,在花生壳的服务器上做了一次解析,同时进行了数据的中转(他们是这么声称的)。
他们有免费的,但是还有映射数量,带宽的限制,想实用估计得收费了。具体可以参见:https://hsk.oray.com/
后来,他们也有了自己的硬件了。

3.6 建立虚拟局域网

典型产品:蒲公英,免费的ZeroTier One。
这个的基本逻辑,有点类似于腾讯会议之类的逻辑。就是在第三方服务器上申请一个虚拟网络ID,然后组网的几个电脑都安装软件,然后并输入这个ID,然后,服务器与软件一起,为这些软件都建立一个虚拟的网络IP(注意,此时你的电脑上有两个IP了!设置后windows会提示你有两个),然后这些电脑的的虚拟网络IP是一个号段的,有第三方服务器负责路由、中转、穿透你原来的实际网络,就是这样!!但这个有受服务器带宽的限制!

ZeroTier One参考这里:https://www.jianshu.com/p/eefddb256ad7
https://www.jianshu.com/c/2108f5087466
https://www.jianshu.com/c/dde20635ae46

4 参考:

【1】https://www.51-n.com/t-4591-1-1.html
【2】https://blog.csdn.net/hongkaihua1987/article/details/106046819


http://chatgpt.dhexx.cn/article/uIjWIdPM.shtml

相关文章

外网访问内网web

要实现外网访问内网Web应用程序,您需要使用一些技术和工具。以下是一些可能有用的方法: 1. 端口映射:您可以在内部网络中设置端口映射,使得外部网络可以访问您的Web服务器。这个过程可以通过路由器或者其他网络设备完成。例如&…

外网访问内网(内网穿透)

什么是内网穿透 内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。就是说映射端口,能让外网的电脑找到处于内网的电脑&#xff0c…

Servlet入门开发步骤

Servlet入门开发步骤 一、创建Javaweb工程 1.选择新建工程 2.勾选创建工程模板 3.给工程命名 4.创建完成 二、Servlet代码书写以及优化 1.创建一个类实现Servlet并且重写接口的方法 package com.sss.demo;import javax.servlet.*; import java.io.IOException;public c…

servlet入门MVC

一、servlet是什么 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。 使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数…

Java Web之Servlet入门

Java Web之Servlet入门 ​ 上世纪90年代,随着Internet和浏览器的飞速发展,基于浏览器的B/S模式变得火爆起来。 最初,用户使用浏览器向WEB服务器发送的请求都是请求静态的资源,比如html、css等。 但是静态网页很难满足不同用户的需…

Servlet入门必备知识

目录 什么是Servlet 手动实现Servlet程序 常见的配置错误 Servlet-url如何定位到Servlet程序去访问 Servlet生命周期 Servlet生命周期总结 Servlet 请求的分发处理 什么是Servlet 1、servlet是javaEE规范之一。规范就是接口 2、servlet就是javaweb三大组件之一。三大组件…

Servlet入门

一,简单使用servlet 1.在游览器输出hello Word 1.创建一个java普通类,实现Servlet类 实现servlet类有三种方法:①实现servlet接口②继承GenericServlet③HttpServlet package com.hqyj.gwr.servlet;import javax.servlet.*; import java.…

Servlet快速入门

目录 1、Servlet简介 2、代码实现 2.1、环境准备 2.2、实现servlet接口 2.3、配置web.xml文件 2.4、url-pattern的三种配置方式 2.5、快速创建Servlet 2.6、修改快速创建模版(针对以上模版不一致或者webServlet中请求路径没有/) 3、项目部署位置…

12款免费HTML5开发框架和开发工具…

HTML5 在不同的领域让网页设计更强大的。快速,安全,响应式,互动和美丽,这些优点吸引更多的Web开发人员使用HTML5。HTML5有许多新的特性功能,允许开发人员和设计师创建应用程序和网站,带给用户桌面应用程序的…

HTML --- 开发工具篇(Hbuilder X)以及相关标签

目 录 1.常见的开发工具有 2.创建HTML文件 3.!DOCTYPE html标签 4.页面语言标签lang 5.设置字符集编码方式charset和META标记 为了提高我们的开发效率,减少代码的出错,我们并不提倡用记事本开发,我们有更好的开发工具。开发工具功能…

HTML与CSS基础(一)—— HTML基础(web标准、开发工具、标签)

目标 能够理解HTML的 基本语法 和标签的关系 能够使用 排版标签 实现网页中标题、段落等效果 能够使用 相对路径 选择不同目录下的文件 能够使用 媒体标签 在网页中显示图片、播放音频和视频 能够使用 链接标签 实现页面跳转功能 一、基础认知 目标:认识 网页组成 和…

HTML系列之开发工具

一 欢迎来到我的酒馆 介绍web开发中,各种开发工具的安装与使用。 目录 一 欢迎来到我的酒馆二.vscode三.webstorm 二.vscode 前端的开发工具种类繁多,如:WebStorm,Sublime Text,Atom,HBuilder,…

【HTML 教程系列第 1 篇】HTML 是什么?常用的开发工具有哪些?

这是【HTML 教程系列第 1 篇】,如果觉得有用的话,欢迎关注专栏。 文章目录 一:HTML 是什么二:HTML 要学习什么三:HTML 文档的后缀名四:HTML 的开发工具有哪些 一:HTML 是什么 HTML&#xff0c…

WebStorm中文HTML编辑开发工具

WebStorm中文是一款功能强大的网页编程工具,功能非常强大,HTML5/JavaScript Web前端开发工具用户可以利用软件实现在线编程,为你提供最为专业的开发服务,让你的工作学习事半功倍被广大中国JS开发者誉为“Web前端开发神器”、“最强…

用于编写HTML代码的常见工具

1、记事本(不推荐) 特点:记事本编写页面代码不适合初学者使用,因为无代码提示、无代码高亮显示、用户界面不友好; 使用步骤: 首先任选一个位置新建一个记事本 打开记事本,写上代码并保存 将文件…

HTML标签及网页开发工具的使用(VSCode)

一、HTML语法规范 1.1所有的标签都应该包括在<>里面&#xff0c;如<html>或</html>等&#xff0c;大部分的标签都是成对出现的&#xff0c;<>里没/的为开始标签&#xff0c;<>里有/的为结束标签&#xff0c;因为这些标签是成对出现的&#xff0c…

【HTML】前端网页开发工具Vscode中DOCTYPE和lang以及字符集的作用

&#x1f60a;博主页面&#xff1a;鱿年年的学习之路 &#x1f449;博主推荐专栏&#xff1a;《前端基础学习》&#x1f448; ​&#x1f493;博主格言&#xff1a;追风赶月莫停留&#xff0c;平芜尽处是春山❤️ 目录 前言 Vscode工具生成骨架标签新增代码 一、<!DOCT…

HTML(一):开发工具

1.1、开发工具 目前前端开发工具繁多&#xff0c;例如Dreamweaver、Sublime、Hbuilder、Vscide等等。对于新手开发来说&#xff0c;我比较推荐使用HBuilder。 1.2、使用HBuilder 我们在开发的时候&#xff0c;都需要新建一个HTML页面&#xff0c;我都在页面中编写代码。 HBu…

Html5开发工具介绍

14款主流HTML5开发工具 http://sanwen8.cn/p/273vS6p.html HTML5被看做是web开发者创建流行web应用的利器&#xff0c;增加了对视频和Canvas 2D的支持。HTML5的诞生还让人们重新审视浏览器专用多媒体插件的未来&#xff0c;如Adobe的Flash和微软的Silverlight&#xff0c;HTML…

HTML(四)——HTML标签(三)——开发工具插件安装

目录 开发工具 VScode的使用 VScode工具生成骨架标签新增代码 4.3.1 文档类型声明标签 4.3.2 lang语言种类 4.3.3 字符集 总结 VSCode插件安装 安装方法 推荐插件 代码实现 实现结果 开发工具 VScode的使用 双击打开软件新建文件&#xff08;ctrlN&#xff09;保…