参考链接:
https://blog.csdn.net/u013144287/article/details/78589643
https://blog.csdn.net/lixiangss1993/article/details/87934562
1.基础知识
正向代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。

反向代理(reverse proxy):是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。我们今天仅讨论TCP和UDP相关的内容。
2.frp使用
准备工作:
1.一台公网服务器
2.一台内网服务器
3.一个客户端
通过配置frp实现客户端对内网服务器的访问
frp下载地址如下
https://github.com/fatedier/frp/releases
可使用github镜像源加快下载
2.1公网服务器配置
根据服务器架构,选择特定安装包
arch![]()
wget https://git.sdut.me/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_386.tar.gz如果是其他架构选择特定架构即可

tar -zxvf frp_0.36.2_linux_386
执行命令解压压缩包
由于在公网服务器上,重点关注s结尾文件

修改frpc.ini配置
[common]
bind_port = 7000
dashboard_port = 7500
token = 123456
dashboard_user = admin
dashboard_pwd = 123456
vhost_http_port = 8081如果没有必要,端口均可使用默认值,token、user和password项请自行设置。
- “bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
- “dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
- “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
- “dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。
- “vhost_http_port”和“vhost_https_port”用于反向代理HTTP主机时使用
执行命令即可
./frps -c frps.ini使用nohup将其运行在后台
nohup ./frps -c frps.ini &关闭代理命令如下
ps -aux | grep frps
sudo kill 21302.2内网服务器配置
下载同样版本的软件到windows
设置frpc.ini如下
[common]
server_addr = X.X.X.X
server_port = 7000
token = 123456
[web]
type = http
local_port = 80
custom_domains = X.X.X.X其中common字段下的三项即为服务端的设置。
- “server_addr”为服务端IP地址,填入即可。
- “server_port”为服务器端口,填入你设置的端口号即可,如果未改变就是7000
- “token”是你在服务器上设置的连接口令,原样填入即可。
- local_port是内网主机开放的web端口
- custom_domains是服务器域名
执行命令

3.测试代理
访问frpweb管理界面

访问外网IP内网端口
成功访问
4.设置frps开机自启动
参考链接:https://blog.csdn.net/weixin_44617722/article/details/105388288
1.添加开机自动启动: vim /etc/rc.local
#!/bin/bash
nohup /usr/local/frp/frps -c /usr/local/frp/frps.ini >/dev/null 2>&1 &
2.添加可执行权限:chmod +x /etc/rc.local
ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
vim /lib/systemd/system/rc-local.service
#新增以下代码
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
# 保存rc-local.service,重启
reboot