frp的工作模式无非几种,接下来分别梳理一下没中工作模式的服务端和客户端的配置方式



1.简单的tcp类型单一端口的代理

例如通过ssh访问内网,3389端口的rdp远程桌面,或其他的单一tcp端口的服务

配置方式

frps.toml(或.ini):配置


bindPort = 7000
auth.method = "token"
auth.token = "12345678"
#开启服务器端控制面板
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"

frpc.toml(或.ini):


#x.x.x.x为服务器的公网ip
serverAddr = "x.x.x.x"
serverPort = 7000

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "0.0.0.0"
localPort = 22
remotePort = 6000

使用方式


#x.x.x.x为服务器的公网ip
ssh -o Port=6000 [email protected]
或者
ssh [email protected] -p 6000


2.通过域名转发http访问

配置方式

frps.toml(或.ini):配置


bindPort = 7000
auth.method = "token"
auth.token = "12345678"
vhost_http_port = 8080
#开启服务器端控制面板
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"

frpc.toml(或.ini):


serverAddr = "129.146.175.75"
serverPort = 7000

[[proxies]]
name = "web"
type = "http"
localPort = 80
customDomains = ["www.yourdomain.com"]

使用方式


http://www.yourdomain.com


3.简单的文件下载服务

配置方式

frps.toml(或.ini):配置


bindPort = 7000
auth.method = "token"
auth.token = "12345678"
vhost_http_port = 8080
#开启服务器端控制面板
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"

frpc.toml(或.ini):


serverAddr = "129.146.175.75"
serverPort = 7000
[[proxies]]
name = "test_static_file"
type = "tcp"
remotePort = 6000
[proxies.plugin]
type = "static_file"
# 本地文件目录,对外提供访问
localPath = "/tmp/file"
# URL 中的前缀,将被去除,保留的内容即为要访问的文件路径
stripPrefix = "download"
httpUser = "admin"
httpPassword = "admin"

使用方式

http://x.x.x.x:6000/download


4.点对点内网穿透stcp xtcp代理

配置方式

这个配置需要3个配置,服务器端,内网中被访问的主机,主动访问的主机

服务器端:(绿机)

frps.toml


bindPort = 7000
auth.method = "token"
auth.token = "12345678"
vhost_http_port = 8080
#开启服务器端控制面板
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"
内网中被访问的主机

serverAddr = "x.x.x.x"
serverPort = 7000
# 如果默认的 STUN 服务器不可用,可以配置一个新的 STUN 服务器
# natHoleStunServer = "xxx"

[[proxies]]
name = "p2p_ssh"
type = "xtcp"
# 只有共享密钥 (secretKey) 与服务器端一致的用户才能访问该服务
secretKey = "abcdefg"
localIP = "127.0.0.1"
localPort = 22
主动访问的主机(蓝机)

serverAddr = "x.x.x.x"
serverPort = 7000
# 如果默认的 STUN 服务器不可用,可以配置一个新的 STUN 服务器
# natHoleStunServer = "xxx"

[[visitors]]
name = "p2p_ssh_visitor"
type = "xtcp"
# 要访问的 P2P 代理的名称
serverName = "p2p_ssh"
secretKey = "abcdefg"
# 绑定本地端口以访问 SSH 服务
bindAddr = "127.0.0.1"
bindPort = 6000
# 如果需要自动保持隧道打开,将其设置为 true
# keepTunnelOpen = false

使用方式


 ssh -oPort=6000 [email protected]

已有 7 条评论

  1. 如何设置tls传输?证书如何生成和配置?自己根据官方文档配置了很久,提示证书用不了。可否直接用自己申请好的域名证书?能教一下配置过程吗?

    1. @swanby

      可以啊,直接再cloudflare上拿个证书来也可以用啊.直接指定证书位置就可以了

  2. 老王,我已经关注了你啊,你出品的东西方方面面都很不错啊~~~~~

    1. @zk

      感谢支持啊朋友

    2. @zk

      感谢关注,哈哈

发表评论