1.部署frp服务端

服务端建议部署在国内VPS、国内NAT VPS、国外CN2 GIA VPS上,以提供良好的访问体验。


打开 frp下载页面,根据自己服务器内核下载最新版的frp,我的云服务器是ubuntu ,所以下载 frp_0.36.2_linux_amd64.tar.gz,如果装了宝塔面板的话,可以直接复制到服务器并解压,没有也可以用ftp工具上传到服务器(windows上传请参考:Bitvise连接Linux服务器教程,mac系统上传请参考:Mac电脑连接Linux教程),也可以ssh连接到服务器后用wget下载:

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

绝大部分服务器系统都是64位,因此本教程直接让你下载amd64的压缩包。如果你用的树莓派等特殊服务器,请换成相应架构的安装包。

1.2.解压

服务器上解压安装包:tar -zxvf frp_0.36.0_linux_amd64.tar.gz

由于我装了宝塔面板,所以直接上传并解压

1.3. 修改frps.ini

进入解压后的目录:由于我安装在etc/下所以 cd /etc/frp,然后用vim/nano等编辑器编辑frps.ini文件(可以下载到本地,编辑好后再上传上去),填入下面的内容:

[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
vhost_http_port = 6081     #访问客户端web服务自定义的端口号
# 授权码,请改成更复杂的
token = 12345678
 
#自定义二级域名
#subdomain_host = xx.abc.com #自己的二级域名
# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true
 
# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3

详细配置请查看官方文档

1.3.1. 自定义二级域名

在多人同时使用一个 frps 时,通过自定义二级域名的方式来使用会更加方便。

通过在 frps 的配置文件中配置 subdomain_host,就可以启用该特性。之后在 frpc 的 http、https 类型的代理中可以不配置 custom_domains,而是配置一个 subdomain 参数。

只需要将 *.{subdomain_host} 解析到 frps 所在服务器。之后用户可以通过 subdomain 自行指定自己的 web 服务所需要使用的二级域名,通过 {subdomain}.{subdomain_host} 来访问自己的 web 服务。

**
假如域名为:abc.com
去域名的控制面板添加解析 *.javen 到 121.35.99.12

1.4. 设置和启动frp服务

cd 到安装frp的目录

后台启动frps程序

nohup ./frps -c ./frps.ini > /dev/null 2>&1 &

查看frp是否启动成功

ps aux | grep frps

停止运行

ps -aux|grep frp| grep -v grep
root      3600  0.1  0.1 110188  9484 pts/0    Sl   15:04   0:00 ./frpc -c ./frpc.ini

然后kill -9 进程号

kill -9 3600

注意:这些命令执行成功的前提是进入了解压后的frp目录下(黑窗口执行过cd frp命令)

./frpc: cannot execute binary file: Exec format error如果出现这种错误,说明下载的frp的系统架构和安装环境的系统架构不匹配。这个时候只要去下载安装对应的系统架构的frp进行安装就可以解决。

1.5. 防火墙放行端口

添加监听端口

ufw allow 7000

添加管理后台端口

ufw allow 7500

查看防火墙放行端口

ufw status

看到7000,7500端口,则放行成功

注意:

  1. 我的服务器是ubuntu如果是linux或者centos 6,请使用firewall/iptables工具放行端口;
  2. 7000和7500两个端口记得改成和frps.ini配置的一样

1.6. 配置安全组
由于我是阿里云服务器,登录阿里云,找到自己的服务器,选择网络安全》安全组》配置规则

入方向分别配置7000端口和7500端口

1.7 成功运行

服务端已经配好接下来就可以配置客户端了

2.部署frp客户端

1.1.安装

安装这一块具体请看frp服务端,只是客户端需要修改frpc.ini文件,服务端需要修改frps.ini文件,启动也是一样,客户端只需要启动frpc,接下只需修改frpc.ini文件即可

1.2.修改frpc.ini

[common]
server_addr = 120.56.37.48   #公网服务器ip
server_port = 7000            #与服务端bind_port一致
 
#公网通过ssh访问内部服务器
[ssh]
type = tcp              #连接协议
local_ip = 127.0.0.1 #内网服务器ip
local_port = 22         #ssh默认端口号
remote_port = 6000      #自定义的访问内部ssh端口号
 
#公网访问内部web服务器以http方式
[web]
type = http         #访问协议
local_port = 8081   #内网web服务的端口号
custom_domains = xxx.xx.com   #所绑定的公网服务器域名,一级、二级域名都可以
1.3.启动
cd 到安装frp的目录
#后台启动frpc程序
nohup ./frpc -c ./frpc.ini > /dev/null 2>&1 &
#前台启动frpc
./frpc -c ./frpc.ini
#根据自己的需求选择前台还是后台启动frpc
#查看frp是否启动成功
ps aux | grep frps
#停止运行
ps -aux|grep frp| grep -v grep
root      3600  0.1  0.1 110188  9484 pts/0    Sl   15:04   0:00 ./frpc -c ./frpc.ini
#然后kill -9 进程号
kill -9 3600
1.4.访问
(1)外网ssh访问内网服务器(直接使用配置里面数据演示)

ip:120.56.37.48  port:6000   用户名:linux服务器的用户  密码:linux服务器的密码        或者

ip:120.56.37.48  port:22   用户名:linux服务器的用户  密码:linux服务器的密码            或者

ip:xxx.xx.com  port:6000   用户名:linux服务器的用户  密码:linux服务器的密码         或者

ip:xxx.xx.com  port:22   用户名:linux服务器的用户  密码:linux服务器的密码

(2)自定义绑定域名访问内网web服务(直接使用配置里面数据演示),这里的端口用的是服务端配置vhost_http_port这个端口,如果要用https,也可以在服务端配置vhost_https_port端口

xxx.xx.com:6081

3.遇到的问题与总结

3.1.注意事项

配置好服务端后,请开放服务器防火墙端口,阿里云服务器需要配置安全组需要配置规则

3.2.frp启动遇到的问题

./frpc: cannot execute binary file: Exec format error如果出现这种错误,说明下载的frp的系统架构和安装环境的系统架构不匹配。这个时候只要去下载安装对应的系统架构的frp进行安装就可以解决。

最后编辑:2021年04月18日 ©著作权归作者所有

已有 2 条评论

  1. 文章不错交个朋友

  2. 小白看了,表示不是很懂,但还是感谢博主的分享

发表评论

正在加载 Emoji
×