/ 技术 / 3752浏览

在服务器上部署Frp 实现内网穿透

文章目录
  • 什么是Frp
  • 为什么使用 frp ?
  • 服务端部署
  • 客户端配置
  • 测试使用
  • 进程守护
  • 由于国内家庭宽带几乎没有给用户分配固定ip,所以有时需要让外网的设备访问到内网的机器就需要用到内网穿透。市面上比较知名的提供这类服务的产品有花生壳、Teamview、向日葵远控等,但几乎都是收费的且不能绑定自己的域名,不是很方便。所以就自己在服务器上部署了一个穿透服务。

    什么是Frp

    frp是一种快速反向代理,可帮助您将NAT或防火墙后面的本地服务器公开到Internet。到目前为止,它支持TCPUDP以及HTTPHTTPS协议,在这些协议中,请求可以通过域名转发到内部服务。frp还具有P2P连接模式。

    为什么使用 frp ?

    通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

    • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
    • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
    • 代理组间的负载均衡。
    • 端口复用,多个服务通过同一个服务端端口暴露。
    • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
    • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
    • 服务端和客户端 UI 页面。

    项目地址||官方文档

    服务端部署

    查看系统架构选择相应的版本

    frp服务端在windows和linux系统下等可以部署运行,但各个版本之间又存在差异,所以要根据系统的架构选择相应的版本进行下载安装,以Linux为例,在linux系统中输入命令uname -a可以直接显示 Linux 系统架构信息。

    输出信息为:Linux VM-8-10-centos 4.18.0-80.el8.x86_64 #1 SMP Tue Jun 4 09:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux 选择frp_0.34.3_linux_amd64.tar.gz

    下载对应的服务端文件到服务器上,解压后只保留frps.ini、frps两个文件。

    编辑frp.ini,设置端口号

    [common]
    bind_port = 端口号

    服务端配置完毕,连接服务器并进入到frp所在目录通过命令 ./frps -c ./frps.ini 启动服务端

    success即表示成功

    客户端配置

    下载相应的客户端文件,我本地使用windows系统且系统为64位所以下载frp_0.34.3_windows_amd64.zip 下载后解压任意目录都可。建议给文件夹重命名一个简约的名称。在客户端仅仅保留frpc.ini、frpc两个文件,需要编辑的是frpc.ini文件。

    在frpc.ini中写入以下代码

    [common]
    server_addr = 填写远程服务器的ip
    server_port = 填写服务器frps.ini中配置的端口号
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 3389
    remote_port = 穿透使用的端口号,可任意填写但要在安全组中开放

     在windows开始搜索PowerShell

    通过cd命令打开frpc文件夹,输入启动客户端的命令./frpc -c ./frpc.ini

    客户端配置完毕

    测试使用

    配置完frp服务后,就可以在外网访问一些内网的服务了。本文演示映射的是3389端口,windows远程连接端口,所以可以远程连接内网的计算机。

    首先要在本地计算机开启远程管理功能(该功能目前仅在windows专业版和企业版可开启)

    开启这个功能后就可以在其他设备上远程管理这台计算机了。甚至可以使用微软的Microsoft Remote Desktop工具在手机端远程管理计算机。

    参考文章:使用手机管理你的Windows

    登录地址:IP:端口

    账号:本地计算机用户名

    密码:一般为开机密码

    进程守护

    如果需要在后台长期运行,就需要守护服务

    服务端

    如果安装有宝塔面板地话可以在插件市场安装Supervisor管理器

    在插件中进行如下配置,其中运行目录要选择frp所在目录,启动命令./frps -c ./frps.ini 前一定要加上路径,非绝对路径是无法启动的

    客户端配置

    在frp目录下创建一个bat文件,写入以下代码

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

    启动bat文件即可

    rathole

    rathole,类似于 frpngrok,是另一个安全、稳定、高性能的内网穿透工具,用 Rust 语言编写。用法和frp类似

    项目地址:https://github.com/rapiz1/rathole

     

    这里荒芜寸草不生 后来你来这走了一遭 奇迹般万物生长 这里是我的心

    0

    1. This post has no comment yet

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注