1、Frp介绍
Frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。
Frp 项目官网: https://github.com/fatedier/frp
1.1、Frp工作原理
服务端运行,监听一个主端口,等待客户端的连接;- 客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;- 服务端fork新的进程监听客户端指定的端口;- 外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;- 客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。
2、配置教程
想要配置Frp穿透,首先必须先要有一台具有公网ip(即:可以外网访问)的服务器。配置教程主要分为两个部分,一是服务器端的配置;二是客户端的配置。
2.1、服务器端配置
2.1.1、下载Frp配置文件
1
| wget https://github.com/fatedier/frp/releases/download/v0.57.0/frp_0.57.0_linux_amd64.tar.gz
|
2.1.2、解压并重命名Frp配置文件
1 2
| tar -zxvf frp_0.57.0_linux_amd64.tar.gz mv ./frp_0.57.0_linux_amd64 ./frps
|
2.1.3、进入目录并打开配置文件
2.1.4、修改配置文件
1 2 3 4 5 6 7 8 9 10
| bindPort = 7000
auth.token = "public"
webServer.addr = "0.0.0.0" webServer.port = 7500 webServer.user = "admin" webServer.password = "admin"
|
2.1.5、设置Frp后台启动
1
| sudo vim /lib/systemd/system/frps.service
|
1 2 3 4 5 6 7 8 9 10 11 12
| [Unit] Description=fraps service After=network.target syslog.target Wants=network.target
[Service] Type=simple
ExecStart=/xxx/frps/frps -c /xxx/frps/frps.toml
[Install] WantedBy=multi-user.target
|
2.1.6、Frp启动相关命令
1 2 3 4 5 6 7 8 9 10
| sudo systemctl start frps
sudo systemctl enable frps
sudo systemctl restart frps
sudo systemctl stop frps
sudo systemctl status frps
|
2.1.7、验证服务端是否启动
浏览器中访问http://服务端ip:后台管理端口,输入后台管理账号及密码即可。
2.2、客户端配置
2.1.1、下载Frp配置文件
1
| wget https://github.com/fatedier/frp/releases/download/v0.57.0/frp_0.57.0_linux_amd64.tar.gz
|
2.1.2、解压并重命名Frp配置文件
1 2
| tar -zxvf frp_0.57.0_linux_amd64.tar.gz mv ./frp_0.57.0_linux_amd64 ./frpc
|
2.1.3、进入目录并打开配置文件
2.1.4、修改配置文件
1 2 3 4 5 6 7 8 9 10 11 12
| serverAddr = "x.x.x.x" serverPort = 7000
auth.token = "public"
[[proxies]] name = "ssh" type = "tcp" localIP = "127.0.0.1" localPort = 22 remotePort = 1234
|
2.1.5、设置Frp后台启动
1
| sudo vim /lib/systemd/system/frpc.service
|
1 2 3 4 5 6 7 8 9 10 11 12
| [Unit] Description=frapc service After=network.target syslog.target Wants=network.target
[Service] Type=simple
ExecStart=/xxx/frps/frpc -c /xxx/frps/frpc.toml
[Install] WantedBy=multi-user.target
|
2.1.6、Frp启动相关命令
1 2 3 4 5 6 7 8 9 10
| sudo systemctl start frpc
sudo systemctl enable frpc
sudo systemctl restart frpc
sudo systemctl stop frpc
sudo systemctl status frpc
|