Windows中跨网段IP转发设置
最近在做Openwifi的组网实验,连接openwifi的开发板用的电脑有两网卡ip分别在192.168.30,和192.168.10网段,而openwifi的以太网ip为192.168.10.122,但是wifi所分配的网段为192.168.13。
目前电脑可以连接到公网,也可以通过192.168.10.122连接openwifi开发板,但是开发板无法和连接到openwifi的手机都无法访问公网,电脑也ping不通手机。
我们知道在Linux中使用如下命令可以实现ip转发,
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o NICY -j MASQUERADE
sudo ip route add 192.168.13.0/24 via 192.168.10.122 dev ethX
然而window上实现的教程较少。实现方法如下:
- 开启IP转发
- window默认关闭ip转发,需要先启用:
- 以管理员权限打开PowerShell,输入
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v IPEnableRouter /t REG_DWORD /d 1 /f - 然后重启。
- 使用 Internet 连接共享 (ICS):
- 打开“网络和共享中心” > “更改适配器设置”。
- 右键 上网的网卡> “属性” > “共享”选项卡。
- 勾选“允许其他网络用户通过此计算机的 Internet 连接来连接”。
- 选择 连接openwifi的网卡。
- ICS 启用后,接口的 IP 可能变为 192.168.137.1,需调整ip地址回去。
- 以管理员权限打开PowerShell,输入
Get-NetAdapter
PS C:\Users\******> Get-NetAdapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
VMware Network Adapte...8 VMware Virtual Ethernet Adapter for ... 35 Up 00-00-00-00-00-00 100 Mbps
蓝牙网络连接 4 Bluetooth Device (Personal Area Ne... 33 Disconnected 00-00-00-00-00-00 3 Mbps
以太网 2 Intel(R) Ethernet Connection (2) I21... 15 Up 00-00-00-00-00-00 1 Gbps
以太网 Intel(R) I210 Gigabit Network Connec... 8 Up 00-00-00-00-00-00 1 Gbps
VMware Network Adapte...1 VMware Virtual Ethernet Adapter for ... 7 Up 00-00-00-00-00-00 100 Mbps
里面的ifIndex就是网络设备对应的接口编号,以太网 2是连接到公网,以太网是连接到openwifi。
3.设置转发Set-NetIPInterface -ifAlias <网卡名> -Forwarding Enabled
PS C:\Users\******> Set-NetIPInterface -ifAlias '以太网 2' -Forwarding Enabled
4.查看转发状态Get-NetIPInterface -Forwarding Enabled
PS C:\Users\******> Get-NetIPInterface -Forwarding Enabled
ifIndex InterfaceAlias AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp ConnectionState PolicyStore
------- -------------- ------------- ------------ --------------- ---- --------------- -----------
15 以太网 2 IPv6 1500 25 Enabled Connected ActiveStore
15 以太网 2 IPv4 1500 25 Disabled Connected ActiveStore
5.增加路由
Windows的 route add 命令格式:
route add <目标网络> mask <子网掩码> <下一跳网关> if <接口编号> -p
-p可选,表示永久增加。
if是指定的网卡编号,不指定windows也会自动选取,但是手工选取更精确。
PS C:\Users\******> route add 192.168.10.0 mask 255.255.255.0 192.168.10.1 -p
操作完成!
PS C:\Users\******> route add 192.168.13.0 mask 255.255.255.0 192.168.10.122 if 8
操作完成!
PS C:\Users\******> route add 0.0.0.0 mask 0.0.0.0 192.168.30.1 -p
操作完成!
增加路由让前往192.168.10.x的下一跳为192.168.10.1;让前往192.168.13.x的下一跳为192.168.10.122;让任何传进来的下一跳为192.168.30.1。
6.测试
PS C:\Users\******> ping 192.168.13.2
正在 Ping 192.168.13.2 具有 32 字节的数据:
请求超时。
来自 192.168.13.2 的回复: 字节=32 时间=7ms TTL=63
来自 192.168.13.2 的回复: 字节=32 时间=5ms TTL=63
来自 192.168.13.2 的回复: 字节=32 时间=7ms TTL=63
192.168.13.2 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 5ms,最长 = 7ms,平均 = 6ms
至此,电脑和手机之间可以通过openwifi进行通信,手机也可以上网。
第一次写组网的教程,可能有疏漏,如有,欢迎指正。

浙公网安备 33010602011771号