一、起因
家里部署了Nas,在出租屋里直接使用frp访问外网服务器转发的是可以用,但是,流量得多贵啊,还有中间商赚带宽。于是想了一下,在出租屋的路由上部署frp客户端,使用xtcp
协议,打洞直连,速度快还不需要流量。
二、流程
前提条件:
- 一台公网frps服务器
- 家里Nas,已经配置好 SMB文件共享(端口445)、WebDav(端口80,可选端口443),其他自行发挥。
- 出租屋解锁SSH的小米路由,我家是小米路由器 AX3000T 解锁 SSH
- 小米路由IP: 192.168.1.1
- WebDav域名: nas.zengwu.com.cn
三、配置
服务器和nas端的frp安装比简单,去frp releases 下载linux_amd64.tar.gz版本就可以了,这里点重讲一下小米路由上的安装和配置。
1. 服务器frps配置
服务器frps只要一个基本的端口配置就可以了,其他的根据个人情况而定
# 服务器端口
bindPort = 5000
# 权限认证
auth.method = "token"
auth.token = "123456"
# 其他配置
2. 家里Nas frpc配置
这里配置445、80二个端口的xtcp和stcp,使用frp的Fallback机制。
优势:打洞失败时可以走stcp连接,保持Nas可以一直连接。
劣势:不知道什么时候失败走的stcp,这里会消耗服务器流量。
如果怕消耗流量,可以只配置xtcp
# 服务器域名端口
serverAddr = "公网服务器ip或域名"
serverPort = 5000
# 权限认证
auth.method = "token"
auth.token = "123456"
# smb stcp 协议配置,默认端口445
[[proxies]]
name = "STCP-SMB"
type = "stcp"
secretKey = "123456"
localIP = "127.0.0.1"
localPort = 445
transport.useEncryption = true
transport.useCompression = true
# smb xtcp 协议配置,默认端口445
[[proxies]]
name = "XTCP-SMB"
type = "xtcp"
secretKey = "123456"
localIP = "127.0.0.1"
localPort = 445
transport.useEncryption = true
transport.useCompression = true
# web stcp 协议配置,默认端口80
[[proxies]]
name = "STCP-Web"
type = "stcp"
secretKey = "123456"
localIP = "127.0.0.1"
localPort = 80
transport.useEncryption = true
transport.useCompression = true
# web xtcp 协议配置,默认端口8
[[proxies]]
name = "XTCP-Web"
type = "xtcp"
secretKey = "123456"
localIP = "127.0.0.1"
localPort = 80
transport.useEncryption = true
transport.useCompression