frp转发

简介

注:本博文写的不是很清晰,建议多看官方文档( https://github.com/fatedier/frp )多实践。
frp可以进行端口转发。frp有linux,windows等版本,根据需要可到GitHub下载。
frp里面又有服务端(frps.ini)和客户端(frpc.ini)的配置文件。

linux做服务端进行转发

下载frp(也可以根据自己的需求去GitHub找,GitHub挂全局代理下载很快的,注:以下是截止2021.1.8的最新版)

wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz

解压

tar zxf frp_0.34.3_linux_amd64.tar.gz

修改frps.ini即可,frpc.ini不用管(注:可按需进行配置,不需要的配置直接删掉就是也不影响)

[common]
# frps与frpc通讯的端口
bind_port = 7000      #frp的服务端口,注意区分转发端口和服务端口,是不同的概念

# http请求监听的端口,关于此设置博主未实践过
vhost_http_port = 8888

#端口白名单,不设置就默认都可以
allow_ports = 2000-3000,6081,4000-50000 #端口白名单

# dashboard的用户名密码以及端口,即web可视界面,访问http://ip:7500,使用下面设置的用户和密码登录即可,访问效果图如下
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 123456
token = 123456
# XXX.com,和*.XXX.com都必须可以解析到本服务器IP,注:关于域名这个博主也没有实践过
subdomain_host = XXX.com

服务端启动

./frps -c frps.ini 

windows客户端接收frp转发

客户端是linux还是windows就要使用对应的frp,比如windows的客户端接收转发就要使用windows版本的frp(GitHub都有可以下)
客户端就只需要配置frpc.ini即可
frpc配置:

[common]
server_addr = XX.XX.XX.XX
server_port = 7000
token = 123456   //与服务端的token一致,不然匹配失败无法接收转发
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 444      //本地监听端口
remote_port = 9000   //接收服务器那边9000端口的流量

开启接收:

frpc.exe -c frpc.ini

效果如下(tips:别cmd敲出来,再cd命令访问到该文件夹,麻烦,直接到该文件夹的地址栏敲cmd回车,然后再敲上面的接收命令即可):

设置开机启动(关于这个没有实践过,纯搬运,如果读者没有成功勿喷):
创建后台启动模板
vi /etc/systemd/system/frp.service

frp.service内容如下

[Unit]
Description=frps
After=network.target

[Service]
ExecStart=/root/frp_0.32.0_linux_amd64/frps -c /root/frp_0.32.0_linux_amd64/frps.ini 

[Install]
WantedBy=multi-user.target

启动测试
systemctl start frp.service

开机自启
systemctl enable frp.service

分享一个配置例子

此例子配合spynote食用实测完全ok
服务端是debian9

# frps.ini
[common]
bind_port = 7000
vhost_http_port = 6081
max_pool_count = 20
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 123456
token = fuzamima123

客户端是win10

[common]
server_addr = x.x.x.x
server_port = 7000
token = fuzamima123
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 444
remote_port = 9000

多端口映射

在frpc.ini:

[common]
server_addr = x.x.x.x
server_port = 7000
token = fuzamima123
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 444
remote_port = 9000
[test1]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 9001
[test1]
type = tcp
local_ip = 127.0.0.1
local_port = 446
remote_port = 9002
······

报错提示

1、login to server failed: EOF
vim frpc.ini
frp客户端和服务端的common下添加:

tls_enable = true

参考&&致谢

文章部分参考自EngCM
可以参考文章写得比较详细

posted @ 2021-01-08 17:20  nihinumbra  阅读(422)  评论(0编辑  收藏  举报