记一次macOs系统安装使用vpn过程

前言

由于自己只在win10系统上安装过 OpenVPN 工具,近期在使用macOs系统时需要安装该工具时抓瞎了。所以特此记录一下过程,也希望可以帮助到第一次使用的同学。

OpenVPN工具安装

推荐官网:FileHorse.com / Free Softw...

filehorse 是专门收集免费软件的网站,包含Windows端和Mac端的电脑软件,以免费使用、免费开源的软件为主,是安全的!

安装 OpenVPN Connect

直接搜索后发现其实有一个OpenVPN Connect是适用于 mac 系统的,但是我下载时失败了,点击下载没反应。可能是网络的问题,也可能是页面下载功能有问题。如果可以正常下载可以直接安装使用。

安装OpneVPN

windows 系统可以直接下载这个安装程序,当下载下来后发现是一个 .tar.gz 的压缩包:

压缩包文件安装步骤

下载并解压文件:
  • 打开终端(Terminal)。

  • 导航到下载文件所在的目录,例如:

    bash 复制代码
    cd ~/Downloads
  • 使用以下命令解压 .tar.gz 文件:

    复制代码
    tar -xzvf openvpn-version.tar.gz
安装OpenVPN
  • 通常,解压后会有一个名为 configure 的脚本,需要运行这个脚本进行配置:

    bash 复制代码
    cd openvpn-version
    ./configure
  • 然后编译并安装:

    go 复制代码
    make
    sudo make install
配置OpenVPN:
  • 需要一个 .ovpn 配置文件。这通常由你们公司运维负责人提供。

  • 将该文件放置在合适的目录,例如:

    bash 复制代码
    sudo mv your-config-file.ovpn /etc/openvpn/
运行OpenVPN:
  • 使用以下命令启动OpenVPN:

    arduino 复制代码
    sudo openvpn /etc/openvpn/your-config-file.ovpn
  • 输入VPN账户信息(如果需要)。

连接验证:

可以通过访问IP检测网站检查您的IP地址是否已更改,以验证是否已成功连接到VPN。

homeBrew方式安装(推荐)

确保你的系统已安装 homebrew,它是啥就不多说了,如果没有安装,可以通过以下命令安装:

bash 复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

搜索:brew search openvpn

然后通过 homebrew安装:brew install openvpn

可以发现这里 casks 里也有 openvpn-conect, casks 代表的是图形界面程序。

Tunnelblick工具安装使用(mac本 推荐)

Tunnelblick工具是直接导入 openvpn 所有配置文件的,包含 证书和密钥文件。

  • 官网下载tunnelblick.net
  • 安装 Tunnelblick
  • 打开 Tunnelblick,界面如下,选择"我有设置文件"
  • Tunnelblick 支持两种类型的设置文件,选择"Openvpn设置"
  • 选择"打开私人设置文件夹",将自动打开一个文件夹,将附件拷贝进文件夹内
  • 点击桌面右上角的Tunnelblick图标,这时候可以看到可用的Openvpn连接,点击一个,连接试试看
  • 输入用户名和密码进行认证登录
  • 选项设置

链接成功后,就可以访问指定 ip 服务了,如果有失败情况,可以通过查看日志排查。

工作中使用 vpn 场景

由于 你司的某个项目必须使用客户方的内网访问,而你不可能一直呆在客户现场。你在公司要想直接访问客户内网服务是不可以的! 此时,你司运维人员就会搭建 vpn 服务,让开发人员可以通过 vpn 代理的方式能够从外网访问到目标内网。
如果你是第一次使用 vpn工具,一般 情况你要去找公司运维负责人或者你的领导,问他要一下 vpn 配置文件。他会在后台给你配置好属于你的 vpn 相关配置文件然后发给你。

vpn使用相关

  • 例子

    比如你要参与一个外网不能直接访问的项目,这个项目的服务器 ip 地址假如为: 80.22.33.44, 此时如果你已经有了运维给的 vpn 配置文件,本地vpn客户端工具也配好了,但你直接连接后也是访问不到这台服务器的!!!

    因为这个项目使用的服务器 ip 地址 80.22.33.44,这个ip 还没有被加入,此时你就需要把这个 ip 地址发给运维人员让他给你加一下这个ip的地址。 他那边添加好后,你就有权限访问了,需要断开 vpn 工具重新连接后,不出意外就可以正常访问了。

域名相关

假如上述项目服务ip 地址 80.22.33.44 有域名地址: https://abc.ceshi.cc.cn

此时就算配置完 vpn 你也不能使用这个域名地址直接访问,因为你本机的 DNS 没有配置该域名解析为对应的 IP 地址。

所以需要手动配置本地 DNS 解析表,使域名解析到目标 IP 地址:

Windows系统

打开文件 C:\Windows\System32\drivers\etc\hosts

添加如下代码,保存文件, 意思就是 将 80.22.33.44 地址和域名做映射

arduino 复制代码
  80.22.33.44 https://abc.ceshi.cc.cn

macOS/Linux系统

编辑 /etc/hosts文件

添加如下代码,保存文件

arduino 复制代码
  80.22.33.44 https://abc.ceshi.cc.cn

然后尝试使用 域名地址进行访问,不出意外的话此时用域名进行访问时也可以了。

openvpn 配置文件如何在 clashx 客户端中使用(不太推荐)

我们发现使用 clashx 都是 url 订阅地址导入配置文件的形式,配置文件是一个 .yaml 文件。 而一般公司里使用 openvpn 提供给我们的配置文件是一个文件夹,其中包含:

  • .ovpn
  • ca.crt (CA 证书)
  • xxname.crt (客户端证书)
  • xxname.key (客户端私钥)
  • ta.key

不推荐理由:

因为需要使用到 name、password,需要写到配置文件中。将用户名和密码直接写入配置文件存在安全隐患,尤其是如果这个文件被共享、泄露或存储在不安全的地方时。
Tunnelblick 通常会使用 macOS 的钥匙串(Keychain)来安全存储用户的凭据。这样,用户的密码不会直接存储在配置文件中,而是安全地存放在系统的钥匙串中,只有在需要时才会被访问。

这种方法提高了安全性,因为即使配置文件被泄露,密码依然是安全的。

clashx中使用本地自定义配置文件

打开 clashx 配置目录,添加 openvpn 的配置文件

目录结构

js 复制代码
├── openvpn-config.yaml        # 你的 OpenVPN 配置文件
├── certs/                     # 存放证书和密钥的文件夹
│   ├── ca.crt                 # CA 证书
│   ├── client.crt             # 客户端证书
│   ├── client.key             # 客户端私钥
└── other-configs.yaml         # 其他以url 形式导入的配置文件

YAML 配置示例

在你的 openvpn-config.yaml 文件中,你可以按如下方式引用证书和密钥:

yaml 复制代码
proxies:
  - name: "My OpenVPN"
    type: openvpn
    server: "vpn.yourserver.com"  # 你的 VPN 服务器地址
    port: 1194  # VPN 端口
    cipher: "AES-128-CBC"  # 加密方式
    username: "your_username"  # 用户名
    password: "your_password"  # 密码(不推荐直接在文件中存储)
    ca: "certs/ca.crt"          # CA 证书路径
    cert: "certs/client.crt"    # 客户端证书路径
    key: "certs/client.key"      # 客户端私钥路径

然后选择刚创建的 openvpn-config.yaml 配置文件,连接测试即可。

相关推荐
前端 贾公子7 小时前
「混合开发」H5与原生App交互流程方案全面解析
macos·objective-c·cocoa
I烟雨云渊T8 小时前
2025年的WWDC所更新的内容
macos·ios·wwdc
Fatbobman(东坡肘子)8 小时前
WWDC 2025 开发者特辑 | 肘子的 Swift 周报 #088
开发语言·macos·ios·swiftui·ai编程·swift·wwdc
vastgrassland8 小时前
从WWDC看苹果产品发展的规律
macos·ios·wwdc
江梦寻9 小时前
软件工程教学评价
开发语言·后端·macos·架构·github·软件工程
survivorsfyh11 小时前
Xcode 16 集成 cocoapods 报错
macos·xcode·cocoapods
getapi12 小时前
flutter把 pubspec.yaml 中的name改成了新的值
flutter·macos·cocoa
Smile_Gently17 小时前
Mac 系统 Node.js 安装与版本管理指南
macos·node.js
Yale曼陀罗20 小时前
如何快速删除谷歌浏览器在mac启动台生成的网页图标
macos