不用 Tailscale:3 步把 Mac mini 通过 FRP 暴露到公网(稳定开机自启)
目录
- 引言
- FRP 简介
- 环境准备
- 步骤一:搭建 FRP 服务器
- 步骤二:配置 FRP 客户端
- 步骤三:设置开机自启
- 6.1 创建启动脚本
- 6.2 配置 LaunchAgent
- 案例分析
- 7.1 远程桌面访问
- 7.2 私有 Git 服务器
- 7.3 Web 服务部署
- 常见问题解答
- 总结
引言
在许多情况下,我们希望能够将内部网络中的设备暴露到公网,以便进行远程访问或其他操作。使用 Tailscale 等工具虽然方便,但也可能会引入一些额外的复杂性和依赖项。本文将介绍如何通过 FRP(Fast Reverse Proxy)将 Mac mini 轻松而稳定地暴露到公网,并确保它能在每次开机时自动启动。
FRP 简介
FRP 是一个高性能的反向代理应用,主要用于内网穿透。它可以将内网服务通过公网进行访问。FRP 包含两个组件:FRP 服务器和 FRP 客户端。FRP 服务器通常部署在具有公网 IP 的服务器上,而客户端部署在需要被访问的内网设备上。
FRP 的基本工作原理如下:
- FRP 客户端与 FRP 服务器建立 TCP 或 UDP 连接。
- FRP 服务器监听来自公网的请求,并将其转发到 FRP 客户端的指定服务。
环境准备
硬件要求
- 一台运行 macOS 的 Mac mini。
- 一台具有公网 IP 的 VPS(虚拟私有服务器)。
软件要求
- macOS 10.14 及以上版本。
- FRP 安装包(可以从 FRP 官方 GitHub 下载)。
- 基础的终端操作知识。
步骤一:搭建 FRP 服务器
购买 VPS
首先,您需要购买一台 VPS。市面上有很多 VPS 提供商,例如:
- AWS
- DigitalOcean
- Linode
- Vultr
选择一个适合您预算和需求的 VPS 提供商,然后按照其指示完成购买。确保选择一个具有公网 IP 的服务器实例。
安装 FRP
-
连接到您的 VPS:
使用 SSH 连接到您的 VPS(假设您的 VPS IP 为
your_vps_ip):bashCopy Codessh root@your_vps_ip -
下载 FRP:
执行以下命令下载最新的 FRP 版本(请根据需要替换版本号):
bashCopy Codewget https://github.com/fatedier/frp/releases/download/v0.53.0/frp_0.53.0_linux_amd64.tar.gz -
解压缩 FRP:
bashCopy Codetar -zxvf frp_0.53.0_linux_amd64.tar.gz cd frp_0.53.0_linux_amd64 -
配置 FRP 服务器:
编辑
frps.ini配置文件:iniCopy Code[common] bind_port = 7000在该配置中,
bind_port是 FRP 服务器监听的端口,可以根据需要进行修改。 -
启动 FRP 服务器:
bashCopy Code./frps -c ./frps.ini您可以使用
nohup命令将其放在后台运行:bashCopy Codenohup ./frps -c ./frps.ini &
步骤二:配置 FRP 客户端
下载 FRP
在您的 Mac mini 上下载相同版本的 FRP:
bashCopy Codecd ~
wget https://github.com/fatedier/frp/releases/download/v0.53.0/frp_0.53.0_darwin_amd64.tar.gz
编辑配置文件
-
解压 FRP:
bashCopy Codetar -zxvf frp_0.53.0_darwin_amd64.tar.gz cd frp_0.53.0_darwin_amd64 -
配置客户端:
编辑
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是您希望从公网访问的端口。
步骤三:设置开机自启
创建启动脚本
-
创建脚本文件:
在
~/frp_0.53.0_darwin_amd64目录下,创建一个名为start_frpc.sh的脚本文件。bashCopy Codetouch start_frpc.sh chmod +x start_frpc.sh -
编辑脚本内容:
打开
start_frpc.sh文件,添加以下内容:bashCopy Code#!/bin/bash cd /path/to/frp_0.53.0_darwin_amd64 ./frpc -c ./frpc.ini请确保将
/path/to/替换为实际路径。
配置 LaunchAgent
-
创建 plist 文件:
在
~/Library/LaunchAgents/目录下创建一个名为com.user.frpc.plist的文件。bashCopy Codetouch ~/Library/LaunchAgents/com.user.frpc.plist -
编辑 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/替换为实际路径。 -
加载 LaunchAgent:
使用以下命令加载 LaunchAgent:
bashCopy Codelaunchctl 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.log 和 frps.log 参数来指定日志文件。
如何更新 FRP?
若需更新 FRP,只需下载新版本并替换原有的二进制文件,更新配置文件后重新启动即可。
FRP 的安全性如何?
FRP 支持 TLS 加密,您可以在配置文件中启用相关设置,以增强数据传输的安全性。
总结
通过 FRP,您可以轻松地将 Mac mini 暴露到公网,实现远程访问、Git 服务器和 Web 服务等多种应用。本文提供的步骤简单明了,并确保了每次开机后能够稳定运行。无论是个人使用还是团队协作,FRP 都是一个值得考虑的解决方案。希望本指南对您有所帮助!