使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例

一、前言

对于小型团队,团队小,人员少,应用少,但又有部分业务应用系统映射到公网的需求,使用“专线方案”,提供固定公网IP,每月的专线费用好几大千,都够一个员工的工资了;使用“云服务器方案”,对于安全性需求不高的小团队来说,云服务成本太高;使用“动态域名解析方案”,稳定性不高、安全性不高、带宽受限等缺陷,且成本相对较高。通过笔者探索测试,使用“低配置云服务器+frp”方案,安全可控,成本适中,合适小团队对安全性需求不高、业务访问量不大的应用系统。

1、云服务器:公网IP节点、frp服务端服务。

2、frp:提供内网穿透功能。

frp(项目地址:https://github.com/fatedier/frp)是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。官方帮助文档见:https://gofrp.org/docs/。

二、环境准备

1、购买云服务器

以阿里云为例,具体购买步骤此处不赘述,看下配置和成本即可。同时,配置好云服务器的安全组策略。

使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例插图

云服务器配置:1vCPU 1GiB,ESSD云盘 40GiB,操作系统:Ubuntu 22.04 64位,带宽:100M,按流量计费。

成本费用:49.7元/月+0.8元/GB*使用流量。对于小访问量不大的业务系统,成本非常低,即使使用云服务默认配置也相对安全。

2、下载frp

frp releases下载:https://github.com/fatedier/frp/releases

使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例插图1

一般选最新的版本下载,选择相应系统版本下载。

三、配置服务端frps(以ubuntu22.04为例)

1、下载frp

笔者服务端下载的版本为:frp_0.44.0_linux_amd64.tar.gz

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

使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例插图2

解压:

# tar xvf frp_0.44.0_linux_amd64.tar.gz

使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例插图3

#ls

为了方便,将解压的文件夹重命名为frp

# mv frp_0.44.0_linux_amd64 frp

使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例插图4

查看frp文件夹中的文件:

#cd frp

#ls

使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例插图5

frps、frps.ini、frps_full.ini,都是服务端的文件。s的含义——server(服务);frpc、frpc.ini、frpc_full.ini,都是客户端的文件。c的含义——client(客户)。

2、修改配置文件frps.ini

# vi frps.ini

配置内容如下:

+++++++++++++++++++frps.ini配置+++++++++++++++++++++++++++

[common]

# frp监听的端口,默认是7000,可以改成其他的

bind_port = 7000

# 授权码,请改成更复杂的, 这个token之后在客户端会用到

token = 52010

# 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 = 180

++++++++++++++++++++++++++++++++++++++++++++++++

配置后如下:

使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例插图6

(3)注册frps服务

为了方便使用,服务端需要随时监听网络请求。在 Linux 系统下,使用systemd 可以方便地控制 frp 服务端 frps 的启动和停止、配置后台运行和开启自启。要使用 systemd 来控制 frps,需要先安装 systemd,然后在 /etc/systemd/system 目录下创建一个 frps.service 文件。如Linux服务端上没有安装 systemd,可以使用 yum 或 apt 等命令安装 systemd。

#yum install system 或者 apt install systemd

Ubuntu22.04默认是安装了systemd。

新建frps.service文件:

#vi /etc/systemd/system/frps.service

写入内容以下内容:

+++++++++++++++++++ frps.service 文件内容+++++++++++++++++++++++

[Unit]

# 服务名称,可自定义

Description = frp server

After = network.target syslog.target

Wants = network.target

[Service]

Type = simple

# 启动frps的命令,需修改为您的frps的安装路径

ExecStart = /root/frp/frps -c /root/frp/frps.ini

[Install]

WantedBy = multi-user.target

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

配置内容如下:

使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例插图7

使用 systemd 命令,管理 frps

启动frp

#systemctl start frps

停止frp

#systemctl stop frps

重启frp

#systemctl restart frps

查看frp状态

#systemctl status frps

配置 frps 开机自启。

# systemctl enable frps

3、测试

浏览器访问:http://云服务IP:7500

使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例插图8

说明frps安装成功。

四、配置客户端frpc(以windows为例)

1、下载frp

笔者客户端下载的版本为:frp_0.44.0_windows_amd64.zip,下载地址:https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_windows_amd64.zip。解压后:

使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例插图9

2、修改配置文件frpc.ini

+++++++++++++++++++ frpc.ini文件内容+++++++++++++++++++++++

[common]

server_addr = 云服务器公网ip

# 与frps.ini的bind_port一致

server_port = 7000

# 与frps.ini的token一致

token = 52010

# 配置RDP服务

[ssh]

type = tcp

local_ip = 127.0.0.1

local_port = 3389

# 这个自定义,之后再rdp连接的时候要用

remote_port = 6000

# 配置http服务,可用于小程序开发、远程调试等,如果没有可以不写下面的

[web]

type = http

local_ip = 192.168.100.1

local_port = 80

remote_port = 7532

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

关于客户端的配置示例,参见官方文档:https://gofrp.org/docs/examples/

3、测试

打开cmd执行:frpc.exe -c frpc.ini

使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例插图10

浏览器访问:http://云服务IP:7532

使用“低配置云服务器+frp”方案搭建低成本公网应用服务实践案例插图11

配置完成ok了。

原文链接:https://blog.csdn.net/zhengshaolin128/article/details/126795036

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享