FRP内网穿透

FRP内网穿透

导读

校园网内也就是局域网内部机器由于没有公网IP,因此无法被局域网外部的客户端直接访问。FRP就是这样一个用于内网穿透的应用,它需要一台拥有公网IP的服务器作为中转,实现访问内网机器的目的。比如你在实验室的服务器上,需要部署一个其他服务器或者树莓派也能访问的服务,就需要进行frp内网穿透。

在这里插入图片描述

是什么

  1. FRP是一款开源的内网穿透工具,它可以让外部用户通过公网访问内网中的服务,而不需要暴露内网的IP地址和端口号。FRP的主要原理是通过一个中转服务器,在公网与内网之间建立一个反向代理通道,将公网用户的请求转发到内网中的服务。
  2. 举个例子,如果你在内网中有一个Web服务器,通常情况下只有内网用户才能访问该服务器。但是,如果你想让外部用户也能够访问该服务器,就需要将该服务器暴露在公网上。这时候,你可以使用FRP来实现内网穿透,将Web服务器的端口映射到FRP服务器的公网IP地址和端口号上,外部用户就可以通过该地址访问该服务器了。
  3. FRP支持多种协议,包括TCP、UDP、HTTP和HTTPS等。它可以在不同的操作系统上运行,包括Windows、Linux、Mac OS等。FRP有两个主要组件:服务器端和客户端。服务器端需要在公网上运行,用来转发公网用户的请求;客户端需要在内网中运行,用来将内网服务映射到公网上。

安装与使用

步骤

  1. 访问FRP的官方网站 https://github.com/fatedier/frp ,并下载适合你操作系统的版本。
  2. 解压下载的压缩包到你想要安装的目录。
  3. 配置FRP客户端和服务器端,可以根据官方文档的指引进行配置。配置文件是一个INI格式的文件,包含了各种参数的配置信息。在 [common] 部分中需要配置服务器的IP地址和端口号等信息,在 [xxx] 部分中需要配置具体的服务信息,包括服务的端口号、类型等。需要根据实际情况进行配置。
  4. 在命令行终端中进入到FRP所在的目录,然后启动FRP服务器端和客户端。启动命令格式如下:
  • 启动FRP服务器端(在服务器上运行):

    ./frps -c frps.ini

其中,frps.ini是FRP服务器端的配置文件。

  • 启动FRP客户端(在内网中运行):

    ./frpc -c frpc.ini

其中,frpc.ini是FRP客户端的配置文件。

  1. 通过公网IP地址和端口号访问内网中的服务。
  2. 启动FRP客户端之后,就可以通过公网IP地址和端口号访问内网中的服务了。访问地址的格式为:<public_ip>:<public_port>。其中,public_ip 是FRP服务器的公网IP地址,public_port 是FRP服务器上对应服务的公网端口号。用户可以通过浏览器或者其他工具访问该地址,就可以访问内网中的服务了。

内网与公网理解

如果你的Linux服务器只有内网IP地址,那么它只能在局域网内部访问。其他不在该局域网内的计算机无法直接访问该服务器,因为它没有公网IP地址,也就无法直接被互联网访问。

如果你需要将该服务器的服务暴露到公网,可以使用内网穿透技术或者其他类似的方案,将内网服务映射到公网IP地址和端口上,以供公网用户访问。常用的内网穿透工具包括FRP、ngrok、花生壳等。

具体的配置

