frp穿透

信息

以下是记录frp穿透搭建过程,供后续参考

mkdir -p /home/frp
cd /home/frp
## 飞牛nas的版本,尽量与nas中客户端版本一致 或者离线下载后拷贝进去
wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz
tar -zxvf frp_0.60.0_linux_amd64.tar.gz
rm -rf frp_0.60.0_linux_amd64.tar.gz
vim frps.toml


配置介绍

1.服务端配置
bindPort = 7000                 # frp服务的特定端口,防火墙也需放开该端口
 
# 服务面板可查看frp服务状态信息
webServer.addr = "0.0.0.0"		# 后台管理地址,默认是127.0.0.1,如果是公网访问则改成0.0.0.0
webServer.port = 7500			# 后台管理端口
webServer.user = "admin"		# (可选)后台登录用户名
webServer.password = "admin"	# (可选)后台登录密码
 
 
#transport.tls.force = true  # 服务端将只接受 TLS链接
#auth.method = 'token'       # 客户端访问验证方式
#auth.token = "54321" 		 # 客户端访问验证密码,frpc要与frps一致
 
 
# 自定义的监听的端口,所有对服务器该端口访问将被转发到本地内网,做了反向代理可不处理防火墙放行
#vhostHTTPPort = 8000
#vhostHTTPSPort = 45443
2、客户端配置
# frpc.toml
transport.tls.enable = true		# 从 v0.50.0版本开始,transport.tls.enable的默认值为 true
serverAddr = "47.76.92.71" # 服务端ip
serverPort = 7000 # 服务端端口
auth.method = 'token' # 客户端访问验证方式
auth.token = '54321' # 客户端访问验证密码
 
[[proxies]]
name = "dy_mysql" # 客户端服务名
type = "tcp" # 通讯方式
localIP = "127.0.0.1" # 客户端的ip(固定)
localPort = 3306 # 客户端服务端口
remotePort = 13306 # 映射到服务端端口(服务器需放行)
 
[[proxies]]
name = "dy_video" # 客户端服务名_一个监控摄像头
type = "tcp" # 通讯方式
localIP = "192.168.6.8" # 客户端的ip(固定)
localPort = 5522 # 客户端服务端口
remotePort = 15522 # 映射到服务端端口(服务器需放行)
 
[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"			# 需要暴露的服务的IP
localPort = 9000				# 将本地9000端口的服务暴露在公网的6060端口
remotePort = 6060 				# 暴露服务的公网入口
 
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
#customDomains = ["xxx.xxx.xxx.xxx"]
 
 
[[proxies]]
name = "web"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["域名或ip"]

服务端示例

# 客户端需要访问的端口,可以随意修改
bindPort = 6667
# 授权方式
auth.method = "token"
# 授权码,请改成更复杂的
auth.token = ""
# dashboard 服务配置,"0.0.0.0" 为本机所有 ip
webServer.addr = "0.0.0.0"
# dashboard 配置的端口,可以随意修改
webServer.port = 6012
# dashboard 配置的用户名和密码,修改成自己的
webServer.user = "admin"
webServer.password = ""

启动服务端

nohup ./frps -c ./frps.toml  &

客户端配置文件:

server_addr:为服务端IP地址,填入即可。
server_port:为服务器端口,填入你设置的端口号即可,如果未改变就是7000
token:是你在服务器上设置的连接口令,原样填入即可。

[xxx]:表示一个规则名称,自己定义,便于查询即可。
type:表示转发的协议类型,有TCP和UDP等选项可以选择,如有需要请自行查询frp手册。
local_port:是本地应用的端口号,按照实际应用工作在本机的端口号填写即可。
remote_port:是该条规则在服务端开放的端口号,自己填写并记录即可

客户端配置文件示例

# /usr/local/frp/frpc.toml
[common]
server_addr = "117.62.206.56"
server_port = 7000

[ssh]
type = "tcp"
local_ip = "127.0.0.1"
local_port = 22
remote_port = 6000

[web]
type = "http"
local_port = 80
custom_domains = ["yourdomain.com"]