使用到的工具有 :一个公网IP或者一台云服务器 、 frp工具 、一台客户端主机

因为本人没有公网IP,所以这里用云服务器作演示,用的是centos 7.6系统

云服务器端口配置如下图 , 可自行修改

dockerfile构建ftp docker搭建frp_服务器

服务器端的配置

输入 arch   查看系统内核

dockerfile构建ftp docker搭建frp_云服务_02

 

选择对应内核的版本下载frp

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

dockerfile构建ftp docker搭建frp_内网_03

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

dockerfile构建ftp docker搭建frp_云服务_04

 

 

 下载好后解压

tar -zxvf frp_0.44.0_linux_amd64.tar.gz

使用-l命令查看情况

ll -l

dockerfile构建ftp docker搭建frp_dockerfile构建ftp_05

 

 

 把frp_0.440._linux_amd64更改名字,方便后续目录切换

mv frp_0.44.0_linux_amd64 frp

dockerfile构建ftp docker搭建frp_云服务_06

 

 

 进入frp文件

cd frp

查看frp下的文件目录

ll -l

dockerfile构建ftp docker搭建frp_内网_07

 

 

服务器端我们要用到frps 、frps_full.ini和frps.ini文件,其他的都可以删除

rm -f 文件名   例如 rm -f frpc

修改frps.ini文件,按i编辑,按ESC输入:wq回车保存

vim frps.ini
[common]
bind_port = 7000             #客户端和服务端连接的端口
dashboard_port = 7500        #仪表板端口
token = 123                  #连接服务器认证的令牌
dashboard_user = root        #仪表板用户名
dashboard_pwd = admin        #仪表板密码
vhost_http_port = 8081       #http反向代理端口如需代理https只需把http改成https即可

运行frps服务

./frps -c frps.ini

dockerfile构建ftp docker搭建frp_内网_08

 

 

 上图就是运行成功,可按Ctrl + C终止

但是这样运行frps 关闭远程服务器连接或者重启都会关闭frps服务器

接下来我们就解决这个问题

配置systemctl 来控制frp

sudo vim /lib/systemd/system/frps.service

在frps.service添加以下内容,按i编辑,按ESC输入:wq回车保存

[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/root/frp/frps -c /root/frp/frps.ini

[Install]
WantedBy=multi-user.target

启动 frps

sudo systemctl start frps

开机自动启动 frps

sudo systemctl enable frps

重启frps

sudo systemctl restart frps

停止frps

sudo systemctl stop frps

查看frps日志

sudo systemctl status frps

dockerfile构建ftp docker搭建frp_内网_09

 

 

 上图即服务器frp搭建成功

接下来是客户端配置

下载frp,然后解压

dockerfile构建ftp docker搭建frp_云服务_10

 

 

 对frpc.ini内容进行编辑,(右键编辑)

dockerfile构建ftp docker搭建frp_云服务_11

 

 

 

[common]
server_addr =        #你的服务器ip
server_port = 7000   #对应云服务器frps.ini的bind_port端口
token = 123          #你自己设置的服务器端token令牌


[RDP]                 #模块名可以随意命名,这个是我的win系统远程控制配置,  
type = tcp            #访问协议
local_ip = 127.0.0.1  #内网ip,
local_port = 3389     #内网服务端口3389是远程控制端口,linux的是22端口
remote_port = 7001    #自定义内部远程访问端口号

[web]                              #这是我的web服务配置,可自行修改命名        
type = http                        #走的是http协议,因为没买ssl证书用不了https,需要用到https的自行修改
local_ip = 127.0.0.1               #内网ip
local_port = 80                    #内网服务端口
custom_domains =114.132.78.204     #所绑定的公网服务器域名,一级、二级域名都可以或者公网ip

[static_file]                      #这是我的静态文件配置
type = tcp                         
local_ip = 127.0.0.1
remote_port = 7002
plugin = static_file               #开启插件static_file模式
plugin_local_path = D:/publicFile  #文件目录的绝对路径
plugin_http_user = admin           #设置访问文件夹用户名
plugin_http_passwd = admin         #设置访问文件夹密码

用cmd或者power shell进入你解压frp的目录

cd D:\frp   进入你解压的frp文件夹

运行客户端的frp

./frpc -c frpc.ini

dockerfile构建ftp docker搭建frp_内网_12

 

 

 上图就是启动成功

 接下来我们测试一下看看吧

 

dockerfile构建ftp docker搭建frp_dockerfile构建ftp_13

 

 

 

 

dockerfile构建ftp docker搭建frp_云服务_14

 

 

 

dockerfile构建ftp docker搭建frp_dockerfile构建ftp_15

 

 

 

dockerfile构建ftp docker搭建frp_dockerfile构建ftp_16

 

 

 上图是win系统远程桌面,打码的是你云服务器的ip地址,7001是你客户端rempte_port设置的端口

dockerfile构建ftp docker搭建frp_内网_17

 

 

 上图是静态文件访问

接下来是测试web服务80端口在内网主机上运行,然后通过云服务器访问,我自己写了一个图床api接口

dockerfile构建ftp docker搭建frp_云服务_18

 

 

 

dockerfile构建ftp docker搭建frp_内网_19

 

 8081就是云服务器端配置的vhost_http_port 端口

所有配置都测试通过

cmd和power shell一直有个窗口在不太美观可以新建一个bat命令解决

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin

cd "/d D:\frp"  你的frp目录 ,不知道为什么我cmd的需要/d 才能进入目录
frpc.exe

谢谢观看