ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

LAN口与WAN口详解:IP地址、DHCP与NAT原理及配置实战

LAN口与WAN口详解:IP地址、DHCP与NAT原理及配置实战 1. 从一个让人抓狂的下午说起为什么搞懂LAN和WAN这么重要很多人第一次真正意识到LAN口和WAN口的区别不是在课堂上而是在一个让人抓狂的下午。路由器买回来网线插上去电脑死活上不了网。打电话问客服对方说“你把网线插到WAN口”你低头一看路由器背面四个口长得一模一样到底哪个是WAN好不容易找到了插上去还是不行客服又说“你电脑的IP地址要设成自动获取”。你打开网络设置看到一堆数字192.168.1.1、255.255.255.0、192.168.1.100完全不知道这些数字之间有什么关系。这个场景我见过太多次了。不管是刚入行的运维新人还是自己在家折腾智能家居的普通用户LAN口和WAN口这两个概念就像一道门槛跨过去之后很多问题迎刃而解跨不过去就永远在“重启试试”的循环里打转。这篇文章要做的就是把这道门槛彻底拆掉。我会从最基础的概念讲起把LAN口和WAN口各自扮演的角色、IP地址在它们之间怎么流转、为什么会有私有地址和公网地址的区分、DHCP到底在背后干了什么这些看似零散的知识点串成一条完整的链路。然后我会给出具体的排查步骤和配置方法覆盖Windows、Linux、macOS几个主流系统也会涉及打印机、虚拟机、激光雷达这类特殊设备的IP配置场景。不管你是想搞清楚家里网络的运行逻辑还是需要在工作中处理网络配置问题这篇内容都能给你一套可以直接上手操作的方法。关键词里提到了LAN口、WAN口、IP地址这三个词就是整篇文章的骨架。我会围绕它们展开把相关的概念、操作、坑点都讲透。2. 把LAN口和WAN口掰开揉碎它们到底在干什么2.1 一个路由器两个世界先建立一个最直观的认知一台典型的家用路由器本质上是在两个网络之间做翻译和转发。WAN口连接的是外部网络也就是运营商那一侧LAN口连接的是你家里的设备也就是你自己的小王国。WAN是Wide Area Network的缩写直译过来是广域网。在路由器上WAN口就是它用来和外部世界通信的出口。运营商拉到你家的那根网线或者光猫出来的网线插的就是WAN口。WAN口从运营商那里获取一个IP地址这个地址通常是公网地址或者是运营商大内网里的地址它是你在整个互联网上的“门牌号”。LAN是Local Area Network的缩写局域网。LAN口就是路由器用来连接你家里设备的接口。你的台式机、笔记本、电视、游戏机、打印机插的都是LAN口。路由器会给每个连接到LAN口的设备分配一个IP地址这些地址通常是私有地址比如192.168.x.x或者10.x.x.x。这些地址只在你的局域网内部有效出了路由器就不认识了。打个比方WAN口就像你家的入户大门门外是整个城市LAN口就像你家里的各个房间门门内是你自己的空间。快递员从外面送包裹走的是入户大门你在家里把包裹从客厅拿到卧室走的是房间门。两个门的功能完全不同但缺一不可。2.2 为什么不能把所有口都做成一样的有人可能会问既然都是网口为什么不能随便插我把外网网线插到LAN口上会怎样答案是大概率上不了网或者网络会变得很奇怪。原因在于路由器内部的逻辑是分开处理的。WAN口收到的数据包路由器知道这是来自外部网络的需要做NAT转换之后再转发给内部设备LAN口收到的数据包路由器知道这是内部设备发出来的需要判断是转发给其他内部设备还是送到WAN口出去。如果你把外网网线插到LAN口路由器会认为这是内部设备发来的数据不会做NAT转换你的设备拿到的可能是运营商分配的地址也可能什么都拿不到。更麻烦的是如果路由器的DHCP服务还在运行它可能会和运营商那边的DHCP服务打架导致整个网络混乱。注意有些路由器支持WAN/LAN自适应插哪个口都能自动识别。但这种自适应不是万能的在双WAN、IPTV等特殊场景下还是需要手动指定。不要假设所有路由器都能自适应。2.3 私有IP和公网IP为什么你的地址是192.168开头这里要引入一个关键概念IP地址的分类。IPv4地址空间里有几段地址被专门保留出来作为私有地址不在公网上路由。这三段私有地址是10.0.0.0/8也就是10.0.0.0到10.255.255.255172.16.0.0/12也就是172.16.0.0到172.31.255.255192.168.0.0/16也就是192.168.0.0到192.168.255.255你家里路由器分配给设备的地址几乎肯定在这三段里面。最常见的是192.168.1.x和192.168.0.x。为什么要有私有地址因为IPv4地址不够用。如果每个设备都需要一个公网地址早就不够分了。私有地址的设计让每个局域网内部可以重复使用同一段地址比如你家可以用192.168.1.x你邻居家也可以用192.168.1.x互不冲突。路由器通过NAT网络地址转换技术把内部私有地址转换成WAN口的公网地址让多个设备共享一个公网出口。这个机制带来的一个直接后果是从外部网络无法直接访问你局域网内部的设备。因为外部看到的是你WAN口的公网地址不知道内部还有192.168.1.100这样的设备。如果你需要从外面访问家里的设备就需要做端口映射或者使用其他穿透方案。2.4 子网掩码和网关IP地址的两个搭档光有一个IP地址还不够设备还需要知道两件事哪些地址是同一个局域网内的以及要访问外部网络时该找谁。子网掩码回答第一个问题。255.255.255.0这个掩码意味着前24位是网络位后8位是主机位。192.168.1.100和192.168.1.200在同一个子网内可以直接通信192.168.1.100和192.168.2.100不在同一个子网需要经过网关转发。网关回答第二个问题。网关通常就是路由器的LAN口地址比如192.168.1.1。当设备发现目标地址不在本地子网时就把数据包发给网关由网关负责转发到外部网络。这三个参数——IP地址、子网掩码、网关——是设备联网的基本配置。缺了任何一个或者配错了网络就会出问题。很多“能ping通IP但打不开网页”的情况就是网关或DNS配置有问题。3. 数据包从你的电脑到互联网中间经历了什么3.1 一次完整的访问过程拆解假设你在浏览器里输入了一个网址按下回车。接下来发生的事情可以拆成几个关键步骤。第一步你的电脑需要知道目标服务器的IP地址。浏览器先查DNS把域名解析成IP地址。DNS服务器地址通常是路由器通过DHCP下发的也可能是你手动配置的。第二步你的电脑判断目标IP地址是否在本地子网。如果不在就把数据包发给网关也就是路由器的LAN口地址。第三步数据包到达路由器的LAN口。路由器查看目标地址发现需要从WAN口出去。这时候NAT发挥作用路由器把数据包的源地址从你的私有地址比如192.168.1.100改成WAN口的公网地址同时记录一个映射关系以便收到回复时能正确转发回你的电脑。第四步数据包从WAN口发出经过运营商的网络最终到达目标服务器。服务器看到的是你WAN口的公网地址回复也是发到这个地址。第五步路由器收到回复根据之前记录的映射关系把目标地址改回你的私有地址从LAN口转发给你的电脑。整个过程在毫秒级完成你完全感知不到。但每一步都依赖正确的IP地址配置和路由表。3.2 DHCP谁给了你IP地址大多数情况下你不需要手动配置IP地址因为路由器会自动分配。这个自动分配的过程就是DHCP动态主机配置协议。DHCP的工作流程可以简化为四个步骤发现、提供、请求、确认。你的电脑开机后发现没有IP地址就广播一个DHCP Discover消息路由器收到后回复一个DHCP Offer里面包含一个可用的IP地址、子网掩码、网关、DNS等信息你的电脑选择一个Offer发送DHCP Request确认路由器回复DHCP ACK正式确认分配。这个过程的好处是即插即用坏处是IP地址可能会变。如果你需要设备每次都用同一个IP地址可以在路由器里设置静态DHCP绑定把设备的MAC地址和某个IP地址绑定起来。这样每次这个设备请求DHCP时路由器都会分配同一个地址。提示静态DHCP绑定比在设备上手动设置静态IP更好因为所有配置集中在路由器上设备换网络时不需要改设置也不会因为忘记改回自动获取而导致在其他网络里上不了网。3.3 NAT让多个设备共享一个公网地址NAT是Network Address Translation的缩写网络地址转换。它的核心功能是在数据包经过路由器时修改源地址或目标地址。最常见的NAT形式是PATPort Address Translation也叫NAT重载。它不仅修改IP地址还修改端口号。这样多个内部设备可以同时使用同一个公网IP地址路由器通过不同的端口号来区分不同的连接。举个例子你的电脑192.168.1.100和手机192.168.1.101同时访问同一个网站。路由器把电脑的连接的源地址改成公网地址加端口50001把手机的连接的源地址改成公网地址加端口50002。网站回复时目标端口分别是50001和50002路由器根据端口号就能知道该转发给谁。这个机制是家庭网络能正常工作的基础。没有NATIPv4地址早就不够用了。3.4 端口映射和DMZ从外部访问内部设备NAT带来的一个副作用是外部无法主动访问内部设备。如果你在家里跑了一个Web服务器想从外面访问就需要在路由器上做端口映射。端口映射的配置逻辑是告诉路由器当收到WAN口某个端口的请求时转发给内部某个IP地址的某个端口。比如把WAN口的8080端口映射到192.168.1.100的80端口。这样外部访问你的公网IP的8080端口时请求就会被转发到内部Web服务器。DMZ是端口映射的一种简化形式它把内部某个设备完全暴露在WAN口上所有未映射的端口都转发给这个设备。DMZ的优点是配置简单缺点是安全性差因为设备完全暴露在外部网络中。除非必要不建议使用DMZ。4. 不同系统下查看和配置IP地址的实操方法4.1 Windows系统从图形界面到命令行Windows下查看IP地址最常用的方式是打开命令提示符输入ipconfig。这个命令会列出所有网络适配器的IP地址、子网掩码、默认网关。ipconfig /all加上/all参数会显示更详细的信息包括MAC地址、DHCP服务器地址、DNS服务器地址、租约时间等。如果你需要排查DHCP相关问题这些信息很有用。在Windows 11中如果遇到“已关闭Windows Defender导致IP地址无法ping通”的情况需要检查防火墙设置。Windows Defender防火墙默认会阻止ICMP回显请求也就是ping。你可以在防火墙的高级设置里启用“文件和打印机共享回显请求 - ICMPv4-In”规则或者临时关闭防火墙测试。配置静态IP地址的路径是设置 - 网络和Internet - 以太网 - IP分配 - 编辑。选择手动打开IPv4填入IP地址、子网掩码、网关、DNS。注意如果你填的IP地址和路由器不在同一个子网或者网关填错了网络就会断。改之前最好先记下原来的自动获取配置方便回滚。4.2 Linux系统命令行才是主场Linux下查看IP地址的命令随着发行版和工具集的不同有所差异。老一些的系统用ifconfig新系统推荐用ip addr。ip addr show这个命令会列出所有网络接口的详细信息。如果你只想看某个接口比如eth0ip addr show eth0在CentOS 10、RedHat 7、Ubuntu等系统上配置静态IP地址方式各有不同。RedHat 7和CentOS 7/8使用nmcli或修改/etc/sysconfig/network-scripts/ifcfg-eth0文件。CentOS 10和较新的Ubuntu使用Netplan或NetworkManager。以Ubuntu的Netplan为例配置文件在/etc/netplan/目录下通常是yaml格式network: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 114.114.114.114改完之后执行sudo netplan apply生效。注意yaml对缩进要求严格缩进错了配置不会生效而且可能不会报错只是静默失败。在麒麟系统上设置IP地址到网卡可以通过图形界面的网络设置也可以修改配置文件。麒麟系统基于Linux配置文件的位置和格式取决于具体版本。如果是基于Debian的版本参考Netplan如果是基于RedHat的版本参考NetworkManager。4.3 macOS系统图形界面和终端并用macOS查看IP地址可以在系统偏好设置的网络中看到也可以用终端命令ifconfig或者更精确地查看某个接口ipconfig getifaddr en0macOS配置静态IP在系统设置 - 网络 - 详细信息 - TCP/IP里。选择手动填入IP地址、子网掩码、路由器。macOS的“路由器”就是网关的意思。一个常见的坑是在macOS上设置打印机后无法通信。这通常是因为打印机和Mac不在同一个子网或者打印机的IP地址变了。macOS添加打印机时如果用的是IP地址添加的打印机IP变了之后就找不到了。解决办法是给打印机设置静态IP或者静态DHCP绑定。4.4 一个网口能配几个IP地址这个问题在关键词里出现了“一个电脑网口可以添加几个ip地址”。答案是理论上可以添加很多个但实际使用中通常不会超过几个。在Linux下你可以给一个网卡添加多个IP地址ip addr add 192.168.1.200/24 dev eth0 ip addr add 10.0.0.100/24 dev eth0在Windows下可以在网络适配器的高级设置里添加多个IP地址。macOS下也可以通过终端命令添加。多IP的典型用途包括一个网口同时连接多个子网、做网络隔离测试、在同一台机器上运行多个需要不同IP的服务。但要注意多个IP地址之间可能会产生路由冲突需要仔细规划路由表。5. 那些年我们踩过的IP地址坑5.1 局域网两个设备一个IP地址会怎样IP地址冲突是局域网里最常见的问题之一。两个设备用了同一个IP地址结果就是其中一个或者两个都上不了网或者网络时断时续。冲突的典型原因是一个设备手动设置了静态IP另一个设备通过DHCP拿到了同一个IP。路由器的DHCP服务器不知道你手动设置了这个地址所以把它分配给了别人。排查方法是在冲突的设备上查看IP地址然后在路由器管理界面查看DHCP客户端列表看看有没有重复。解决方法是要么把手动设置的设备改成自动获取要么在路由器里把这个地址从DHCP池里排除要么设置静态DHCP绑定。注意有些设备比如网络打印机、监控摄像头、激光雷达默认使用固定的IP地址比如192.168.1.100或192.168.0.100。如果你家的路由器也用192.168.1.x网段就很容易冲突。揽沃mid-360s激光雷达修改IP地址时需要先确认它当前的IP和你的电脑在同一个子网然后用厂商提供的工具修改。5.2 能ping通IP但打不开网页这个问题的排查思路很清晰ping通说明网络层是通的打不开网页说明应用层有问题。最常见的原因是DNS配置错误。你可以这样验证ping一个IP地址比如ping 114.114.114.114如果能通说明网络连接没问题。然后ping www.baidu.com如果不通说明DNS解析有问题。检查设备的DNS设置确保填了可用的DNS服务器地址。另一个可能的原因是代理设置。如果系统或浏览器设置了代理而代理服务器不可用就会出现能ping通但打不开网页的情况。检查系统代理设置和浏览器代理设置。还有一种情况是MTU问题。某些网络环境下MTU设置不当会导致大包无法通过表现为能ping通小包但打不开网页。可以尝试把MTU调小比如从1500调到1400。5.3 虚拟机固定IP地址的坑在Hyper-V、VMware、VirtualBox里给虚拟机设置固定IP地址有几个容易踩的坑。第一个坑是虚拟交换机的类型。Hyper-V有外部、内部、专用三种虚拟交换机。外部交换机绑定物理网卡虚拟机可以通过它访问外部网络内部交换机只在主机和虚拟机之间通信专用交换机只在虚拟机之间通信。如果你给虚拟机配了固定IP但上不了网先检查虚拟交换机的类型对不对。第二个坑是虚拟DHCP服务器。Hyper-V的内部和专用交换机自带DHCP服务器会给你分配地址。如果你手动设置了固定IP可能会和虚拟DHCP冲突。需要在虚拟交换机管理器里关掉DHCP或者调整地址池。第三个坑是网段不匹配。虚拟机的IP地址、子网掩码、网关必须和虚拟交换机所在的网段匹配。如果虚拟交换机是192.168.1.0/24虚拟机的IP也必须是192.168.1.x。5.4 搜索局域网中所有IP地址的方法有时候你需要知道局域网里有哪些设备各自的IP是多少。有几种方法可以用。最简单的是登录路由器管理界面查看DHCP客户端列表。大部分路由器都会显示当前连接的设备、IP地址、MAC地址、租约时间。如果路由器不支持或者你想更全面地扫描可以用nmapnmap -sn 192.168.1.0/24这个命令会ping扫描整个子网列出所有响应的设备。-sn表示只做主机发现不做端口扫描。在Windows下可以用arp命令查看ARP缓存arp -a这个命令显示最近通信过的设备的IP和MAC地址。但ARP缓存不一定完整只能看到最近有通信的设备。5.5 用IP地址进服务器怎么进用IP地址访问服务器取决于服务器提供什么服务。如果是Web服务直接在浏览器输入http://服务器IP如果是远程桌面用远程桌面客户端连接服务器IP如果是SSH用ssh user服务器IP。前提是服务器的对应端口是开放的而且你的设备能路由到服务器。如果服务器在局域网内你的设备也在同一个局域网直接访问即可。如果服务器在外部网络你需要知道服务器的公网IP而且服务器的防火墙要允许你的访问。如果服务器在NAT后面你需要做端口映射才能从外部访问。或者使用其他方案比如反向代理、内网穿透工具。6. 特殊场景下的IP配置实战6.1 打印机IP地址的查找和固定打印机IP地址的查找方法取决于打印机型号。大多数网络打印机可以在打印机面板上查看IP地址通常在“网络设置”或“TCP/IP设置”里。也可以打印一张配置页上面会列出所有网络信息。如果打印机已经连接到局域网你可以在路由器的DHCP客户端列表里找到它。或者用nmap扫描局域网看哪些IP地址有打印机常用的端口开放比如9100端口。给打印机固定IP的方法有两种一是在打印机面板上手动设置静态IP二是在路由器里设置静态DHCP绑定。推荐第二种因为配置集中在路由器上不容易出错。提示如果你在Windows上添加打印机时用的是IP地址打印机IP变了之后就找不到打印机了。所以要么固定打印机IP要么用打印机的主机名添加。但主机名解析依赖DNS如果DNS不稳定还是IP更可靠。权衡之下静态DHCP绑定是最稳妥的方案。6.2 激光雷达等工业设备的IP配置揽沃mid-360s这类激光雷达通常有默认IP地址比如192.168.1.100。要修改它的IP地址一般需要用厂商提供的配置工具通过网线连接电脑和雷达然后在工具里修改。关键点是你的电脑必须先和雷达在同一个子网。如果雷达的默认IP是192.168.1.100你的电脑需要设置成192.168.1.x比如192.168.1.50子网掩码255.255.255.0。然后用厂商工具搜索设备找到后修改IP。修改完成后记得把电脑的IP改回自动获取或者原来的设置否则你可能上不了网。6.3 开发环境中的IP地址问题开发过程中经常遇到IP地址相关的问题。比如Nuxt dev启动后默认只监听localhost外部设备访问不了。需要在启动命令里指定hostnuxi dev --host 0.0.0.0这样Nuxt会监听所有网络接口局域网内的其他设备就可以通过你的电脑IP访问了。再比如listener.prefixes.add指定IP地址时如果指定的地址不是本机拥有的地址会报错。需要确保指定的IP地址在本机的网络接口上。Java中处理IP地址转换时有时候需要把IP地址转成整数。IPv4地址是32位的可以转成一个long或者int。但要注意Java的int是有符号的所以通常用long来存储long ipToLong(String ip) { String[] parts ip.split(\\.); long result 0; for (int i 0; i 4; i) { result | Long.parseLong(parts[i]) (24 - 8 * i); } return result; }这个转换在网络编程、IP地址范围判断等场景下很有用。6.4 移动热点连不上正在获取IP地址“正在获取IP地址”这个提示意味着设备发送了DHCP请求但没有收到响应。可能的原因包括热点设备的DHCP服务没开启、DHCP地址池耗尽、设备与热点之间的兼容性问题。排查步骤先确认热点设备的DHCP功能是开启的然后检查地址池范围如果连接设备太多可能耗尽尝试重启热点设备和连接设备如果还不行尝试在连接设备上手动设置静态IP看能否绕过DHCP问题。神州网信等定制系统上移动热点连不上可能是系统服务或驱动的问题。检查网络适配器驱动是否正常系统服务里的“DHCP Client”服务是否运行。7. 把IP地址相关的知识串起来7.1 一张表理清关键概念概念作用典型值常见问题LAN口连接内部设备192.168.1.1插错口导致无法上网WAN口连接外部网络运营商分配未获取到地址私有IP局域网内部使用192.168.x.x冲突、跨网段不通公网IP互联网上标识运营商分配动态变化、NAT限制子网掩码划分网络位和主机位255.255.255.0配错导致跨网段不通网关转发外部流量路由器LAN口地址配错导致无法上网DNS域名解析8.8.8.8等配错导致打不开网页DHCP自动分配IP路由器内置地址池耗尽、冲突NAT地址转换路由器内置外部无法直接访问内部7.2 排查网络问题的通用思路遇到网络问题可以按照从底层到高层的顺序排查。先看物理层网线插好了吗接口灯亮吗WAN口和LAN口插对了吗再看网络层IP地址、子网掩码、网关配对了吗能ping通网关吗能ping通外部IP吗然后看应用层DNS配对了吗能解析域名吗端口开放吗防火墙允许吗这个顺序可以帮你快速定位问题在哪一层避免盲目重启和乱改配置。7.3 几个实用的命令行工具ping测试网络连通性最基础的工具。tracerouteWindows下是tracert追踪数据包经过的路由可以看到在哪一跳断了。nslookup或dig测试DNS解析确认域名能否正确解析成IP。netstat或ss查看当前网络连接和监听端口。arp -a查看ARP缓存了解局域网内有哪些设备。nmap网络扫描发现局域网内的设备和开放端口。这些工具在不同系统上的用法略有差异但核心功能一致。熟练掌握这几个工具大部分网络问题都能自己排查。7.4 关于IP地址的一点个人体会我刚开始接触网络的时候觉得IP地址就是一串数字没什么好学的。后来踩的坑多了才发现这串数字背后是一整套设计精巧的机制。私有地址和公网地址的划分、NAT的转换逻辑、DHCP的自动分配、子网掩码的位运算每一个设计都是为了解决特定问题而存在的。理解这些机制之后再看网络问题就不是“玄学”了。你知道数据包从哪来、到哪去、在哪个环节可能出问题排查起来就有方向。这比记住一堆命令有用得多。另外IP地址相关的知识是很多上层技术的基础。容器网络、Kubernetes的Service和Pod网络、云平台的VPC和子网划分底层都是IP地址和路由的逻辑。把这部分搞扎实后面学什么都快。最后分享一个小技巧如果你经常需要切换网络配置可以写几个脚本一键切换静态IP和自动获取。Windows下可以用netsh命令Linux下可以用nmcli或netplanmacOS下可以用networksetup。这样比每次手动改设置快得多也不容易出错。
返回列表