不用 Tailscale:3 步把 Mac mini 通过 FRP 暴露到公网(稳定开机自启)

目录

  1. 引言
  2. FRP 简介
  3. 环境准备
  4. 步骤一:搭建 FRP 服务器
  5. 步骤二:配置 FRP 客户端
  6. 步骤三:设置开机自启
  7. 案例分析
  8. 常见问题解答
  9. 总结

引言

在许多情况下,我们希望能够将内部网络中的设备暴露到公网,以便进行远程访问或其他操作。使用 Tailscale 等工具虽然方便,但也可能会引入一些额外的复杂性和依赖项。本文将介绍如何通过 FRP(Fast Reverse Proxy)将 Mac mini 轻松而稳定地暴露到公网,并确保它能在每次开机时自动启动。

FRP 简介

FRP 是一个高性能的反向代理应用,主要用于内网穿透。它可以将内网服务通过公网进行访问。FRP 包含两个组件:FRP 服务器和 FRP 客户端。FRP 服务器通常部署在具有公网 IP 的服务器上,而客户端部署在需要被访问的内网设备上。

FRP 的基本工作原理如下:

  1. FRP 客户端与 FRP 服务器建立 TCP 或 UDP 连接。
  2. FRP 服务器监听来自公网的请求,并将其转发到 FRP 客户端的指定服务。

环境准备

硬件要求

  • 一台运行 macOS 的 Mac mini。
  • 一台具有公网 IP 的 VPS(虚拟私有服务器)。

软件要求

  • macOS 10.14 及以上版本。
  • FRP 安装包(可以从 FRP 官方 GitHub 下载)。
  • 基础的终端操作知识。

步骤一:搭建 FRP 服务器

购买 VPS

首先,您需要购买一台 VPS。市面上有很多 VPS 提供商,例如:

  • AWS
  • DigitalOcean
  • Linode
  • Vultr

选择一个适合您预算和需求的 VPS 提供商,然后按照其指示完成购买。确保选择一个具有公网 IP 的服务器实例。

安装 FRP

  1. 连接到您的 VPS

    使用 SSH 连接到您的 VPS(假设您的 VPS IP 为 your_vps_ip):

    bashCopy Code
    ssh root@your_vps_ip
  2. 下载 FRP

    执行以下命令下载最新的 FRP 版本(请根据需要替换版本号):

    bashCopy Code
    wget https://github.com/fatedier/frp/releases/download/v0.53.0/frp_0.53.0_linux_amd64.tar.gz
  3. 解压缩 FRP

    bashCopy Code
    tar -zxvf frp_0.53.0_linux_amd64.tar.gz cd frp_0.53.0_linux_amd64
  4. 配置 FRP 服务器

    编辑 frps.ini 配置文件:

    iniCopy Code
    [common] bind_port = 7000

    在该配置中,bind_port 是 FRP 服务器监听的端口,可以根据需要进行修改。

  5. 启动 FRP 服务器

    bashCopy Code
    ./frps -c ./frps.ini

    您可以使用 nohup 命令将其放在后台运行:

    bashCopy Code
    nohup ./frps -c ./frps.ini &

步骤二:配置 FRP 客户端

下载 FRP

在您的 Mac mini 上下载相同版本的 FRP:

bashCopy Code
cd ~ wget https://github.com/fatedier/frp/releases/download/v0.53.0/frp_0.53.0_darwin_amd64.tar.gz

编辑配置文件

  1. 解压 FRP

    bashCopy Code
    tar -zxvf frp_0.53.0_darwin_amd64.tar.gz cd frp_0.53.0_darwin_amd64
  2. 配置客户端

    编辑 frpc.ini 配置文件:

    iniCopy Code
    [common] server_addr = your_vps_ip server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000

    在这个配置中,server_addr 是您 VPS 的 IP 地址,remote_port 是您希望从公网访问的端口。

步骤三:设置开机自启

创建启动脚本

  1. 创建脚本文件

    ~/frp_0.53.0_darwin_amd64 目录下,创建一个名为 start_frpc.sh 的脚本文件。

    bashCopy Code
    touch start_frpc.sh chmod +x start_frpc.sh
  2. 编辑脚本内容

    打开 start_frpc.sh 文件,添加以下内容:

    bashCopy Code
    #!/bin/bash cd /path/to/frp_0.53.0_darwin_amd64 ./frpc -c ./frpc.ini

    请确保将 /path/to/ 替换为实际路径。

配置 LaunchAgent

  1. 创建 plist 文件

    ~/Library/LaunchAgents/ 目录下创建一个名为 com.user.frpc.plist 的文件。

    bashCopy Code
    touch ~/Library/LaunchAgents/com.user.frpc.plist
  2. 编辑 plist 内容

    打开 com.user.frpc.plist 文件,添加以下内容:

    xmlCopy Code
    <?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.user.frpc</string> <key>ProgramArguments</key> <array> <string>/path/to/frp_0.53.0_darwin_amd64/start_frpc.sh</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> </dict> </plist>

    同样,请确保将 /path/to/ 替换为实际路径。

  3. 加载 LaunchAgent

    使用以下命令加载 LaunchAgent:

    bashCopy Code
    launchctl load ~/Library/LaunchAgents/com.user.frpc.plist

案例分析

远程桌面访问

通过 FRP,您可以将 Mac mini 的远程桌面(VNC)服务暴露到公网,方便随时进行远程管理。配置方法如下:

frpc.ini 中添加:

iniCopy Code
[vnc] type = tcp local_ip = 127.0.0.1 local_port = 5900 remote_port = 5901

然后您可以使用 VNC 客户端通过 your_vps_ip:5901 远程访问 Mac mini。

私有 Git 服务器

如果您在 Mac mini 上运行 Git 服务器,可以通过 FRP 将其暴露到公网,方便团队成员访问。配置如下:

frpc.ini 中添加:

iniCopy Code
[git] type = tcp local_ip = 127.0.0.1 local_port = 9418 remote_port = 9419

团队成员可以通过 git clone your_vps_ip:9419/repo.git 来访问 Git 仓库。

Web 服务部署

如果您在 Mac mini 上运行 Web 服务(例如 Apache 或 Nginx),可以通过 FRP 将其暴露到公网。配置如下:

frpc.ini 中添加:

iniCopy Code
[web] type = tcp local_ip = 127.0.0.1 local_port = 80 remote_port = 8080

用户只需访问 http://your_vps_ip:8080 即可访问您的 Web 应用。

常见问题解答

如何查看 FRP 日志?

FRP 客户端和服务器都可以输出日志信息。您可以在启动命令中加上 -log_file=frpc.logfrps.log 参数来指定日志文件。

如何更新 FRP?

若需更新 FRP,只需下载新版本并替换原有的二进制文件,更新配置文件后重新启动即可。

FRP 的安全性如何?

FRP 支持 TLS 加密,您可以在配置文件中启用相关设置,以增强数据传输的安全性。

总结

通过 FRP,您可以轻松地将 Mac mini 暴露到公网,实现远程访问、Git 服务器和 Web 服务等多种应用。本文提供的步骤简单明了,并确保了每次开机后能够稳定运行。无论是个人使用还是团队协作,FRP 都是一个值得考虑的解决方案。希望本指南对您有所帮助!