<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>示例 on frp</title>
    <link>/zh-cn/docs/examples/</link>
    <description>Recent content in 示例 on frp</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <atom:link href="/zh-cn/docs/examples/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>通过 SSH 访问内网机器</title>
      <link>/zh-cn/docs/examples/ssh/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/zh-cn/docs/examples/ssh/</guid>
      <description>步骤 在具有公网 IP 的机器上部署 frps&#xA;部署 frps 并编辑 frps.toml 文件。以下是简化的配置，其中设置了 frp 服务器用于接收客户端连接的端口：&#xA;bindPort = 7000 在需要被访问的内网机器上部署 frpc&#xA;部署 frpc 并编辑 frpc.toml 文件，假设 frps 所在服务器的公网 IP 地址为 x.x.x.x。以下是示例配置：&#xA;serverAddr = &amp;#34;x.x.x.x&amp;#34; serverPort = 7000 [[proxies]] name = &amp;#34;ssh&amp;#34; type = &amp;#34;tcp&amp;#34; localIP = &amp;#34;127.0.0.1&amp;#34; localPort = 22 remotePort = 6000 localIP 和 localPort 配置为需要从公网访问的内网服务的地址和端口。 remotePort 表示在 frp 服务端监听的端口，访问此端口的流量将被转发到本地服务的相应端口。 启动 frps 和 frpc&#xA;通过 SSH 访问内网机器&#xA;使用以下命令通过 SSH 访问内网机器，假设用户名为 test：&#xA;ssh -o Port=6000 test@x.</description>
    </item>
    <item>
      <title>多个 SSH 服务复用同一端口</title>
      <link>/zh-cn/docs/examples/multiple-ssh-over-same-port/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/zh-cn/docs/examples/multiple-ssh-over-same-port/</guid>
      <description>步骤 在具有公网 IP 的机器上部署 frps&#xA;修改 frps.toml 文件以包含以下内容（这里使用了最简化的配置）：&#xA;bindPort = 7000 tcpmuxHTTPConnectPort = 5002 在内网机器 A 上部署 frpc&#xA;创建 frpc 配置文件，例如 frpc.toml，然后将以下内容添加到配置文件中：&#xA;serverAddr = &amp;#34;x.x.x.x&amp;#34; serverPort = 7000 [[proxies]] name = &amp;#34;ssh1&amp;#34; type = &amp;#34;tcpmux&amp;#34; multiplexer = &amp;#34;httpconnect&amp;#34; customDomains = [&amp;#34;machine-a.example.com&amp;#34;] localIP = &amp;#34;127.0.0.1&amp;#34; localPort = 22 在内网机器 B 上部署另一个 frpc&#xA;创建 frpc 配置文件，例如 frpc.toml，然后将以下内容添加到配置文件中：&#xA;serverAddr = &amp;#34;x.x.x.x&amp;#34; serverPort = 7000 [[proxies]] name = &amp;#34;ssh2&amp;#34; type = &amp;#34;tcpmux&amp;#34; multiplexer = &amp;#34;httpconnect&amp;#34; customDomains = [&amp;#34;machine-b.</description>
    </item>
    <item>
      <title>通过自定义域名访问内网的 Web 服务</title>
      <link>/zh-cn/docs/examples/vhost-http/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/zh-cn/docs/examples/vhost-http/</guid>
      <description>HTTP 类型的代理非常适合将内网的 Web 服务通过自定义域名提供给外部用户。相比于 TCP 类型代理，HTTP 代理不仅可以复用端口，还提供了基于 HTTP 协议的许多功能。&#xA;HTTPS 与此类似，但是需要注意，frp 的 https 代理需要本地服务是 HTTPS 服务，frps 端不会做 TLS 终止。也可以结合 https2http 插件来实现将本地的 HTTP 服务以 HTTPS 协议暴露出去。&#xA;步骤 配置 frps.toml&#xA;在 frps.toml 文件中添加以下内容，以指定 HTTP 请求的监听端口为 8080：&#xA;bindPort = 7000 vhostHTTPPort = 8080 如果需要配置 HTTPS 代理，还需要设置 vhostHTTPSPort。&#xA;配置 frpc.toml&#xA;在 frpc.toml 文件中添加以下内容，确保设置了正确的服务器 IP 地址、本地 Web 服务监听端口和自定义域名：&#xA;serverAddr = &amp;#34;x.x.x.x&amp;#34; serverPort = 7000 [[proxies]] name = &amp;#34;web&amp;#34; type = &amp;#34;http&amp;#34; localPort = 80 customDomains = [&amp;#34;www.</description>
    </item>
    <item>
      <title>转发 DNS 查询请求</title>
      <link>/zh-cn/docs/examples/dns/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/zh-cn/docs/examples/dns/</guid>
      <description>DNS 查询请求通常使用 UDP 协议，而 frp 支持对内网 UDP 服务的穿透，配置方式与 TCP 类似。&#xA;步骤 配置 frps.toml&#xA;在 frps.toml 文件中添加以下内容：&#xA;bindPort = 7000 配置 frpc.toml&#xA;在 frpc.toml 文件中添加以下内容：&#xA;serverAddr = &amp;#34;x.x.x.x&amp;#34; serverPort = 7000 [[proxies]] name = &amp;#34;dns&amp;#34; type = &amp;#34;udp&amp;#34; localIP = &amp;#34;8.8.8.8&amp;#34; localPort = 53 remotePort = 6000 请注意，这里示例中反代了 Google 的 DNS 查询服务器的地址，仅用于测试 UDP 代理，并没有实际意义。&#xA;启动 frps 和 frpc&#xA;分别启动 frps 和 frpc。&#xA;测试 DNS 查询请求&#xA;使用以下命令通过 dig 工具测试 UDP 包转发是否成功，预期会返回 www.baidu.com 域名的解析结果：</description>
    </item>
    <item>
      <title>转发 Unix 域套接字</title>
      <link>/zh-cn/docs/examples/unix-domain-socket/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/zh-cn/docs/examples/unix-domain-socket/</guid>
      <description>步骤 配置 frps.toml&#xA;在 frps.toml 文件中添加以下内容：&#xA;bindPort = 7000 配置 frpc.toml&#xA;在 frpc.toml 文件中添加以下内容，确保设置正确的 Unix 域套接字路径：&#xA;serverAddr = &amp;#34;x.x.x.x&amp;#34; serverPort = 7000 [[proxies]] name = &amp;#34;unix_domain_socket&amp;#34; type = &amp;#34;tcp&amp;#34; remotePort = 6000 [proxies.plugin] type = &amp;#34;unix_domain_socket&amp;#34; # Unix 域套接字路径 unixPath = &amp;#34;/var/run/docker.sock&amp;#34; 启动 frps 和 frpc&#xA;使用 curl 查看 Docker 版本信息&#xA;curl http://x.x.x.x:6000/version </description>
    </item>
    <item>
      <title>对外提供简单的文件访问服务</title>
      <link>/zh-cn/docs/examples/static-file/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/zh-cn/docs/examples/static-file/</guid>
      <description>通过使用 static_file 插件，您可以轻松地提供一个基于 HTTP 的文件访问服务，让其他人可以访问您指定的文件。&#xA;步骤 配置 frps.toml&#xA;在 frps.toml 文件中添加以下内容：&#xA;bindPort = 7000 配置 frpc.toml&#xA;在 frpc.toml 文件中添加以下内容，确保设置合适的文件路径、用户名和密码：&#xA;serverAddr = &amp;#34;x.x.x.x&amp;#34; serverPort = 7000 [[proxies]] name = &amp;#34;test_static_file&amp;#34; type = &amp;#34;tcp&amp;#34; remotePort = 6000 [proxies.plugin] type = &amp;#34;static_file&amp;#34; # 本地文件目录，对外提供访问 localPath = &amp;#34;/tmp/file&amp;#34; # URL 中的前缀，将被去除，保留的内容即为要访问的文件路径 stripPrefix = &amp;#34;static&amp;#34; httpUser = &amp;#34;abc&amp;#34; httpPassword = &amp;#34;abc&amp;#34; 请根据实际情况修改 localPath、stripPrefix、httpUser 和 httpPassword。&#xA;启动 frps 和 frpc&#xA;通过浏览器访问文件&#xA;使用浏览器访问 http://x.x.x.x:6000/static/，以查看位于 /tmp/file 目录下的文件。系统会要求输入您设置的用户名和密码。</description>
    </item>
    <item>
      <title>为本地 HTTP 服务启用 HTTPS</title>
      <link>/zh-cn/docs/examples/https2http/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/zh-cn/docs/examples/https2http/</guid>
      <description>步骤 配置 frps.toml&#xA;bindPort = 7000 vhostHTTPSPort = 443 配置 frpc.toml&#xA;serverAddr = &amp;#34;x.x.x.x&amp;#34; serverPort = 7000 [[proxies]] name = &amp;#34;test_htts2http&amp;#34; type = &amp;#34;https&amp;#34; customDomains = [&amp;#34;test.yourdomain.com&amp;#34;] [proxies.plugin] type = &amp;#34;https2http&amp;#34; localAddr = &amp;#34;127.0.0.1:80&amp;#34; # HTTPS 证书相关的配置 crtPath = &amp;#34;./server.crt&amp;#34; keyPath = &amp;#34;./server.key&amp;#34; hostHeaderRewrite = &amp;#34;127.0.0.1&amp;#34; requestHeaders.set.x-from-where = &amp;#34;frp&amp;#34; 请注意，您需要根据您的域名和证书路径自行更改上述配置。&#xA;启动 frps 和 frpc&#xA;访问 HTTPS 服务&#xA;打开您的 Web 浏览器，访问 https://test.yourdomain.com。&#xA;通过按照以上步骤进行配置，您将能够为本地 HTTP 服务启用 HTTPS，以实现安全的外部访问。</description>
    </item>
    <item>
      <title>安全地暴露内网服务</title>
      <link>/zh-cn/docs/examples/stcp/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/zh-cn/docs/examples/stcp/</guid>
      <description>某些内网服务，如果直接暴露在公网上，可能存在安全风险。使用 stcp(secret tcp) 类型的代理可以让您安全地将内网服务暴露给经过授权的用户，这需要访问者也部署 frpc 客户端。&#xA;步骤 配置 frps.toml&#xA;在 frps.toml 文件中添加以下内容：&#xA;bindPort = 7000 部署 frpc 客户端并配置&#xA;在需要将内网服务暴露到公网的机器上部署 frpc，并创建如下配置：&#xA;serverAddr = &amp;#34;x.x.x.x&amp;#34; serverPort = 7000 [[proxies]] name = &amp;#34;secret_ssh&amp;#34; type = &amp;#34;stcp&amp;#34; # 只有与此处设置的 secretKey 一致的用户才能访问此服务 secretKey = &amp;#34;abcdefg&amp;#34; localIP = &amp;#34;127.0.0.1&amp;#34; localPort = 22 在访问者机器上部署并配置 frpc&#xA;在想要访问内网服务的机器上也部署 frpc，并创建如下配置：&#xA;serverAddr = &amp;#34;x.x.x.x&amp;#34; serverPort = 7000 [[visitors]] name = &amp;#34;secret_ssh_visitor&amp;#34; type = &amp;#34;stcp&amp;#34; # 要访问的 stcp 代理的名字 serverName = &amp;#34;secret_ssh&amp;#34; secretKey = &amp;#34;abcdefg&amp;#34; # 绑定本地端口以访问 SSH 服务 bindAddr = &amp;#34;127.</description>
    </item>
    <item>
      <title>点对点内网穿透</title>
      <link>/zh-cn/docs/examples/xtcp/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/zh-cn/docs/examples/xtcp/</guid>
      <description>frp 提供了一种新的代理类型 xtcp，用于在需要传输大量数据且不希望流量经过服务器的情况下实现内网穿透。&#xA;与 stcp 类似，使用 xtcp 需要在两端都部署 frpc 以建立直接连接。&#xA;需要注意的是，xtcp 并不适用于所有类型的 NAT 设备，如果穿透失败，可以尝试使用 stcp 代理。&#xA;步骤 配置需要暴露到外网的机器上的 frpc.toml 文件&#xA;在 frpc.toml 文件中添加以下内容，确保设置了正确的服务器地址和端口以及共享密钥 (secretKey)，以及本地服务的 IP 地址和端口：&#xA;serverAddr = &amp;#34;x.x.x.x&amp;#34; serverPort = 7000 # 如果默认的 STUN 服务器不可用，可以配置一个新的 STUN 服务器 # natHoleStunServer = &amp;#34;xxx&amp;#34; [[proxies]] name = &amp;#34;p2p_ssh&amp;#34; type = &amp;#34;xtcp&amp;#34; # 只有共享密钥 (secretKey) 与服务器端一致的用户才能访问该服务 secretKey = &amp;#34;abcdefg&amp;#34; localIP = &amp;#34;127.0.0.1&amp;#34; localPort = 22 在想要访问内网服务的机器上部署 frpc&#xA;在 frpc.toml 文件中添加以下内容，确保设置了正确的服务器地址和端口，共享密钥 (secretKey) 以及要访问的 P2P 代理的名称：</description>
    </item>
    <item>
      <title>虚拟网络 (VirtualNet)</title>
      <link>/zh-cn/docs/examples/virtualnet/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/zh-cn/docs/examples/virtualnet/</guid>
      <description>注意：VirtualNet 是一个 Alpha 阶段的特性，目前不稳定，其配置方式和功能可能会在后续版本中随时调整变更。请勿在生产环境中使用此功能，仅建议用于测试和评估目的。&#xA;概述 虚拟网络（VirtualNet）功能是 frp v0.62.0 中引入的 Alpha 特性，它允许 frp 通过 TUN 接口创建和管理客户端与访问者之间的虚拟网络连接，实现设备间的完整网络连通性。&#xA;本示例将展示如何配置和使用 VirtualNet 功能。更多详细信息和工作原理，请参考 虚拟网络 (VirtualNet) 特性文档。&#xA;启用 VirtualNet 首先，由于 VirtualNet 目前是一个 Alpha 特性，您需要在配置中通过特性门控来启用它：&#xA;# frpc.toml featureGates = { VirtualNet = true } 示例配置 以下示例展示如何在两台机器之间建立虚拟网络连接：&#xA;服务端配置 (机器 A) 在 frpc.toml 中配置虚拟网络地址&#xA;# frpc.toml (服务端) serverAddr = &amp;#34;x.x.x.x&amp;#34; serverPort = 7000 featureGates = { VirtualNet = true } # 配置虚拟网络接口 virtualNet.address = &amp;#34;100.86.0.1/24&amp;#34; [[proxies]] name = &amp;#34;vnet-server&amp;#34; type = &amp;#34;stcp&amp;#34; secretKey = &amp;#34;your-secret-key&amp;#34; [proxies.</description>
    </item>
  </channel>
</rss>
