一、前言
对于小型团队,团队小,人员少,应用少,但又有部分业务应用系统映射到公网的需求,使用“专线方案”,提供固定公网IP,每月的专线费用好几大千,都够一个员工的工资了;使用“云服务器方案”,对于安全性需求不高的小团队来说,云服务成本太高;使用“动态域名解析方案”,稳定性不高、安全性不高、带宽受限等缺陷,且成本相对较高。通过笔者探索测试,使用“低配置云服务器+frp”方案,安全可控,成本适中,合适小团队对安全性需求不高、业务访问量不大的应用系统。
1、云服务器:公网IP节点、frp服务端服务。
2、frp:提供内网穿透功能。
frp(项目地址:https://github.com/fatedier/frp)是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。官方帮助文档见:https://gofrp.org/docs/。
二、环境准备
1、购买云服务器
以阿里云为例,具体购买步骤此处不赘述,看下配置和成本即可。同时,配置好云服务器的安全组策略。
云服务器配置:1vCPU 1GiB,ESSD云盘 40GiB,操作系统:Ubuntu 22.04 64位,带宽:100M,按流量计费。
成本费用:49.7元/月+0.8元/GB*使用流量。对于小访问量不大的业务系统,成本非常低,即使使用云服务默认配置也相对安全。
2、下载frp
frp releases下载:https://github.com/fatedier/frp/releases
一般选最新的版本下载,选择相应系统版本下载。
三、配置服务端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
解压:
# tar xvf frp_0.44.0_linux_amd64.tar.gz
#ls
为了方便,将解压的文件夹重命名为frp
# mv frp_0.44.0_linux_amd64 frp
查看frp文件夹中的文件:
#cd frp
#ls
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
++++++++++++++++++++++++++++++++++++++++++++++++
配置后如下:
(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
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
配置内容如下:
使用 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
说明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。解压后:
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
浏览器访问:http://云服务IP:7532
配置完成ok了。
原文链接:https://blog.csdn.net/zhengshaolin128/article/details/126795036