通过 Windows 网络共享,让 Linux 设备访问 VPN 内网

有些内网资源需要登录 VPN 或零信任客户端才能访问,但需要使用资源的设备不一定支持安装客户端。这里记录一种思路:借助一台能够访问内网的 Windows 主机,通过网络共享,让另一台 Linux 设备接入。

本文中的设备分工如下:

  • 设备 A:Windows 主机,连接互联网,安装并登录 VPN/零信任客户端。
  • 设备 B:Linux 主机,通过网线连接设备 A,需要访问内网资源。

一、先确认方案是否可行

Windows 的 Internet 连接共享(ICS)会让设备 A 充当设备 B 的网关,通过 NAT 转发流量。

设备 B:Linux
192.168.137.2
↔
网线
设备 A:Windows
有线网卡:192.168.137.1
ICS 网络共享
↔
VPN/零信任连接
内网资源
Linux 通过 Windows 的 ICS 共享链路访问内网资源

但 A 能访问内网,不代表 B 一定能通过共享访问。是否可行,还取决于客户端是否接管转发流量,以及是否允许网络共享。有些零信任客户端只代理本机应用的访问,这类连接未必能通过 ICS 共享。

因此,不能仅凭 NAT 就判断“不会被检测出问题”。实际操作时,先确认 A 能正常访问目标资源,再配置共享并验证 B 的访问情况。

二、在 Windows 上开启网络共享

设备 A 需要两个网络接口:一个用于连接上游网络,另一个用于连接设备 B。笔记本可以使用 Wi-Fi + 有线网卡,没有网口时可使用 USB/Type-C 网卡。

  1. 通过 Wi-Fi 连接互联网,登录 VPN/零信任客户端,确认能访问目标内网资源。
  2. 用网线连接 A 和 B。
  3. 按 Win + R,输入 ncpa.cpl,打开“网络连接”。
  4. 找到需要共享的上游连接,右键进入“属性”→“共享”。
  5. 勾选“允许其他网络用户通过此计算机的 Internet 连接来连接”,在“家庭网络连接”中选择连接设备 B 的有线网卡。

这里需要区分两个接口:打开共享属性的是上游连接,下拉框里选择的是通往 B 的有线网卡。如果 VPN 有独立的虚拟网卡,通常需要在对应的 VPN 连接上开启共享;只共享 Wi-Fi,不一定能共享 VPN 内网访问能力。没有独立虚拟网卡的客户端,则需要结合其工作方式实际验证。

Windows 网络连接的共享设置
选择连接 Linux 设备的有线网卡
Windows Internet 连接共享配置

开启共享后,Windows 通常会将有线网卡设为 192.168.137.1/24。可以通过 ipconfig 查看,后续以实际地址为准。共享网段应避免与现有局域网或 VPN 内网网段冲突。

ICS 还提供 DHCP 和名称解析服务,因此 B 可以先尝试自动获取地址。下面记录手动配置静态地址的方式。微软 ICS 说明

三、配置 Linux 的地址和网关

以下写法适用于仍使用 ifcfg-* 配置文件、且由 NetworkManager 管理连接的系统,例如部分 CentOS/RHEL 7、8 环境。使用 Netplan 或其他配置方式的系统,需要按对应方式设置相同的地址、网关和 DNS。

先查看网卡名称:

ip addr
Linux 网卡与 IP 地址信息

假设连接 Windows 的网卡为 ens18,下文请替换为实际名称。使用 root 权限编辑配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-ens18

配置参考如下;已有文件可修改对应字段,无须整份覆盖:

TYPE=Ethernet
BOOTPROTO=none
NAME=ens18
DEVICE=ens18
ONBOOT=yes

IPADDR=192.168.137.2
PREFIX=24
GATEWAY=192.168.137.1
DNS1=192.168.137.1

这里为 B 分配 192.168.137.2,网关指向 A 的有线网卡地址。静态地址需要确认未被其他设备占用。

DNS 可以先填写 192.168.137.1。如果内网 IP 能访问、域名却无法解析,再检查 A 使用的内网 DNS;必要时将 DNS1 改为 B 能通过共享链路访问的内网 DNS 地址。

保存退出后,重新加载配置并查看连接名称:

nmcli connection reload
nmcli connection show

然后激活对应连接。以上配置中 NAME=ens18,因此执行:

nmcli connection up ens18

注意:connection up 后面填写的是连接名称,不一定等于网卡名;以 nmcli connection show 的 NAME 列为准。重新激活连接可能短暂中断网络,远程操作时要留意当前 SSH 是否使用这张网卡。Red Hat 配置说明

四、验证是否生效

在 B 上检查地址、路由和网关连通性:

ip addr show ens18
ip route
ping -c 4 192.168.137.1

确认 ens18 上的地址正确,访问目标内网的流量会经过 192.168.137.1,然后尝试访问实际的内网服务。如果 B 本身还有其他网卡或默认路由,尤其要检查流量是否走错出口。

By feee1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注