# FRPC 使用教程

# FRPC 的 HTTPS 功能

以下为 FRPC (0.44.0+) 版本才可使用的功能。

本功能可以在 TCP 链接上使用 TLS 套接字。 或把 HTTP 服务以 HTTPS 隧道穿透流量。

# TCP隧道

auto_tls = false # 是否启用自动TLS
auto_tls_mode = auto #工作模式

TCP 附加说明:

  • 有关 auto_tls
    • false
      不会为 TCP 流量打上 TLS 套接字。
    • true
      系统会自动生存一个证书,且证书不受信任、CommonName 不含任何域名
    • <文件名>
      会试图访问调试目录下的 <auto_https>.crt<auto_https>.key 两个证书文件。 若文件不存在或解析失败 效果与 auto_tls = true 相同。(调试目录可通过在frpc命令行后加上 --debug 后启动获得。)
  • 有关 auto_tls_mode
    • auto [默认]
      隧道会探测本地服务是否为http/s
    • http
      将请求反代发送给本地 http 服务
    • https
      将请求反代发送给本地 https 服务
    • passthrough
      直通模式 单纯为本地 tcp 服务套用 TLS

# HTTPS隧道

auto_tls = false	# 同上
auto_tls_mode = auto	# 同上
force_https = true

HTTPS 附加说明:

  • 有关 force_https=true
    • 访问 http://example.com 会自动跳转到 https://example.com,且状态码为 301 Moved Permanently 返回的 Location 头包含 Host、Path 和 Query
    • 此隧道包含的所有域名对应的 http 隧道无效。访问 http://example.com 一定会 自动跳转到 https://example.com,一定不会 去尝试访问对应的 http 隧道

# Windows

建议您使用启动器,小白用户当然可以试试学这篇。

Windows 具有以下平台:

  • ARM64
  • X86
  • X64 (最常见)

您需要找到对应的平台且下载。如果您是 Windows XP 或 Windows Vista 的极客用户,请下载上游的 0.28.2 (opens new window) 版本

下载且解压完成后,您可以直接双击可执行文件或使用命令行进入:

frpc_windows_<平台>.exe -u <你的token> -p <隧道id>,[id,id]

# Linux

首先您需要确定您的系统架构,输入以下命令查看。

uname -a

根据以下对照表,寻找对应平台的 FRPC

平台 对应 FRPC
i386 i386, i686
amd64 x86_64
arm_garbage arm, armel
armv7 armv7l, armhf
arm64 aarch64,armv8l
mips mips
mips64 mips64

如果您的架构显示为 armv7l,但在下载对应程序后无法运行,提示 Illegal instruction 的话,这是因为您其实是 armel 而不是 armhf,请下载 arm_garbage 版本重试

如果您的架构为 mips 或 mips64,还需要使用下面的命令来确定处理器的字节序

# 一般来说只需要使用这条命令:
echo -n I | hexdump -o | awk '{print substr($2,6,1); exit}'

# 如果上面的命令报错,请尝试这条:
echo -n I | od -to2 | awk '{print substr($2,6,1); exit}'
平台 结果
mips / mips64 0
mipsle / mips64le 1

# 下载 Frpc

登入管理面板,转到软件下载 在架构一栏找到适合您的Linux版本,点击复制按钮。

使用下面的命令进入 /usr/local/bin 目录并下载文件:

cd /usr/local/bin 

# 如果您使用 wget,用以下命令:
wget <url>
# 如果上面命令报错 / 您喜欢用 curl,请使用:
curl <urL>

下载成功后,使用该命令解压:

tar -zxvf <tar.gz文件>

解压后输入下面的命令设置权限:

chmod 755 <解压后出来文件名>
ls -ls <解压后出来文件名>

反馈的权限应该是: -rwxr-xr-x

# 开始运行

还记得篇章写的什么吗?您可以直接输入文件名运行。

./frpc_linux_amd64 # = 或 = 
frpc_linux_amd64 # 执行后,您将进入 TerminalUI 

对于 Termux,你需要修复 DNS 的问题。具体方法自行百度。

# Docker 容器

目前 Docker 支持的平台

系统 平台
Linux 386
Linux 386
Linux amd64
Linux arm64/v8
Linux arm/v7
Darwin amd64
Darwin arm64
# 启动命令: 
docker run -d --name of --restart unless-stopped openfrp/frpc:latest -u <访问密钥> -p <隧道ID>[<,隧道ID><,隧道ID>]
# 查看状态: 
docker logs of

# 使用配置文件运行

对应映射目录为 /run

docker run -d --name of --restart unless-stopped -v /path/to/your/frpc.ini:/run/frpc.ini openfrp/frpc:latest

# 更新容器

# 先停止容器
docker stop of
# 然后删除容器
docker rm of
# 更新本地镜像
docker pull openfrp/frpc:latest
# 重新运行容器即可
docker run -d --name of --restart unless-stopped openfrp/frpc:latest -u <访问密钥> -p <隧道ID>[<,隧道ID><,隧道ID>]

Docker 本地服务访问提示
你可能在访问的时候发现无法连接到本地服务。 这时,您需要将本地链接改成您

  • 服务器的 内网IP
  • 宿主机 Docker0接口 (一般为172.17.0.1)

# Mac OS

你需要下载 FRPC (Darwin)。

Mac分为 Apple 芯片 和 Intel 芯片 (最常见) 架构也有所不同:

Apple CPU Intel CPU
arm64 amd64

解压后,根据Linux的方式去设置权限:

chmod 755 <解压后出来文件名>
ls -ls <解压后出来文件名>

您会发现,文件会变成 可执行 UNIX 文件,双击后会进入 TUI。

如果您需要用终端运行,请输入:

frpc_darwin_<平台> -u <你的token> -p <隧道id>,[id,id]