Mac 如何使用 windows VPN 提供的网络服务

Mac 如何使用 windows VPN 提供的网络服务

Tags
Tech
Published
Aug 14, 2024

前言

部分企业使用老旧的 windows VPN 来访问开发环境,并没有提供 mac 版本,或仅提供 intel CPU 的版本。
这些软件在 ARM mac 上可能无法运行,本方法使用「代理」的方式提供 mac 对 windows VPN 的访问。
 

开始

本方法的主要流程如下:
  1. 安装 parallel desktop for ARM,安装 windows 11 for ARM。我这里使用的是 windows 11 for ARM Tiny 版本,可以运行在 2 核 CPU,2G 内存的环境下。
  1. windows 安装 ssh server,使用 ssh tunnel 的形式提供代理服务。
  1. parallel desktop 配置端口转发,将 windows 公开的 ssh 22 端口转发到本地端口。
  1. mac 使用代理软件,对符合规则的 url 提供代理。
 

1. 安装 Parallel desktop

这里使用的是 19.4.1 版本,其他版本不影响使用。
 

2. 安装 Windows 11 for ARM

安装 windows

我这里使用的是 tiny 版本,不在乎内存占用的可以使用 Parallel desktop 一键安装正版 windows 11。
这里贴一个 Tiny 版本的种子文件。
 
WARNING
安装 Tiny 版本有一个需要注意的点。
由于 Tiny 是修改版本,安装完成后无法自动退出 Parallel desktop 安装器,和自动安装 Parallel Desktop Tools,需要手动安装。
 
  1. 安装完成后退出安装器。
点击顶栏的 安装-->手动安装 即可。
 
  1. 安装 Parallel Desktop Tools
如未正确安装 Parallel Desktop Tools,则右上角位置会有一个叹号,点击叹号即可安装 Parallel Desktop Tools。
安装完 Parallel Desktop Tools 后,切换网络到共享网络,即可连接 Internet。
notion image
 

开启 ssh service

  1. 搜索 optional features
notion image
 
  1. 点击 View features,选择 ssh server 并安装。
我这里已经安装了,如果没有安装,ssh server 会显示在搜索结果里。
notion image
notion image
notion image
 
  1. 管理员权限运行 powershell,输入 net start sshd 开启 ssh 服务。
需要注意的是,每次重启计算机都要重新开启 ssh 服务,由于我使用的是 VM,所以没有配置自启动执行脚本。
notion image
 
  1. 关闭 windows 防火墙。
Parallel Desktop 的「共享网络」不会将 VM 暴露到内网上,所以无需防火墙。
 
打开 Windows Security,Firewall,关闭所有三种网络的防火墙。
notion image
 
 

其他

其他 windows 的使用技巧不过多赘述。包括关闭自动更新,KMS 激活等,请自行查阅。
 

3. Parallel desktop 配置端口转发

Parallel desktop 设置

配置预设选择「软件开发」。
notion image
 
优化选择「低」
notion image
 
关闭所有共享。这里是可选项,不会影响使用。
notion image
 
关闭应用程序共享。这里是可选项,不会影响使用。
notion image
 
硬件,配置 2 核 2G。
notion image
 
图形,「缩放」。
notion image
 
硬盘 32G。如果空间不足可以自行尝试缩小。
notion image
 
重点,网络。
选择「共享网络」,勾选「网络调节器」,「无限制」。
这里需要注意,如果不勾选,则前面的优化选项会限制 VM 的网络吞吐,这里的网络调节器可以覆盖这种限制。
notion image
 
点击「高级」,点击「网络首选项」。
添加端口转发规则。「源端口」是 mac 上的本地端口,通过「localhost」访问。这里指定的是 「22000」 端口。
协议选择「TCP」。
目标端口「22」
notion image
 

4. mac 使用代理软件代理 URL

启动 ssh tunnel

启动 Terminal,键入 ssh -p 22000 -D 8891 127.0.0.1 -N ,启动 ssh tunnel 的 socks 代理服务器。
这条命令会和本地 22000 端口上的 ssh service 建立服务,并启动本地 8891 端口的 socks5 服务。
任何被代理到 socks5 服务的连接,会通过 ssh tunnel,使用 VM 内的网络发送。
 
有两个需要注意的点:
  1. 这个终端窗口必须保持开启,否则 ssh tunnel 会中断。
  1. 不能代理 ssh 服务。正常情况下,我们无法使用 ssh tunnel 提供 ssh 服务,就像无法在 docker 中使用 docker。 可能可以解决,但是由于没有需求,暂时没有方案。
 
notion image
 

使用代理软件配置 rules

接下来需要使用代理软件配置 rules,将指定的 URL 代理到 8891 端口。
我这里使用的是 Proxifier for mac 和 Chrome 插件 SwitchyOmega
 
具体的使用方法请自行研究,不过多赘述。
 
需要注意的是,由于不能使用 ssh 代理,所以 git 要使用 https 克隆,这点需要特别注意。
 

能耗

windows 11 Tiny 仅作为 VPN 网关使用,占用极低。基本 CPU 维持在 10% 以下,可以长期挂在后台,而不会产生大量能耗。
内存占用 2G,实际使用的内存小于 2G,VM 内 2G 内存使用 70% 左右。
 
notion image
notion image
 
感谢阅读!

Loading Comments...