1 分钟阅读 次阅读

概要:本文介绍了在主机通过两个网口连接外网与调试主板的场景中,如何进行网络配置以实现调试主板共享主机外网,解决因 MAC 冲突导致的 SSH 和 FTP 连接不稳定问题。

1. 问题背景

  • 可能是 MAC 冲突的问题,通过公司路由器的局域网进行的 SSH 连接和 FTP 总是断开。
  • 如果主机上有两个网口(可以通过 USB 转 ETH 多转出一个网口),可以使用多出来的网口通过网线直连要调试的主板。

2. 拓扑结构

具体拓扑结构如下:

外网 → 主机 PC 网口1 → 主机 → 主机 PC 网口2 → 调试主板

调试主板共享主机 PC 网口1 的外网。


3. 配置方式

图示如下:

配置截图1
配置截图2

4. 原理

Windows 的 ​​Internet 连接共享 (ICS)​​ 是一个内置的 NAT(网络地址转换)解决方案,其核心原理是 ​​让一台已连接到互联网的 Windows PC 充当简易路由器/网关​​,为通过另一个物理或虚拟网卡连接的设备(如 RK3568)提供共享上网服务。

4.1 ICS启动时系统的操作

| 步骤 | 操作 | 技术原理 | |——|———————————————————————-|————————————————————————–| | 1 | 修改网卡B的IP地址 | | | | - 自动设置网卡B的 IPv4地址为 192.168.137.1 | 这是一个硬编码的私有地址 (RFC 1918),作为该局域网的网关地址 | | | - 子网掩码设为 255.255.255.0 (/24) | 定义局域网范围 192.168.137.0 ~ 192.168.137.255 | | 2 | 启动内建 DHCP 服务器 | | | | - 监听来自 网卡B 的 DHCP 请求 | | | | - 为连接设备 (RK3568) 分配地址:
- IP 范围: 192.168.137.x
- 网关: 192.168.137.1
- DNS:同网关或系统默认DNS | 地址租期默认为 24 小时 | | 3 | 启用 NAT 转发引擎 | | | | - 监听来自 网卡B 的流量 | | | | - 对出站流量:将源地址 192.168.137.x 替换为网卡A的IP(SNAT) | 伪装内网地址使互联网服务认为请求来自 Windows PC | | | - 对入站流量:将目标地址 还原回内网设备IP(根据NAT表) | 确保响应包正确返回内网设备 | | 4 | 配置 Windows 防火墙规则 | | | | - 自动开放必要端口 (如 DHCP/UDP 67-68, DNS/UDP 53) | | | | - 允许通过 网卡B → 网卡A 的 IPv4 转发 | |

4.2 转发示例

假设 RK3568 访问 8.8.8.8

  1. 请求阶段:
    • RK3568 → 网关 192.168.137.1 → Windows 网卡B
    • Windows 识别目标为公网IP,触发 NAT引擎
      • 修改源 IP:192.168.137.x网卡A的IP (如 10.0.0.2)
      • 记录映射关系到 NAT连接表 (源端口+新端口)
    • 转发修改后数据包到网卡A → 互联网
  2. 响应阶段:
    • 互联网服务器响应 → 网卡A
    • Windows 检查NAT表,找到匹配项:
      • 目标 IP还原:10.0.0.2192.168.137.x
      • 端口还原
    • 数据包通过网卡B发送回 RK3568

5. bug提示

  • 注意,连接主板的网口2,ipv4地址配置都要设置为自动,不可以使用自定义的网段。原因是设置ips时,系统会将网卡2的ipv4地址设置为192.168.137.x,如果设置为自定义会导致冲突。具体注册表项如下:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters
    

    alt text

留下评论