背景:
当下各种原因的复杂环境之下,在外不方便访问家中的内部设备,想寻求一种解决措施——frp
在这里插入图片描述

FRP是一款开源的、高性能的反向代理软件,其全称是Fast Reverse Proxy。它主要用于将一个内网服务暴露到公网上,以便外网用户可以访问该服务。FRP使用简单,支持多种协议,包括TCP、UDP、HTTP、HTTPS等。

一、前置准备

外网服务器一台(或者有公网ip的机器如腾讯服务器);
腾讯优惠券

内网服务器一台(win7/10电脑);

二、下载文件

下载地址:GitHub地址
在这里插入图片描述
关于arm/amd版本:
Linux系统可以通过如下命令确认

~ arch
# 查看当前系统是amd/arm
x86_64
# 返回x86_64就是amd架构的。
~ getconf LONG_BIT
64
# 返回64就是64位的

在这里插入图片描述
我这里确认是AMD64位版本

Linux 0.51.2 版本下载地址:
https://github.com/fatedier/frp/releases/download/v0.51.2/frp_0.51.2_linux_amd64.tar.gz

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

Window 0.51.2 版本下载地址:
https://github.com/fatedier/frp/releases/download/v0.51.2/frp_0.51.2_darwin_amd64.tar.gz

注意客户端与服务端版本尽量要一致

解压

[~] tar -zxvf frp_0.51.2_linux_amd64.tar.gz 
frp_0.51.2_linux_amd64/
frp_0.51.2_linux_amd64/frpc.ini
frp_0.51.2_linux_amd64/frpc_full.ini
frp_0.51.2_linux_amd64/frps_full.ini
frp_0.51.2_linux_amd64/frps.ini
frp_0.51.2_linux_amd64/LICENSE
frp_0.51.2_linux_amd64/frpc
frp_0.51.2_linux_amd64/frps
# 改个名称方便后面操作
[~] mv frp_0.51.2_linux_amd64 frp_0.51.2

三、配置服务端(linux)

# 进入目录
[~] cd frp_0.51.2
# 展开列表
ll
[~ frp_0.51.2] ll
总用量 30768
-rwxr-xr-x 1 www docker 14278656 725 21:39 frpc
-rw-r--r-- 1 www docker    12669 725 21:44 frpc_full.ini
-rw-r--r-- 1 www docker      126 725 21:44 frpc.ini
-rwxr-xr-x 1 www docker 17182720 725 21:39 frps
-rw-r--r-- 1 www docker     5933 725 21:44 frps_full.ini
-rw-r--r-- 1 www docker       28 727 11:31 frps.ini
-rw-r--r-- 1 www docker    11358 725 21:44 LICENSE

# 注意frpc是客户端,如果用不到,相关的都可以删除
# frps是服务端,我用当前主机当服务端,所以需要修改frps.ini
vim frps.ini

端口默认是 7000 ,为了安全,改成15000(注意需要在Linux中和云服务器放火墙都放开该端口)
实际上还有一个web管理端默认端口7500,也是需要放开的
在这里插入图片描述

四、开启面板

方便后期监控状态

vim frps.ini

[common]
bind_port = 15000

# 远程访问监控面板的端口
dashboard_port = 7501

# dashboard user and passwd for basic auth protect
dashboard_user = admin
dashboard_pwd = admin

# dashboard TLS mode
dashboard_tls_mode = false
# dashboard_tls_cert_file = server.crt
# dashboard_tls_key_file = server.key

# enable_prometheus will export prometheus metrics on {dashboard_addr}:{dashboard_port} in /metrics api.
enable_prometheus = true

在这里插入图片描述

服务端基本准备好了

可以直接运行如下命令启动
./frps -c ./frps.ini
但是为了后期自动启动,使用systemctl

五、使用systemctl来控制frps

如Linux服务端上没有安装 systemd,可以使用 yumapt 等命令安装 systemd

#  yum
yum install systemd
# apt
apt install systemd
  1. 进入systemctl目录,创建frps.service
cd /etc/systemd/system/
vim frps.service
# 或者直接
vim /etc/systemd/system/frps.service

  1. 复制下面的代码到文件(frps.service)
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /root/frp_0.51.2/frps -c /root/frp_0.51.2/frps.ini

[Install]
WantedBy = multi-user.target
  1. 相关systemd 命令
systemctl start frps       #启动frps
systemctl restart frps     #重启frps
systemctl stop frps        #停止frps
systemctl status frps   # 查看运行日志
  1. 配置frps开机启动
systemctl enable frps      #服务器开机自动启动frps

六、配置客户端

客户端就直接下载,确实客户端和服务端是一样的,只是调用的文件不同,一个是frpc/frps:
Window 0.51.2版本下载地址:
https://github.com/fatedier/frp/releases/download/v0.51.2/frp_0.51.2_windows_amd64.zip

注意电脑的杀毒软件可能会删除它
在这里插入图片描述

  • 客户端解压,注意只会用到frpc,其他的可以删除
    在这里插入图片描述

  • 为了方便自己写了一个startup.bat脚本。
    在这里插入图片描述

  • 打开frpc.ini,进行相关配置

这里说明一下参数:
[ssh] 实际上它是可以随意命名的,且可以同时配置多个
local_ip为需要映射到外网的主机
local_port 端口为需要映射到外网的主机端口
remote_port 是外网访问的时候
以上配置最终外网访问192.168.1.123:22变成外网访问就是
124.xxx.xxx.xxx:6000(腾讯云服务器公网ip)

在这里插入图片描述

  • 客户端启动
    图片中看到success就是成功启动了
    以上图片中看到success就是成功启动了

最后可以访问服务端的控制台,看看链接状态
http://124.xxx.xx.xx:7501
账号密码在上面的配置中查看
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