对于某些服务来说如果直接暴露于公网上将会存在安全隐患。
使用 stcp(secret tcp) 类型的代理可以避免让任何人都能访问到要穿透的服务,只有自己才可访问,但是访问者也需要运行另外一个 frpc。
以下示例将会创建一个只有自己能访问到的 ssh 穿透服务代理。
frps.ini服务端配置
[common]
bind_addr = 0.0.0.0
bind_port = 7000
privilege_token = 12345678
启动 frpc,转发内网的 ssh 服务,配置如下,不需要指定远程端口:
待对方访问
frpc.ini客户端配置
[common]
server_addr = 服务端IP
server_port = 7000
privilege_token = 12345678
[secret_ssh]
type = stcp
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22
在要访问这个服务的机器上启动另外一个 frpc,配置如下:
要访问对方
frpc.ini客户端配置
[common]
server_addr = 服务端IP
server_port = 7000
privilege_token = 12345678
[secret_ssh_visitor]
type = stcp
role = visitor
server_name = secret_ssh #同上面[secret_ssh]一致
sk = abcdefg #同上面一致
bind_addr = 127.0.0.1
bind_port = 2222
说明:
bind_addr = 127.0.0.1绑定监听本地IP
bind_port = 2222绑定监听本地端口,可自定义。
本地SSH工具通过 127.0.0.1:2222,既可访问到已穿透的SSH服务。
server_name = 要访问的穿透服务名称。
sk = 只有 sk 一致的用户才能访问到此服务,可自定义。
role = stcp 的访问者,可自定义。
注意:这是最精简使用的方法实例,如你有更多要求,请参考详细参数阅读,而进行编写过。