使用端口导出功能暴露服务
在 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
打开一个管理员终端(最简单的即右键点击开始图标,点击其中的 cmd(管理员)
或 PowerShell(管理员)
或 终端(管理员)
),执行:
netstat -an | findstr :<服务器端口>
您看到的回显将类似于:
TCP 0.0.0.0:<服务器端口> 0.0.0.0:0 LISTENING
^-- 这里就是监听 IP
执行:
netstat -an | grep LISTEN | grep :<服务器端口>
您看到的回显将类似于:
tcp 0 0 0.0.0.0:<服务器端口> 0.0.0.0:* LISTEN
^-- 这里就是监听 IP