在Ubuntu 18.04上安装frp

在微信开发中,需要一个有域名的服务器作为后端可信任服务器。 这个开发,调试带来了很多麻烦,解决的方法就是使用内网穿透工具,让内网中的开发机器也能具有外部可访问的域名。 当然,网上已经有一些或免费,或收费的内网穿透服务可以直接使用。 本文介绍的是使用开源项目 frp 来搭建直接的内网穿透服务。

为完成本文的实列,你需要有一台能在外网访问的服务器,可以在阿里、腾讯或华为这些云服务商那里购买,价钱不贵。 如果需要用自己的域名进行内网穿透,也可以再购买一个域名并完成必要的认证。为方便后文描述,假设:

外网服务器地址为: 173.178.10.45
域名为: examples.net
服务器系统为: ubuntu 18.04
客户端系统为: Windows 10

下载 frp 服务端

在 frp 官网下载, 选择 frp_0.33.0_linux_amd64.tar.gz。

也可在 ubuntu 中直接执行一下命令进行下载:

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

下载完成后,解压,可以看到目录中包括了服务端(frps)和客户端(frpc)的执行程序和配置样例文件。为避免后面操作混淆,你可以把所有 frpc 的文件删除掉。

安装 frp 服务器

  1. 将 frps 复制到 /usr/bin 目录中
1
sudo cp frps /usr/bin
  1. 新建名为 /etc/frp 的目录
1
sudo mkdir /etc/frp
  1. 将 frps_full.ini 拷贝到上一步中建立的 /etc/frp 目录中, 并改名为 frps.ini
1
sudo cp frps_full.ini /etc/frp/frps.ini
  1. 新建 /var/frp 目录,用于存放运行日志
1
sudo mkdir /var/frp
  1. 根据需要,编辑 /etc/frp/frps.ini 配置文件

我只修改了下面几行:

1
2
3
4
5
6
7
8
bind_port = 1500
vhost_http_port = 1580
vhost_https_port = 1543
dashboard_port = 1300
dashboard_user = admin
dashboard_pwd = 123456
log_file = /var/frp/frps.log
token = abcd1234

bind_port - 用来和客户端通信的端口,要与客户端的设置一致
vhost_http_port - frps 服务的 web 端口
vhost_https_port - frps 服务的 web 端口(https)
dashboard_port - frps 提供了一个Web管理界面,这里配置的是管理界面的端口
dashboard_user - 管理界面的用户名
dashboard_pwd - 管理界面的密码
token - frps 和 frpc 连接的 token , (用于简单的客户端认证)

注意: 学员根据自己环境的情况修改以上的配置信息

并注释掉最后的两个 plugin

1
2
3
4
5
6
7
8
9
# [plugin.user-manager]
# addr = 127.0.0.1:9000
# path = /handler
# ops = Login

# [plugin.port-manager]
# addr = 127.0.0.1:9001
# path = /handler
# ops = NewProxy
  1. 复制安装包中 systemd 目录下的 frps.service 文件到 /var/systemd/system 中:
1
sudo cp systemd/frps.service /var/systemd/system
  1. 启动 frps 服务
1
sudo systemctl start frps

可以用 status 子命令检查 frps 服务启动、运行情况

1
sudo systemctl status frps

如果安装没有问题,应该看到类似以下的输出

1
2
3
4
5
6
7
8
9
10
11
● frps.service - Frp Server Service
Loaded: loaded (/lib/systemd/system/frps.service; enabled; vendor preset: ena
Active: active (running) since Wed 2020-06-10 20:21:45 CST; 19h ago
Main PID: 32475 (frps)
Tasks: 5
Memory: 6.7M
CPU: 2.461s
CGroup: /system.slice/frps.service
└─32475 /usr/bin/frps -c /etc/frp/frps.ini

Jun 10 20:21:45 VM-0-4-ubuntu systemd[1]: Started Frp Server Service.
  1. 设置开机启动
1
sudo systemctl enable frps

安装 frp 客户端

因为客户端时运行在 windows 10 上的,因此从 官网下载 文件 frp_0.33.0_windows_amd64.zip

解压以后可以看到 frpc 的执行文件,这就是客户端程序了。

新建一个 frpc.ini 的文件(文本文件)

以下的培训信息:

1
2
3
4
5
6
7
8
9
10
11
[common]
server_addr = 173.178.10.45
server_port = 1500

# for authentication
token = abcd1234

[web]
type = http
local_port = 8080
custom_domains = api.examples.net

其中 server_port 与服务端配置项 bind_port 对于, token 与服务端 token 对于。

然后就可以启动 frp 客户端了,执行:

1
frpc.exe -c frpc.ini

启动以后,在启动开发机上的开发环境,比如 IDEA 中的 Spring Boot 项目,默认运行在 8080 端口。

设置 DNS 服务

在 DNS 的管理界面, 设置一个 DNS 的 A 记录, 在案例中设置为:

1
api.examples.net  173.178.10.45

设置好以后就可以用浏览器访问

1
http://api.examples.net:1500

设置多个 web 服务

只需要在客户端的配置中进行修改:

1
2
3
4
5
6
7
8
9
[web]
type = http
local_port = 8080
custom_domains = api.examples.net

[web2]
type = http
local_port = 4000
custom_domains = web.examples.net

注意:custom_domains 需要不同

本文标题:在Ubuntu 18.04上安装frp

文章作者:晨星

发布时间:2020年06月11日 - 15:06

最后更新:2020年06月11日 - 18:06

原始链接:https://www.mls-tech.info/linux/ubuntu-18-frp/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。