LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

[点晴永久免费OA]使用FRP搭建内网穿透服务(新版toml配置文件,搭配反向代理使用)

admin
2023年12月29日 0:15 本文热度 1260

01 需求与回顾

数月前我写过一篇《使用FRP搭建内网穿透服务》的博客,当时用的frp版本为0.49.0,如今随着版本升级,配置方式发生了变化。官网文档地址也发生了变化。

02 下载程序包

前往GitHub Releases页面下载:

根据自己实际情况选择,我的是x64的windows系统,服务器也是x64架构。选择图中两项。

解压后,在windows端保存frpcfrpc.toml文件,在Linux端保存frpsfrps.toml文件。

03 编辑.toml文件

3.1 编辑frps.toml

服务器端,编辑frps.toml文件:

# frp服务的特定端口,防火墙也需放开该端口

bindPort = 7000

# 自定义的监听的端口,所有对服务器该端口访问将被转发到本地内网,做了反向代理可不处理防火墙放行

vhostHTTPPort = 86

3.2 编辑frpc.toml

客户端,编辑frpc.toml文件:

# 服务器的公网ip

serverAddr = "xxx.xxx.xxx.xxx"

# 7000端口 与frps.toml一致

serverPort = 7000

 

[[proxies]]

# 自定义名称

name = "web"

# type这里写http

type = "http"

# 本地端口,例如本地启动的服务需要使用8000端口访问,这里就写8000

localPort = 8000

# 服务器的监听端口,与frps.toml一致

remotePort = 86

# 域名或服务器的公网ip,我做了反向代理,这里写的公网ip

customDomains = ["xxx.xxx.xxx.xxx"]

04 启动服务

4.1 启动服务端

  • 方式一:直接启动

    服务器端,传统的启动方式是直接敲命令:

  • # 先cd到frps所在目录

  • ./frps -c ./frps.toml &

  • 这么写,比较麻烦,而且如果要停止进程也比较麻烦,建议采用构建成服务的方式。

  • 方式二:以服务方式启动(推荐)

    安装systemd,通常情况下系统都带得有,没有的情况下使用如下命令安装。

    # 使用 yum 安装 systemd(CentOS/RHEL)
    yum install systemd
     
    # 使用 apt 安装 systemd(Debian/Ubuntu)
    apt install systemd

    创建frps.service服务

    # 创建并编辑该文件
    sudo vim /etc/systemd/system/frps.service

    写入内容

    [Unit]
    # 服务名称,可自定义
    Description = frp server
    After = network.target syslog.target
    Wants = network.target
     
    [Service]
    Type = simple
    # 启动命令,改为实际存放frps的路径
    ExecStart = /path/to/frps -c /path/to/frps.toml
     
    [Install]
    WantedBy = multi-user.target

    以服务的方式管理frps

    # 启动frp
    sudo systemctl start frps
    # 停止frp
    sudo systemctl stop frps
    # 重启frp
    sudo systemctl restart frps
    # 查看frp状态
    sudo systemctl status frps
    # 设置为开机自启
    sudo systemctl enable frps

4.2 启动客户端

服务端启动之后,在windows客户端的frpc所在目录下,打开cmd命令行,输入命令:

./frpc.exe -c ./frpc.toml1

即可启动客户端服务,此时就实现了内网穿透
假设本地有一个服务需要使用http://127.0.0.1:8000访问,经过内网穿透后,访问http://xxx.xxx.xxx.xxx:86即可。

05 配置反向代理(可选)

使用npm做的反向代理,其他情况的反代参考即可。

修改图中红框处,此外,还需要做一些额外的设置才能访问。

location / {
    # 内网ip及端口
    proxy_pass http://10.0.8.16:86;
    # 这里写frpc.toml中配置的域名或公网ip,即配置内容最下面那行,我写的公网ip
    proxy_set_header Host xxx.xxx.xxx.xxx;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

06 windows设置为默认启动(可选)

6.1 创建启动脚本

在frpc所在目录下新建一个run.cmd脚本,并写入以下内容:

:@echo off
:%1(start /min cmd.exe /c %0 :&exit)
cd "C:\Users\xxx\Desktop\frp"
ping -n 10 127.1>nul
frpc.exe -c frpc.toml

其中第3行需要替换成自己的frpc所在目录的绝对路径。
第4行是做了一个延时执行,避免刚开机时网络不稳定时连接失败造成脚本退出。

6.2 设置为开机自启

Win+Q搜索“任务计划程序”

打开“任务计划程序”。

  1. 在“操作”菜单中,选择“创建基本任务…”。

  2. 按照向导设置任务。在“触发器”步骤中,选择“当计算机启动时”。

  3. 在“操作”步骤中,选择“启动程序”,然后浏览选择您的批处理文件。

  4. 在“完成”步骤之前,勾选“打开属性对话框以进行进一步编辑”。
    在属性对话框中,可以选择更多选项,比如“不管用户是否登录都要运行”和“以最高权限运行”。



该文章在 2023/12/29 0:45:45 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved