戏里戏外

MacOS 安装 WireGuard

2025-02-06#MacOS

本文演示在 Apple Silicon 芯片的 MacOS 系统上安装和配置 WireGuard

前置条件

在安装 WireGuard 之前,请确保系统已安装:

  • Homebrew - MacOS 的包管理器

  • xcode-select - Xcode 命令行工具

安装步骤

1. 安装 WireGuard

使用 Homebrew 安装 WireGuard 工具包:

brew install wireguard-tools

2. 生成密钥

生成 WireGuard 客户端私钥:

wg genkey

3. 配置 WireGuard

使用下面的命令创建配置文件:

sudo touch /opt/homebrew/etc/wireguard/wg0.conf

编辑配置文件,添加以下内容:

[Interface]
PrivateKey = <CLIENT_PRIVATE_KEY>  # 替换为生成的 privatekey
Address = 192.168.11.100/32        # 根据服务器配置修改
DNS = 8.8.8.8                      # 建议指定DNS服务器

[Peer]
PublicKey = <SERVER_PUBLIC_KEY>    # 替换为服务器 publickey
AllowedIPs = 10.10.10.0/24         # 根据实际路由需求调整
Endpoint = 185.199.108.153:51820   # 服务器公网地址
PersistentKeepalive = 25           # 心跳检测时间,单位为秒

4. 设置权限

配置适当的目录和文件权限:

sudo chown root:wheel /opt/homebrew/etc/wireguard
sudo chmod 640 /opt/homebrew/etc/wireguard/wg0.conf

5. WireGuard 操作命令

启动 WireGuard:

sudo wg-quick up wg0

查看连接状态:

sudo wg

关闭 WireGuard:

sudo wg-quick down wg0

6. 配置开机自启动

创建并配置启动项:

sudo tee /Library/LaunchDaemons/com.wireguard.wg0.plist > /dev/null <<EOL
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.wireguard.wg0</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/homebrew/bin/wg-quick</string>
        <string>up</string>
        <string>wg0</string>
    </array>
    <key>KeepAlive</key>
    <dict>
        <key>NetworkState</key>
        <true/>
    </dict>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/opt/homebrew/var/log/wireguard.err</string>
    <key>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        <string>/opt/homebrew/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
    </dict>
</dict>
</plist>
EOL

sudo launchctl enable system/com.wireguard.wg0
sudo launchctl bootstrap system /Library/LaunchDaemons/com.wireguard.wg0.plist
INFO

如果执行上述命令遇到Bootstrap failed: 5: Input/output error 错误,可以使用命令 sudo launchctl unload /Library/LaunchDaemons/com.wireguard.wg0.plist 卸载,然后再执行 sudo launchctl bootstrap system /Library/LaunchDaemons/com.wireguard.wg0.plist 重新启动。

完成配置后,系统重启时 WireGuard 将自动启动。可以随时使用 sudo wg 命令检查连接状态。

注意事项

  • 请确保正确替换配置文件中的私钥和服务器公钥
  • 根据实际网络环境调整 IP 地址和路由配置
  • 配置文件包含敏感信息,请确保适当的文件权限
  • 如遇连接问题,可查看错误日志:/opt/homebrew/var/log/wireguard.err