以下是一个基本的FRP配置示例,可以用于将本地的SSH服务映射到公网上:

  1. 在FRP服务器上创建一个配置文件 frps.ini,并添加以下内容:

    [common]
    
    bind_port = 7000
    
    vhost_http_port = 8080
    
    dashboard_port = 7500
    
    dashboard_user = admin
    
    dashboard_pwd = admin123
    
    [ssh]
    
    type = tcp
    
    local_ip = 127.0.0.1
    
    local_port = 22
    
    remote_port = 6000
    

    其中,bind_port 是FRP服务器的监听端口,vhost_http_port 是虚拟主机的HTTP访问端口,dashboard_port 是FRP控制面板的访问端口,dashboard_userdashboard_pwd 是控制面板的登录用户名和密码。

    [ssh] 是一个自定义的服务名称,type 指定了服务类型为TCP,local_ip 是本地服务的IP地址,local_port 是本地服务的端口号,remote_port 是映射到公网的端口号。

  2. 在FRP客户端(即需要映射到公网的本地机器)上创建一个配置文件 frpc.ini,并添加以下内容:

    [common]
    
    server_addr = [your.frp.server.com](http://your.frp.server.com)
    
    server_port = 7000
    
    dashboard_port = 7400
    
    dashboard_user = admin
    
    dashboard_pwd = admin123
    
    [ssh]
    
    type = tcp
    
    local_ip = 127.0.0.1
    
    local_port = 22
    
    remote_port = 6000
    

    其中,server_addrserver_port 是FRP服务器的地址和端口号,dashboard_portdashboard_userdashboard_pwd 是客户端控制面板的访问端口、用户名和密码。

    [ssh] 是一个自定义的服务名称,type 指定了服务类型为TCP,local_ip 是本地服务的IP地址,local_port 是本地服务的端口号,remote_port 是映射到公网的端口号。

  3. 在FRP服务器上启动FRP服务:

    ./frps -c frps.ini
    
  4. 在本地机器上启动FRP客户端:

    ./frpc -c frpc.ini
    

    在启动之后,本地SSH服务就会被映射到 your.frp.server.com:6000 这个公网地址上,可以通过该地址来访问本地机器的SSH服务。

原理与流程图

先说结论:比如你现在有两个服务器,两个网段:一个192开头一个10开头,192可以访问10下的服务,但是10无法访问192下的服务,也就是说大的网段不能访问小的,因此你需要在小的网段也就是在192下运行frpc客户端,大的网段也就是10下运行frps服务端,顺序一定要搞清楚!!

FRP实现内网穿透的流程图:

+-----------------+

|                 |

|   FRP服务器    |

|                 |

+-----------------+

  |

  |

  |

+-----------------+

|                 |

|   FRP客户端    |

|                 |

+-----------------+

  |

  |

  |
+-------------------------------+

|                               |

|   内网服务(IP:Port)         |

|                               |

+-------------------------------+
  1. FRP客户端与FRP服务器建立长连接,并向服务器发送需要穿透到公网的服务信息。
  2. FRP服务器在接收到客户端的服务信息后,为该服务分配一个公网IP地址和端口号,并将其映射到客户端指定的IP地址和端口号上。
  3. 外部用户通过访问FRP服务器的公网IP地址和端口号,就可以访问到内网服务。
  4. FRP客户端和服务器之间采用长连接通信,可以保持连接状态,实现实时数据传输。
  5. FRP还支持多种加密方式,保证数据传输的安全性。

需要注意的是,将内网服务映射到公网上存在一定的安全风险,应该采取一些安全措施,以防止未经授权的访问和攻击。

总结

本文主要讲解了frp是什么,怎么用,原理以及配置文件的修改,可以说是很全面了,如果有问题也欢迎来评论区讨论,谢谢大家!!
在这里插入图片描述

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
目录 第一章、需求分析 2 1.1需求分析的任务 2 1.1.1社会需求 2 1.2需求调查 3 1.2.1业务现状 3 1.2.2网络数据流量 3 1.2.3外部要求 4 第二章、功能要求 4 第三章、逻辑设计 5 3.1主干网 5 3.3广域网络 10 第四章、网络物理设计 12 4.1布线系统设计 12 4.2各设备间布线设计: 12 4.2.1光纤的选择: 13 4.2.2管理子系统的布线: 14 4.3中心设备室的选择: 14 4.3.1教师公寓设备间选择 15 4.3.2学生公寓1~3的设备间的选择 15 4.3.3教学楼设备间的选择 16 4.3.4办公楼设备间的选择 16 4.4布线系统:&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;16 4.4.1垂直子系统的布线: 16 4.4.2水平子系统的布线: 17 4.4.3设备间子系统的布线: 18 4.4.4工作区子系统的布线: 19 第五章、网络管理系统 19 5.1系统内部各种网络互连 20 5.2系统的安全性和可靠性 20 第一章、需求分析 1.1需求分析 根据CNNIC 2002年的最新调查结果来看,我国目前的上网总人口已达4580万,其中学生用户占了26 %,是最大的用户群。 另据华为公司市场部提供的资料,中国网民的普及率是1.2%,但在大学生群体中的普及 率是93%。目前87%学生在网吧上网,97%的学生用201校园卡打电话。同时,随着国家信 息化工作的深入开展,提高教育系统信息化水平成为当前工作的重点。而校园网建设则 是教育系统信息化建设的关键,尤其是高校校园网建设。在信息化的建设过程中,它的 作用体现在如下几个方面: 1、校园网能促进教师和学生尽快提高应用信息技术的水平;信息技术学科的内容是发展 的,它是一门应用型学科,因此,为了让学生学到实用的知识,必须给他们提供一个实 践的环境,这个环境离不开校园网。 2、校园网为教师提供了一种先进的辅助教学工具、提供了丰富的资源库,所以校园网是 学校进行教学改革、推行素质教育的一种必不可少的工具。 3、校园网是学校现代化管理的基础,深入、全面的学校信息管理系统必须建立在校园网 上。 4、校园网提供了学校与外界交流的窗口,学校应将校园网与互联网联接,这也是学校信 息化的要求,做到了这一步,通过校园网去了解世界、在互联网上树立学校的形象都是 很容易的。 教育即未来。作为国家最重要的战略工程,如何应用信息技术改造我们传统的教学和管 理手段;如何加深学生对于信息化和信息技术的理解与了解;如何造就同时具备传统和 信息双重文化的一代新人,已成为教育界当前最为紧迫的任务之一。信息技术的应用, 势必极大地推进教育手段和教育内容的革命性变革。 1.1.1社会需求 首先,进行对象研究和需求调查,弄清学校的性质、任务和改革发展的特点,对学校的 信息化环境进行准确的描述,明确系统建设的需求和条件;其次,在应用需求分析的基 础上,确定学校Intranet服务类型,进而确定系统建设的具体目标,包括网络设施、站 点设置、开发应用和管理等方面的目标;第三,确定网络拓扑结构和功能,根据应用需 求、建设目标和学校主要建筑分布特点,进行系统分析和设计;第四,确定技术设计的 原则要求,如在技术选型、布线设计、设备选择、软件配置等方面的标准和要求;第五 ,规划安排校园网建设的实施步骤。 1.2需求调查 1.2.1业务现状 学校拥有计算机上千台,但由于目前各个系都是自己组建自己的内部网络,采用的软件 平台、硬件平台和网络结构各不相同,因此随着学校网络发展和各个学校之间互连网络 的建成,现有的网络结构与水平已经不能适应高速发展的信息网络建设,主要表现在: 1、由于各网络应用系统是各系根据本系自己的教学、实验、工作的需求组建的,因而各 种信息既有大量的冗余,又有相互冲突。同时由于各套网络系统的开发单位不同,技术 水平参差不齐,因此信息的规范化程度低,各部门信息无法共享,交互操作的难度很大 。 2、各系、各工作终端有自己的传输线路,传输速率不等,速率低且安全性、可靠性差, 不利于统一管理,随着工作终端的增多,此问题将日益突出。 3、由于当时组建网络时都是由本专业自己开发,因此存在多种机型,多种操作系统,多 种协议,网络异构等情况。所以很难实现资源共享、系统互访、统一管理,对于后期的 开发难度很大,这将影响实现办公自动化。 4、由于大部分系统没有实现客户/服务器模式。因此系统远程互访时,需要较大的带宽 。 5、由于校园内计算机之间对INTERNET都只能通过自己使用拨号网络方式连接,而目前学 校已经拥有了自己的INTERNET 网络出口与自己的IP地址。这使得这些优势资源大家不能实现共享。 6、随着多媒体教学、远程教育、图象监控等业务的开展,校园网本身的
本处高能:因Frp作者更换新的模块,导致Frp v0.18.0与之前的版本不兼容,如果升级请服务器端同步升级。升级命令: wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh bash install-frps.sh update 首先感谢@sadoneli S大的帮助完成了frp插件web页面的制作。 WARNING:请仔细阅读完本教程1楼和2楼后再动手安装! frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。 *因为frp是go语言写的,所以在路由器上使用的时候,请使用虚拟内存,请使用虚拟内存,请使用虚拟内存。 脚本是业余爱好,英文属于文盲,写的不好,欢迎您批评指正。 安装平台:CentOS、Debian、Ubuntu。 已测试过的平台: CentOS 6 32/64bit CentOS 7 32/64bit Debian 6 32/64bit Debian 7 32/64bit Debian 8 32/64bit Ubuntu 14 32/64bit 一、安装命令这个命令是在你自己的服务器上运行的!是在你自己的服务器上运行的!是在你自己的服务器上运行的!不是在路由器里运行的!不是在路由器里运行的!不是在路由器里运行的! wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh chmod 700 ./install-frps.sh ./install-frps.sh install 二、安装步骤 Loading network version for frps, please wait... frps Latest release file frp_0.8.1_linux_amd64.tar.gz #此步骤会自动获取frp最新版本,自动操作,无需理会 Loading You Server IP, please wait... You Server IP:12.12.12.12 #自动获取你服务器IP地址 Please input your server setting: Please input frps bind_port [1-65535](Default Server Port: 5443): #输入frp提供服务的端口,用于服务器端和客户端通信 Please input frps dashboard_port [1-65535](Default dashboard_port: 6443): #输入frp的控制台服务端口,用于查看frp工作状态 Please input frps vhost_http_port [1-65535](Default vhost_http_port: 80): #输入frp进行http穿透的http服务端口 Please input frps vhost_https_port [1-65535](Default vhost_https_port: 443): #输入frp进行https穿透的https服务端口 Please input privilege_token (Default: WEWLRgwRjIJVPx2kuqzkGnvuftPLQniq): #输入frp服务器和客户端通信的密码,默认是随机生成的 Please input frps max_pool_count [1-200](Default max_pool_count: 50): #设置每个代理可以创建的连接池上限,默认50 ##### Please select log_level ##### 1: info 2: warn 3: error 4: debug ##################################################### Enter your choice (1, 2, 3, 4 or exit. default [1]): #设置日志等级,4个选项,默认是info Please input frps log_max_days [1-30] (Default log_max_days: 3 day): #设置日志保留天数,范围是1到30天,默认保留3天。 ##### Please select log_file ##### 1: enable 2: disable ##################################################### Enter your choice (1, 2 or exit. default [1]): #设置是否开启日志记录,默认开启,开启后日志等级及保留天数生效,否则等级和保留天数无效 设置完成后检查你的输入,如果没有问题按任意键继续安装 ============== Check your input ============== You Server IP : 12.12.12.12 Bind port : 5443 Dashboard port : 6443 vhost http port : 80 vhost https port: 443 Privilege token : WEWLRgwRjIJVPx2kuqzkGnvuftPLQniq Max Pool count : 50 Log level : info Log max days : 3 Log file : enable ============================================== 安装结束后显示: Congratulations, frps install completed! ============================================== You Server IP : 12.12.12.12 Bind port : 5443 Dashboard port : 6443 vhost http port : 80 vhost https port: 443 Privilege token : WEWLRgwRjIJVPx2kuqzkGnvuftPLQniq Max Pool count : 50 Log level : info Log max days : 3 Log file : enable # 将上面信息添加到你的路由器frp穿透插件中吧 ============================================== frps Dashboard: http://12.12.12.12:6443/ # 这个是frp控制台访问地址 ============================================== 三、更新命令 ./install-frps.sh update 四、卸载命令 ./install-frps.sh uninstall 五、服务器端管理命令 /etc/init.d/frps start /etc/init.d/frps stop /etc/init.d/frps restart /etc/init.d/frps status /etc/init.d/frps config /etc/init.d/frps version 七、更多帮助请移步官方帮助文件 https://github.com/fatedier/frp/blob/master/README_zh.md

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会喷火的小火龙

你的鼓励是我最大的创作动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值