使用端口导出功能暴露服务

在 v0.45.0-sakura-2.3 之后,我们在客户端中添加了名为端口导出的功能, 以帮助您在打开正常转发隧道的同时,尝试以打洞的方式暴露本机的服务。

因为访问此功能的隧道流量不会经过我们服务器,我们不会为您使用端口导出的流量计费。

提示

该功能为高级功能,请使用时确定您清楚自己在做什么。

启用此功能需要在网页中启用高级用户模式,请务必仔细阅读弹窗警告。

如果您使用此功能时不启用访问验证(仅在中继模式下可用)或白名单,您可能会遭遇巨大的网络风险。

原理及使用

此功能原理即为常见的 NAT 打洞服务,通过 NAT 时部分防火墙会使内部地址长期唯一对应外部地址,并允许流量进入,此时即成功打洞。

我们在打洞时将尝试通过 UPnP 通过路由器,当您不想在路由器上运行客户端,或路由器是傻路由器时,仍然能为您降低失败几率。

我们提供独立的 ETCP/EUDP 隧道类型仅用于此,同时在 TCP/UDP 隧道的高级用户选项中提供了一个顺带尝试打洞的功能。

直接暴露

启用此模式只需将端口导出选项调整为直接暴露:

在直接暴露模式下,您的本地监听服务将被尝试直接暴露到互联网。

在此模式下,您的服务端可以正确地获得访问者的 IP,不需要 Proxy Protocol 或其他机制的介入。

您需要在使用前将您的本地服务的监听 IP 改为 0.0.0.0 或正确的内网 IP,而不是 127.0.0.1。 如果您不清楚自己的监听 IP,或者希望确认正确修改了监听 IP,请跳转到 如何确认监听 IP

此模式中您的网络流量路径将非常简单明了:

尽管此过程中没有 frpc 的参与,您仍应保持客户端打开,因为它承担了保活的职能。

中继模式

提示

为了保持兼容性,如果您使用 TCP/UDP 隧道,并顺便打洞,请使用中继模式。

启用此模式只需将端口导出选项调整为中继模式:

在中继模式下,您的入网流量将先经过 frpc 中继,因此您不需要修改监听 IP。

使用中继模式时,您将可以使用 访问验证、黑白名单、Proxy Protocol 等功能。

此模式中网络流量路径如下:

使用解疑

开启后日志

在端口导出功能正常开启后,您将看到类似下面这样的日志:

其中红框部分即您的连接信息,尝试直接使用即可。

橙框部分为预检测结果。如果您的检测结果并不提示 NAT 开放,您的端口导出应当可以工作,而是如上图橙框所示,您的网络可能并不适合我们的导出隧道功能,将有很大的可能不可用。

如果您打开了中继模式,您将看到绿框中的中继已启用日志。

如何确认监听 IP

Windows

打开一个管理员终端(最简单的即右键点击开始图标,点击其中的 cmd(管理员)PowerShell(管理员)终端(管理员)),执行:

netstat -an | findstr :<服务器端口>

您看到的回显将类似于:

  TCP    0.0.0.0:<服务器端口>      0.0.0.0:0      LISTENING
          ^-- 这里就是监听 IP