Skip to content

使用 PowerShell 来配置 NAT,将设备A的以太网(局域网)**连接共享到**无线网络(WLAN),从而实现局域网资源的共享。

在 Windows 上,PowerShell 提供了一些命令可以直接设置 NAT,适合您在不更改 IP 的情况下实现 NAT 共享。

PowerShell 配置 NAT 的步骤

1. 启用 IP 转发

首先,确保 Windows 启用了 IP 转发,以便设备A能够将数据包从局域网转发到 WLAN。

  1. 打开 PowerShell(以管理员身份运行)。

  2. 运行以下命令以启用 IP 转发:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -Name "IPEnableRouter" -Value 1
  3. 重启计算机或执行以下命令以生效:

    Restart-Service -Name "RemoteAccess"

2. 使用 PowerShell 创建 NAT 网络

在 Windows 10 和 Windows Server 2016+ 系统中,可以通过 PowerShell 创建 NAT 网络,不需要使用 ICS(Internet Connection Sharing)。

  1. 查看网络适配器:首先,查看以太网和无线网卡的名称,以便在配置时指定正确的接口。

    Get-NetAdapter

    记录下用于局域网的以太网接口和连接互联网的无线网卡的接口名称。

  2. 创建 NAT 网络

    • 假设您的局域网的 IP 地址范围为 192.168.1.0/24,可以使用以下命令创建 NAT。
    • <InternalNetworkInterfaceName> 替换为以太网的接口名称。
    • <YourNatSubnet> 替换为您的局域网子网(如 192.168.1.0/24)。
    New-NetNat -Name "EthernetToWiFiNAT" -InternalIPInterfaceAddressPrefix "<YourNatSubnet>"
  3. 将局域网流量通过 WLAN 转发: 确保设备A的无线网卡可以访问互联网,此时 PowerShell 会自动完成以太网到 WLAN 的 NAT 转发,设备B 应该可以访问局域网资源了。

3. 在设备B上配置静态路由

为了确保设备B的流量通过设备A的无线网卡 IP 转发到局域网,需要在设备B上配置静态路由。

  1. 获取设备A的无线网卡 IP 地址

    • 在设备A上,查看其在无线网络中的 IP 地址(如 192.168.0.10)。
  2. 在设备B上添加静态路由

    • 在设备B上,以管理员身份打开命令提示符。

    • 使用以下命令添加静态路由,将局域网的 IP 段通过设备A的无线网卡 IP 进行路由:

      route add 192.168.1.0 mask 255.255.255.0 192.168.0.10 metric 1
    • 192.168.1.0 和子网掩码 255.255.255.0 为局域网的网段,替换为实际的局域网 IP。

    • 192.168.0.10 替换为设备A无线网卡的实际 IP。

验证配置

  1. 测试局域网连接:在设备B上,尝试 ping 局域网中的其他设备 IP,确认是否能够访问。
  2. 测试互联网连接:确保设备B的其他流量(互联网流量)能够正常通过无线网络连接互联网。

备注

  • IP 地址冲突:确保局域网和 WLAN 网络的 IP 地址段不同,以避免冲突。

  • 保持 IP 转发启用:IP 转发需要在设备A上保持启用,以便 NAT 能正常工作。

  • 持久化静态路由:如果设备B需要永久保持静态路由,可以添加 -p 参数持久化静态路由:

    route -p add 192.168.1.0 mask 255.255.255.0 192.168.0.10 metric 1

这样,通过 PowerShell 的 NAT 配置和静态路由设置,您可以实现以太网对无线网的共享。

要撤销上述 PowerShell 和静态路由的配置,可以按照以下步骤进行:

1. 关闭 IP 转发

将 IP 转发设置还原,关闭设备A上的 IP 转发功能。

  1. 打开 PowerShell(以管理员身份运行)。

  2. 运行以下命令,将 IP 转发设置为禁用:

    powershell
    
    
    Copy code
    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -Name "IPEnableRouter" -Value 0
  3. 重启计算机以确保更改生效。

2. 删除 NAT 网络

如果您创建了 NAT 网络,需要使用以下命令删除:

  1. 查看现有 NAT 配置(可选):

    powershell
    
    
    Copy code
    Get-NetNat
  2. 删除指定的 NAT 网络,将

    "EthernetToWiFiNAT"

    替换为您配置的 NAT 名称:

    powershell
    
    
    Copy code
    Remove-NetNat -Name "EthernetToWiFiNAT"

3. 删除设备B上的静态路由

在设备B上,如果您添加了静态路由,可以按以下步骤删除:

  1. 打开命令提示符(以管理员身份运行)。

  2. 删除指定的静态路由,将

    192.168.1.0

    和子网掩码替换为您实际配置的网段信息:

    cmd
    
    
    Copy code
    route delete 192.168.1.0

总结

  • 关闭 IP 转发:将 IPEnableRouter 设置为 0,并重启。
  • 删除 NAT 网络:使用 Remove-NetNat 命令删除 NAT 配置。
  • 删除静态路由:在设备B上使用 route delete 命令删除指定路由。

查看端口转发状态

powershell
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter

允许端口转发

cmd
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter /t REG_DWORD /d 1 /f

新增NAT

允许192.168.1.0/24网段设备通过当前设备转发网络请求

powershell
New-NetNat -Name "Redmi_NAT" -InternalIPInterfaceAddressPrefix "192.168.1.0/24"

查看NAT

powershell
Get-NetNat

删除NAT

powershell
Remove-NetNat -Name "Redmi_NAT"

一个网卡不能同时作为NAT的内侧和外侧