frp概述
frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。frp 采用 C/S 模式,将服务端部署在具有公网 IP 机器上,客户端部署在内网或防火墙内的机器上,通过访问暴露在服务器上的端口,反向代理到处于内网的服务。 在此基础上,frp 支持 TCP, UDP, HTTP, HTTPS 等多种协议,提供了加密、压缩,身份认证,代理限速,负载均衡等众多能力。
下图是frp官网:https://gofrp.org/
GitHub地址:https://github.com/fatedier/frp
下载frp
由于frp是go语言开发,因此可以直接下载可执行程序,没有任何依赖。一般通过GitHub的releases下载:https://github.com/fatedier/frp/releases
版本自己挑选,我这里只是做个示范
- 资源:
安装服务器端(frps)
上传到服务器
修改文件权限
不然会包错,我这里图方便,所以直接全部设置成777了
修改配置文件frps.ini
[common]
# 这个默认端口是7000,就是客户端和服务端通信的,不是你转发的那个端口
# 如果这个要改了,客户端的7000也要改成和这里一样。
bind_port = 6660
# 这个是frp的web管理控制台的用户名密码和登录端口
dashboard_user = admin
dashboard_pwd = aaa@Wcb123
dashboard_port = 6661
# 这个token之后在客户端会用到,相当于客户端登录服务器端,毕竟这个东西不能随便给人用,自己随便输入一串字符串就行
token = wertyuioqazxcvbnjhgfcvbn
# 心跳连接:必须得有,frp 0.43.0版本如果不加,60秒就会自动断开连接!
# 服务器就加这一条,客户机每台都要加。
heartbeat_timeout = 30
运行frpsc
./frps -c frps.ini
出现【Start frps success】代表运行成功
此时访问 x.x.x.x:7500 并使用自己设置的用户名密码登录,即可看到仪表板界面,如果不能看到,但是确实启动成功了,请去自己买的云服务器里开放端口。
至此,我们的服务端仅运行在前台,但是Ctrl+C停止或者关闭SSH窗口后,frps 均会停止运行,所以进行如下配置
配置systemctl进行开机启动
vim /lib/systemd/system/frpc.service
# 在frps.service里添加以下内容
[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
# 启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/usr/local/wcb/frp_0.43.0_linux_amd64/frps -c /usr/local/wcb/frp_0.43.0_linux_amd64/frps.ini
[Install]
WantedBy=multi-user.target
systemctl常用命令
#启动
sudo systemctl start frpc
#关闭
sudo systemctl stop frpc
#重启
sudo systemctl restart frpc
#查看状态
sudo systemctl status frpc
设置开机自动启动
sudo systemctl enable frpc
安装客户端(frpc)
复制到文件夹
修改配置文件frpc.ini
[common]
# 你frp服务器的公网ip地址
server_addr = 0.0.0.0
server_port = 6660
# token与frps.ini 相同
token = wertyuioqazxcvbnjhgfcvbn
# 这里取名随意,一般有意义就行
[ssh]
# 穿透协议类型,可选:tcp,udp,http,https,stcp,xtcp,这个设置之前必须自行搞清楚应该是什么
type = tcp
# 你当前内网服务器的网卡IP地址,不要用127.0.0.1
local_ip = 0.0.0.0
# 你要转发的服务端口
local_port = 10000
# 你要映射到公网上的那个端口
remote_port = 6662
# 服务器与客户机之间的心跳连接:如果没有,每隔60秒就会自动断开连接!!!
heartbeat_timeout = 30
运行frpc
frpc.exe -c frpc.ini
这个时候打开fpr服务器端界面就可以确认是否成功了