内网地址转换共享上网:手把手配好路由器和Windows自带的ICS

家里有几台老设备,比如打印机、NAS或者树莓派,只接了网线没连Wi-Fi,但主路由又不支持多LAN口或DHCP分配,这时候想让它们上网,就得靠内网地址转换+共享上网。别被术语吓住,其实就是让一台已联网的电脑当‘中转站’,把它的网络‘分’给其他设备用。

什么情况下需要内网地址转换共享上网?

常见场景:公司测试环境里一台Win10电脑连着外网,旁边一台Linux虚拟机或嵌入式开发板只有网线直连这台电脑,没独立公网IP;或者家里旧笔记本装了OpenWrt做旁路由,但主路由不开放高级设置,只能靠主机做NAT转发。

Windows系统最简单的方案:启用ICS(Internet连接共享)

不用装第三方软件,Win10/Win11自带ICS就能搞定。前提是你的电脑至少有两个网卡——比如一个Wi-Fi连外网,一个千兆网口接内网设备。

操作路径:
【设置】→【网络和Internet】→【状态】→右侧点【更改适配器选项】→右键你正在上网的那个连接(比如‘WLAN’)→【属性】→【共享】选项卡→勾选‘允许其他网络用户通过此计算机的Internet连接来连接’→在下拉菜单里选中那个接内网设备的网卡(比如‘以太网’)→确定。

这时系统会自动把‘以太网’接口的IP设为 192.168.137.1,子网掩码 255.255.255.0,并开启DHCP服务,给插在它上面的设备分配 192.168.137.2~192.168.137.254 的地址。

手动配置更灵活:用netsh命令做静态NAT转发

如果ICS自动分配的网段冲突(比如你内网本来就是192.168.137.x),或者想指定某台设备固定走某端口,可以用命令行手动开NAT:

netsh interface ipv4 set subinterface "以太网" mtu=1500 store=persistent
netsh interface ipv4 set address "以太网" static 192.168.50.1 255.255.255.0
netsh interface ipv4 set interface "以太网" forwarding=enabled
netsh interface ipv4 set interface "WLAN" forwarding=enabled
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=192.168.50.1 connectport=80 connectaddress=192.168.50.100 protocol=tcp

上面最后一行意思是:把发到本机 192.168.50.1:8080 的请求,原样转给内网另一台机器 192.168.50.100:80,适合调试Web服务或远程桌面中转。

路由器上做SNAT/DNAT也行,但得看型号

如果你用的是华硕、OpenWrt或软路由,进后台找‘防火墙’→‘NAT转发’或‘端口映射’,添加一条规则:

源地址:192.168.50.0/24(你的内网段)
目标地址:任意(或填0.0.0.0)
动作:SNAT → 转换为WAN口实际出口IP
保存后,所有从这个网段发出的包,都会被自动改写源地址,实现共享上网。

注意:部分家用路由器默认关闭SNAT,只开放DNAT(即外网访问内网),这时要进高级设置打开‘源NAT’或‘Masquerade’选项。

排错小贴士

• 插上网线后,内网设备获取不到IP?先确认主机上那个‘以太网’适配器是否已获得 192.168.137.1 或你设定的静态IP;
• 能ping通主机但打不开网页?检查主机防火墙是否放行ICMP和TCP 80/443;
• Linux设备连上来后无法解析域名?在它的 /etc/resolv.conf 里加一行:nameserver 192.168.137.1(指向ICS主机)。