ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

别再依赖自动获取IPv4:手动配置静态IP完整指南

别再依赖自动获取IPv4:手动配置静态IP完整指南 1. 为什么我要劝你别再依赖“自动获取IPv4地址”1.1 自动获取地址的坑在哪里很多人打开电脑的IPv4设置默认就是“自动获取IP地址”。这是DHCP协议在干活你插上网线或者连上Wi-Fi路由器自动从地址池里挑一个空闲IP分给你顺便把子网掩码、网关、DNS一起塞过来。家用场景下这个机制确实方便插上就能用不需要动脑筋。但是只要你稍微玩点稍微进阶的网络东西这套“自动获取”就会开始恶心人。最常见的是IP漂移今天路由器分给你192.168.1.103明天重启路由变成192.168.1.107。你以为自己搭的FTP服务、打印机共享、远程桌面不会受影响结果第二天连不上一看IP变了。再一种情况是DHCP地址池和你的静态设备冲突导致新设备拿不到地址。还有一种是系统突然掉到169.254.x.x这是Windows在找不到DHCP服务器时给自己临时分配的地址看起来像是能自动配置实际上网全断。取消“自动获取IPv4地址”本质就是把IP分配权从路由器手里拿回来由你指定网卡用哪个固定地址。这个操作配合子网掩码、网关、DNS的填写能让你的设备在网络里长期稳定地待在一个固定位置不会被“踢来踢去”。1.2 哪些场景必须取消“自动获取”不是所有电脑都需要改成静态IP但下面这些场景不改真的不行自建服务器或端口映射你的路由器做了端口映射把外网端口转发到内网某个IP。如果那台电脑的IP是自动获取的一旦IP漂移映射就失效服务直接不可达。必须给服务器指定一个固定IP比如192.168.1.100。局域网内设备互访频繁比如你有一台NAS、一台打印机、一台监控录像机经常用IP去访问。写成静态IP后访问路径永远是固定的不用每次去翻路由器后台看设备地址。双栈网络调试现在很多宽带和云服务器同时有IPv4和IPv6。你测试双栈域名时如果IPv4地址是DHCP随机分配的域名解析记录和实际IP对不上连接测试必然失败。虚拟机网络配置VMware、VirtualBox里创建的Linux虚拟机网卡经常出现“ens33没有IPv4地址”的问题。这种大概率是DHCP客户端没跑起来或者虚拟网卡没有从DHCP服务器拿到地址。取消自动获取手动填一个虚拟网段下的静态IPv4马上就能通。1.3 动手之前必须懂的三个数字组合手动配置IPv4不是随便填个IP就行你得对“IP / 子网掩码 / 网关”有一点点概念。拿最常见的家庭网络举例子IP地址你要给设备分配的固定地址必须在路由器同一个网段内。路由器LAN口是192.168.1.1子网掩码255.255.255.0那么可用地址范围一般是192.168.1.2到192.168.1.254。当然需要避开路由器DHCP地址池否则容易出现地址冲突。子网掩码决定这个网络的大小。255.255.255.0代表最后8位是主机位共254个可用地址。如果你搞不清就照抄路由器LAN口子网掩码绝大多数家用网络都是255.255.255.0。默认网关数据要出局域网必须经过网关。家用网络默认填路由器的LAN口地址比如192.168.1.1。DNS服务器如果不想用路由器转发DNS可以填公共DNS比如阿里云DNS 223.5.5.5、腾讯DNS 119.29.29.29或通用的114.114.114.114。家庭宽带给的DNS有时候解析慢换公共DNS经常能解决“能上QQ打不开网页”的怪问题。很多人配置失败就是只填了IP地址子网掩码和网关没填对。Windows其实有提示在你点确定的时候会弹一个警告“此IP地址和网络上的其他系统冲突”但大多数人看都不看就点了。顺便说一句IP地址不要乱填成192.168.10.1这种不在同网段的地址不同网段之间三层不通数据包过不了网关网卡显示已连接实际什么都访问不了。2. 各系统下取消自动获取IPv4的完整操作2.1 Windows 11 / 10 手动指定静态IPv4地址Windows系统取消自动获取IPv4路径非常固定但不同版本入口略有差异。这里分享一套通用且不会迷路的做法桌面右下角网络图标右键进入“网络和Internet设置”点击“高级网络设置”再点“更多网络适配器选项”这时候会弹出传统的“网络连接”窗口。这一步在Windows 11和Windows 10里都能到。找到正在用的网卡注意区分以太网和WLAN。有线改IPv4就选“以太网”无线就选“WLAN”。双击打开状态再点左下角“属性”在弹出的列表里找到“Internet协议版本4 (TCP/IPv4)”双击或者点属性。关键步骤在这里窗口中默认选中的是“自动获得IP地址”你要把开关切到“使用下面的IP地址”。然后填三个值IP地址建议选一个不容易被路由器DHCP池分出去的高位段地址比如192.168.1.100或者192.168.1.200。子网掩码255.255.255.0。默认网关192.168.1.1按自家路由器实际地址填。紧接着把下面“使用下面的DNS服务器地址”也切换过去首选DNS和备用DNS填上比如223.5.5.5和119.29.29.29。全部填完后点确定系统会自动尝试“验证网络连接设置”如果发现IP冲突会弹提示这时候就得换一个IP再试。这里有个我踩过很多次的坑Windows对静态IP的校验很慢点确定后可能卡几十秒。别急着强制关机等它跑完验证。如果提示“操作失败”九成是IP被别的设备占了或者网关填错换个IP再试。2.2 Linux / VMware虚拟机里取消DHCP手动配置IPv4命令行环境下修改Linux网卡IP不同发行版差异比较大。我以最常见的Ubuntu Server和CentOS系为例同时照顾到VMware里ens33没有IPv4的情况。Ubuntu 18.04之后用的是Netplan方案配置文件在/etc/netplan/下一般叫00-installer-config.yaml。打开文件后你会看到类似这样的内容network: version: 2 ethernets: ens33: dhcp4: true把dhcp4: true改成dhcp4: false然后手动指定地址最终这样写network: version: 2 ethernets: ens33: dhcp4: no addresses: - 192.168.1.110/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 223.5.5.5 - 119.29.29.29保存后执行sudo netplan apply然后ip addr show ens33确认地址有没有生效。VMware环境里如果发现ens33压根没有IPv4地址先检查是不是网络适配器没选对模式虚拟机设置里网络连接要选“桥接模式”或者“NAT模式”如果选了“仅主机模式”默认网段和宿主机不在一个段手动配置时要填对应网段的地址。CentOS / Rocky Linux 9等系统一般用/etc/NetworkManager/system-connections下的配置文件或者/etc/sysconfig/network-scripts/ifcfg-ens33。传统ifcfg写法核心就几行TYPEEthernet BOOTPROTOnone NAMEens33 DEVICEens33 ONBOOTyes IPADDR192.168.1.110 PREFIX24 GATEWAY192.168.1.1 DNS1223.5.5.5 DNS2119.29.29.29注意BOOTPROTOnone代表取消自动获取改成static效果一样。重启网络服务或者nmcli connection reload nmcli connection up ens33。很多新手改了配置文件发现不生效多半是NetworkManager在管理网络你去改了ifcfg文件但没有刷新NetworkManager的缓存所以必须用nmcli重新加载。2.3 路由器或光猫后台的“静态IP绑定”思路严格来说路由器上还有一种更温和的“取消自动获取”方式在DHCP服务器里为指定设备绑定固定IP也叫DHCP静态租约Static DHCP。进入路由器后台找到“DHCP服务器”或“局域网设置”里面一般有一项“静态地址分配”需要填MAC地址和想要固定下来的IP地址。你把设备的MAC地址和IP绑定好即使设备继续使用“自动获取IPv4”路由器每次分配时也会优先给它绑定的IP。这个方法我建议大家作为Plan B。它不需要动每台设备的设置适合设备数量多、不方便逐个改配置的场景。缺点是依赖路由器进程万一路由器恢复出厂设置或换设备绑定信息全没。而直接改系统静态IP是最稳妥、最彻底的不依赖任何外部服务拔了路由器网线直连交换机也能保持地址不丢。2.4 验证配置是否生效的常用命令手动配置完成后不要急着关窗口先验证一遍。Windows下用ipconfig /all查看网卡信息确认IPv4地址、子网掩码、默认网关、DNS都是自己填的内容。接着ping 192.168.1.1测试网关通不通再ping 223.5.5.5测试外网通不通。注意Windows默认开启了ICMP回显限制某些服务器不回显不代表不通所以建议再执行nslookup www.aliyun.com能返回IP地址说明DNS也正常。Linux下用ip addr和ip route show查看地址和路由ping -c 4 223.5.5.5测试外网。如果ping网关通但不通外网先检查route里有没有default路由没有的话按前面Netplan的routes配置补上。3. 取消自动获取后我遇到过的五大诡异故障3.1 非重叠IPv4地址池冲突一改静态IP整个网段就断“could not find an available, non-overlapping ipv4 address pool among the defined...”这类错误我最早在VMware的NAT设置里看到过。这个英文提示翻译过来是在已定义的DHCP范围内找不到一个可用的、不重叠的IPv4地址池。为什么会遇到因为你手动指定的静态IP跟虚拟交换机DHCP分配池重叠了。比如VMware默认NAT网段是192.168.137.0/24DHCP地址池可能是192.168.137.128到192.168.137.254你手动给另一台虚拟机指定192.168.137.130就会和DHCP池重叠。虚拟网络编辑器里会直接拒绝保存配置。解决办法是在VMware的“虚拟网络编辑器”里调整DHCP地址池把起始地址改成192.168.137.2结束地址改成192.168.137.100把高位地址留给你手动配置的静态IP。凡是出现“非重叠地址池”报错核心思路就一句话让DHCP自动分配的池子和手动保留的静态地址段彻底分开谁也别碰谁的。3.2 Windows自动配置IPv4地址169.254.x.x怎么去掉169.254.x.x是APIPA自动私有地址Windows在没有找到DHCP服务器时给自己临时分配的。现象是网卡显示“已连接”但IP是169开头的既上不了网也访问不了局域网内其他机器。我排查过一台老笔记本静态IP配置后还是拿到169.254排查顺序是先确认网卡驱动有没有异常再看DHCP服务是否被禁用最后检查防火墙是不是拦截了DHCP请求。很多时候是网卡上同时启用了“Internet协议版本4”的一项傻设定在高级TCP/IP设置里“IP设置”选项卡中的“自动跃点”后面有个“自动IP”选项勾选了“自动使用这个IP”会导致Windows在DHCP失败时自动启用169.254。解决方法是打开网卡IPv4的高级设置在“IP设置”选项卡里切换到“手动配置”不要选自动。同时确认服务列表里DHCP Client服务是启动状态这个服务不是指被分配地址而是Windows获取地址必需的服务把它设为自动启动然后ipconfig /release和ipconfig /renew。还有一个冷门原因网卡休眠唤醒后DHCP重新协商不及时。这时候把网卡电源管理里的“允许计算机关闭此设备以节约电源”取消勾选能降低出现169.254的概率。3.3 IPv4/IPv6双栈域名连接测试失败排查现在很多站点同时解析出IPv4和IPv6地址测试工具显示“ipv4 域名连接测试 失败 (0.377s) ipv6 域名连接测试 失败 (2.095s)”。字面意思是这台主机既连不上目标站点的IPv4地址也连不上IPv6地址双栈链路全挂。当IPv4和IPv6同时失败时先别急着怀疑自己的静态IP配置错了。用nslookup确认域名解析回来的地址长什么样再用tracert或mtr看走到哪一跳断的。常见的原因有宽带运营商只分配了IPv4没有IPv6路由而测试工具优先尝试IPv6结果IPv6链路不通显示IPv6失败IPv4发起的连接被目标服务器防火墙拦了只放行特定IP你恰好是动态IP不在白名单里。如果你手动配置了静态IPv4之后IPv4的延迟从0.377秒变成完全失败大概率是网关或者DNS填错了。用一个最简单的验证把IPv4暂时恢复成自动获取如果通说明你手动填的网关或DNS有问题再把IPv6也恢复自动获取测试工具全绿说明问题出在某个地址族的静态配置上。双栈环境下手动配地址一定要谨慎IPv6的地址太长很容易漏一位这就是为什么很多网络工程师在双栈下只用DHCPv6或者SLAAC不给机器做IPv6静态地址。3.4 开机提示 PXE over IPv4 boot failed 是什么情况主板开机时出现类似“Setup Notice EFI PXE for IPv4 (MAC地址) Boot Failed Would You Like To Retry?”的提示很多小白以为是自己取消自动获取IPv4地址弄坏了网卡。其实完全不是一回事。这个提示是网卡固件尝试通过PXE协议从网络启动但没有找到网络启动服务器DHCPTFTP于是报错。它跟操作系统里的IPv4配置毫无关系。出现这个情况通常是BIOS/UEFI的启动顺序里“网络引导/LAN Boot”排在了硬盘之前或者硬盘引导项出问题系统没法正常启动主板就轮询到网卡去了。处理办法重启进入BIOS在Boot或Startup菜单里把PXE启动/LAN Boot关闭或者把硬盘设置为第一启动项。同时在引导设置里关闭“Boot to Network”类选项。这个和“取消自动获取IPv4”不能说毫无关系最多是网卡名称里带着IPv4字样容易让人误会实际问题在启动顺序。4. 云服务器与生产环境里的手动IPv4配置禁忌4.1 阿里云等服务器上修改IPv4的注意点热词里出现“ipv4访问ipv6 通过阿里云 esa”我判断你想问的是阿里云环境下双栈访问和IPv4配置的问题。这里我不讨论任何代理类实现只讲云服务器上手动配置IPv4的安全操作。阿里云ECS默认使用的是VPC私有网络网卡通过DHCP自动获取一个私网IPv4地址比如172.16.0.x。在控制台看到的主私网IP是系统分配后固定下来的跟DHCP不同不会飘。所以云服务器上基本不需要在系统内部取消“自动获取IPv4地址”反而千万不要随意在网卡里改成静态IP。很多运维翻车就翻在这里ECS系统内网卡原本是DHCP获取到172.16.0.12用户手动改成172.16.0.13保存并重启网络后服务器直接失联。原因在于云平台的DHCP是绑定MAC地址分发IP的你手动指定的172.16.0.13可能不在该虚机的保留IP范围内或者已被占用控制台的IP地址和系统内IP对不上安全策略就失效了。云服务器上正确做法是确认私网IP是否需要更换如果需要就去VPC控制台修改主私网IP而不是进系统改静态地址。若确实要在系统内部让IP固定就使用DHCP静态租约功能或者调大DHCP的租期同时关闭NetworkManager的IPv4自动配置但一定要确保系统拿到的和平台记录一致。4.2 恢复自动获取IPv4地址的最佳做法取消自动获取之后如果哪一天想让网卡恢复原来的DHCP模式不需要重装系统。Windows里重新打开IPv4属性选回“自动获得IP地址”“自动获得DNS服务器地址”确定后执行ipconfig /release ipconfig /renewLinux下把Netplan的配置改回dhcp4: true然后sudo netplan apply。CentOS则把BOOTPROTOnone改成BOOTPROTOdhcp删掉IPADDR、GATEWAY静态项然后重启网络服务。恢复后一定要确认两件事网卡拿到的IP是否和路由器后台地址一致部分设备在恢复DHCP后之前的静态IP还会残留在ARP缓存里其他设备访问旧IP可能还能通但那只是缓存过一段时间就没了。5. 给新手的最后一个配置建议手动配置IPv4这事操作本身五分钟就能学会真正考验人的是对IP地址、子网掩码、网关这几个基础概念的理解。我见过很多人把路由器网段设成192.168.1.1却给电脑填了个192.168.0.100结果排查了两小时都不知道问题在哪。记住一条铁律在同一台路由器下所有设备的IPv4地址前三位数字必须完全一致最后一位不能重复。如果你实在不知道该怎么填打开一台正常上网的电脑执行ipconfig把上面显示的IPv4地址、子网掩码、默认网关记下来然后把IPv4地址的最后一位改成一个不冲突的数字比如网关是192.168.1.1你就填192.168.1.88。这样基本不会错。还有个小技巧取消自动获取后建议在路由器里把这个设备的MAC地址也绑定到同一个IP双保险。虽然系统已经是静态IP了但路由器端的绑定可以防止未来你把系统改回DHCP模式时拿到不同IP也方便网络里其他设备通过ARP表确认这台机器的位置。我自己的NAS、打印机和支持远程唤醒的主机都是这么配的几年下来IP从来没变过远程访问的端口映射也一直稳定。最后再多说一句手动配置IPv4不是解决所有网络问题的万能药。如果改完静态IP后依然无法上网先把网卡恢复成自动获取多半是网关或DNS填错了。网络排障讲顺序别一上来就怀疑配置先看物理链路再查IP最后分析路由这样能少走很多弯路。希望这篇文章能帮到那些正在受“IP老变”“自动获取失败”“169.254地址乱蹦”困扰的朋友。改完静态地址再也不用为找不到设备而折腾了。
返回列表