导航
导航
文章目录
  1. 什么是frp
  2. 准备工作
  3. 安装使用
    1. 配置服务端
    2. 配置客户端
    3. 设置自启

使用 frp 轻松实现内网穿透

很多时候,没有公网IP是一件很不方便的事,特别是在 WEB 开发中,解决问题方法有很多,内网穿透就是其一,而内网穿透的方法有很多种,例如使用 花生壳ngroklocaltunnel 等,想了解的可以自行谷歌百度,因为本文章主要讲的是 frp

什么是frp

按官方文档所说:“frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。”,实际上 frp 的官方中文文档,有非常详尽的讲解,建议可以直接阅读官方的中文文档(本文只是入门实战小白文)。

准备工作

首先,你需要一台有公网IP的服务器(下文称服务端),一台需要实现内网穿透的电脑(下文称客户端),以及一个域名,如果你只是用于建立 SSH反向代理 可以不需要域名。

安装使用

**下面的示范以本人刚买的腾讯云服务器 CentOS发行版 为主。**

根据机器的操作系统,在 frp Release 页面中找到对应的 frp 程序,然后分别下载到在 服务端 和 客户端 中。

考虑到天朝的万里长城,提供了 linux_amd64windows_amd64 两个版本的百度云下载地址:

链接: https://pan.baidu.com/s/1nRFtWi3PLHr6uJnry4HT-Q 密码: 6666

配置服务端

使用SSH连接上服务器后,然后使用 wget 下载,tar 解压 frp 。

如果你服务器没有 wget 命令,请先安装一下 sudo yum install

1
2
3
4
5
wget https://github.com/fatedier/frp/releases/download/v0.16.0/frp_0.16.0_linux_amd64.tar.gz

tar -zxvf frp_0.16.0_linux_amd64.tar.gz

cd frp_0.16.0_linux_amd64

然后修改服务端配置文件 。
注意:frps.ini才是服务端配置文件,frpc.ini则是客户端配置文件,如有强迫症可以把frpc开头的文件删除。

1
vi frps.ini

修改成

1
2
3
4
5
[common]
bind_port = 8000
vhost_http_port = 8001
privilege_token = 73zls
subdomain_host = 73zls.com

[common]是必须有的配置,
bind_port 设定 frp 服务端端口,
vhost_http_port 设定 http 访问端口,
privilege_token 设定 frp 身份验证,
subdomain_host 设定 frp 自定义二级域名。

到这里服务端就配置完成了,接下来只要启动就好。

1
2
3
./frps -c ./frps.ini
#如果想让其后台运行可以使用 nohup
nohup ./frps -c ./frps.ini

配置客户端

依旧是先下载,由于我本机是 Windows ,所以直接打开浏览器下载解压即可。

1
https://github.com/fatedier/frp/releases/download/v0.16.0/frp_0.16.0_windows_amd64.zip

上面服务端就说过了 frpc 是属于客户端的,那么我们就应该修改 frpc.ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[common]
server_addr = 服务器IP
server_port = 8000
privilege_token = 73zls

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 8022


[web]
type = http
local_port = 80
subdomain = test

[common]中的 server_addr 填 frp 服务端的ip,server_port 填 frp 服务端开启的端口, privilege_token 填 frp 服务端设置的身份验证。

[ssh]中的local_port填本机的ssh端口(别问我Window的ssh端口怎么来)。

[web]同上,local_port填群晖的web端口。这里创建了两个http反向代理是为了分别映射群晖两个重要的端口,5000和80,前者用于登录群晖管理,后者用于群晖的Web Station和DS Photo。

保存配置,输入以下指令运行frp客户端。

1
./frpc -c ./frpc.ini

现在可以用 SSH 通过服务器 IP:8022 在其他地方 连接客户端SSH。

通过浏览器访问 http://test.73zls.com:8001 即可访问到客户端的 80端口 Web 网站。

frp 的使用和配置相当简单,如有疑问或者想了解关于 frp 的其它功能可以查看官方的 中文文档

设置自启

Linux 下常用的进程管理器 supervisor 来管理该服务。

首先需要安装 supervisor

1
sudo yum install supervisor

然后在 /etc/supervisor/conf.d 下新建一个配置文件 frp.conf,输入以下内容。

1
2
3
[program:frp]
command = /home/www/frp_0.16.0_linux_amd64/frps -c /home/www/frp_0.16.0_linux_amd64/frps.ini
autostart = true

command应该是你放置 frp 软件的位置。

然后启动 supervisor,如果事先已经安装好了 supervisor 那么就重新启动。

之后查看一下 supervisor 的运行状态,看看 frp 是否已在运行。

1
2
3
4
# 重启supervisor
sudo systemctl restart supervisor
# 查看supervisor运行状态
sudo supervisorctl status

f

支持一下
扫一扫,支持一下