前言
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
官网GitHub:/fatedier/frp
官网文档:/docs/
下载与安装
安装包:/fatedier/frp/releases
以Ubuntu为例,执行命令下载:
wget /fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
执行命令解压:
tar -zxvf frp_0.44.0_linux_amd64.tar.gz
服务端(公网IP设备):保留文件frps
和frps.ini
客户端(局域网设备):保留文件frpc
和frpc.ini
服务端配置(frps.ini)
[common]bind_port = 8888token = this_is_your_tokendashboard_port = 10000dashboard_user = usernamedashboard_pwd = passwordvhost_http_port = 12888
配置完成后,服务端完成了这些事情:
配置了 frp 服务监听端口 8888配置了访问秘钥为 “this_is_your_token”配置了 dashboard 的 port、用户名、密码,访问公网IP:10000,输入用户名密码即可登陆后台配置了监听 12888 端口代理 http 请求
快速启动服务端,执行:
./frps -c ./frps.ini
更多配置,详见:/docs/reference/server-configures/
客户端配置(frpc.ini)
[common]# 公网IP和服务端监听端口,以及连接秘钥server_addr = 188.188.188.188 server_port = 8888token = this_is_your_token[ssh_local]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 10099[static_file]type = tcpremote_port = 11099plugin = static_file# 要对外暴露的文件目录plugin_local_path = /home/xxxx/xxx/share# 用户访问 URL 中会被去除的前缀,保留的内容即为要访问的文件路径plugin_strip_prefix = staticplugin_http_user = uuuuuuusernameplugin_http_passwd = ppppppppassword[web_01]type = httplocal_port = 12888custom_domains =
配置完成后,服务端完成了这些事情:
common:把服务端的IP、监听端口告诉客户端,然后配置好秘钥以顺利连接ssh_local:ssh连接,访问公网IP:10099 即可转发到内网机器22端口static_file:公开文件,访问公网IP:11099 输入user和password就可访问共享文件web_01:http映射,访问:12888 即可发起内网IP:12888 的HTTP请求
快速启动客户端,执行:
./frpc -c ./frpc.ini
注意:应配置防火墙放通上述端口。
开机自启
使用systemd
来控制 frps,需要先安装systemd
,然后在/etc/systemd/system
目录下创建一个frps.service
文件,写入以下内容:
[Unit]# 服务名称,可自定义Description = frp serverAfter = network.target syslog.targetWants = network.target[Service]Type = simple# 启动frps的命令,需修改为您的frps的安装路径ExecStart = /path/to/frps -c /path/to/frps.ini[Install]WantedBy = multi-user.target
管理frp服务:
# 启动frpsystemctl start frps# 停止frpsystemctl stop frps# 重启frpsystemctl restart frps# 查看frp状态systemctl status frps
配置 frps 开机自启:
systemctl enable frps