简单几步实现内网穿透(Windows部署开源frp)

这篇具有很好参考价值的文章主要介绍了简单几步实现内网穿透(Windows部署开源frp)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇文章所用软件下载

场景

为了避免阐述过多理论,我们直接从需求场景入手,来了解一下为什么需要内网穿透?

小明是少数派的一位咕咕作者,在家里电脑稿某文稿了一半,到公司后打算摸鱼继续稿,怎么办呢(此处假定他没有使用任何云同步软件,也不会使用git,就算会用他也忘了提交)?
此时,小明想通过ssh等远程访问设备文件的方式来下载家里那半稿子,但他的家庭网络是没有分配公网IP的,无法通过互联网直连。内网穿透就这样派上用场了。

所以通俗地讲,内网穿透就是要将流量从公网穿透到内网,让内网设备也能通过公网访问,帮助小明在公司访问家里电脑的文件。

设施

内网穿透的核心思想就是“映射”和“转发”,把内网设备的端口映射到公网设备的端口上,来进行流量转发。

简单几步实现内网穿透(Windows部署开源frp),windows,开源

简单地画一下示意图如上,基础设施由两个核心设备组成:

服务端:拥有公网IP的设备一台,即上图“公网服务器”,开放2个端口7000和6000,用于公网通信。

客户端:要访问的内网设备一台,即上图"内网家用电脑",开放实际应用服务所需的端口(比如ssh服务,默认22端口),并将配置的公网映射端口6000告知服务端。所以服务端开放的那个端口6000实际上是客户端告诉它的。

(以上端口除22以外均为自定义端口,无特殊含义。)

基础设施搭建好以后,小明在公司通过ssh远程访问自家电脑的命令便如下:

# 假定服务器公网IP是119.23.141.248,内网家用电脑用户名是test
ssh -oPort=6000 test@119.23.141.248

这就是我们想达到内网穿透的预期效果——表面上看,家庭内网的电脑就像拥有了公网IP一样暴露在互联网中。

实现

要实现这种基础的内网穿透,一般是以一台带公网IP的服务器作为中转(暂不讨论点对点的)。开源世界中已经有很多较为成熟的工具,接下来就直接以frp为例,简单几步部署就可以搞定啦!

安装

先在官方发布仓库下载对应包,几种常用架构:

  • 比如服务端一般是Linux(Intel 64位CPU):frp_0.42.0_linux_amd64.tar.gz
  • 客户端一般是Windows(Intel 64位CPU):frp_0.42.0_windows_amd64.zip
  • 或macOS(Intel芯片):frp_0.42.0_darwin_amd64.tar.gz;M1芯片:frp_0.42.0_darwin_arm64.tar.gz

解压后会发现里面既有frps也有frpc(Windows版本的可执行程序是exe),前者表示Server(服务端),后者表示Client(客户端),对应同名配置文件frps.inifrpc.ini,对于某一端只会用到其中一套程序。

一、通过 SSH 访问内网机器

解压对应架构的包到服务端,并修改frps.ini文件,设置端口7000,当然你可以自定义为任意端口,只要不和系统上已有端口冲突即可:

[common]
bind_port = 7000

启动服务端frp(-c参数表示config):

./frps -c ./frps.ini

同理,解压包到客户端,并修改frpc.ini文件,在common标签下填入公网服务器的IP和端口(对应服务端设置的端口)。然后设置好ssh服务的远程端口6000即可(local_ip和port一般不用改)。

[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

启动客户端frp:

./frpc -c ./frpc.ini

不出意外的话,客户端的终端会提示你登录服务端成功。

然后在任意一个设备上即可通过公网访问内网设备(即客户端frp所在的那台):

ssh -oPort=6000 你的系统登录用户名@x.x.x.x

二、对外提供简单的文件访问服务

如果我们想通过浏览器直接访问内网设备上的文件,就这样配置客户端(此处以Windows为例),不用改服务端:

[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

[c_static_file]
type = tcp
remote_port = 6001
plugin = static_file
plugin_local_path = C:
plugin_strip_prefix = driver_c
plugin_http_user = 自定义名称,这个和系统登录的用户名不是一个东西,随便写就行
plugin_http_passwd = 自定义密码

[d_static_file]
type = tcp
remote_port = 6002
plugin = static_file
plugin_local_path = D:
plugin_strip_prefix = driver_d
plugin_http_user = 自定义名称,同上
plugin_http_passwd = 自定义密码

我们在上文已配置好ssh的基础上,追加两个文件访问配置c_static_file和d_static_file,这两个标签名字也是自定义的;static_file是文件访问服务的客户端插件名称,这个是固定的;plugin_local_path = C:表示可访问整个C盘,对应下面的是D盘;driver_c和driver_d这两个前缀也是自定义的,便于等会儿在浏览器访问。

修改配置文件后,重新启动客户端frp:

frpc.exe -c frpc.ini

启动成功后,就可以在浏览器直接访问啦:http://x.x.x.x:6001/driver_c/,访问的时候提示你输入用户名和密码就是上面配置的plugin_http_user和passwd。

(不容易注意到的小坑:地址末尾的斜杠/必须填,否则访问不了)

Windows部署frp内网穿透,通过互联网访问自己家里的电脑。

在测试的时候,我的公网服务器是在阿里云上,默认有防火墙规则,所以要记得在后台配置放开相应的端口访问(比如上述的7000和6000)。

一、阿里云部署frp内网穿透工作原理

​ frp是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务, 支持tcp, udp, http, https等协议类型,可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。frp分为服务器端和客户端程序(后文有详细描述)。大致流程如下:

1.服务端运行在具有公网IP的服务器上,并监听某个端口,等待客户端连接。

2.客户端运行在需要穿透的内网机器上,与服务器建立之后,相当于客户端和服务端之间建立了一条隧道,访问服务端的请求会通过隧道转发给内网主机。

3.当互联网用户连接/访问服务器监听的端口时,服务器将用户请求转发到内网客户端,实现内网穿透。

二、准备工作

1.一台具有公网IP的主机,如:阿里云主机(本文以阿里云主机为例)。

2.下载frp软件,下载地址:https://github.com/fatedier/frp/releases,此处下载windows版本。

三、参数配置

frp内网穿透,只需配置相应的参数即可,不涉及程序代码编写。我们把第二步下载的frp程序解压,会得到下面的文件:

简单几步实现内网穿透(Windows部署开源frp),windows,开源

frpc.exe 为客户端软件,将一直运行在客户端(内网主机)。

frpc.ini 为客户端配置,我们主要修改的配置文件之一。

frps.exe 为服务器端软件,将一直运行在阿里云主机。

frps.ini 为服务器端配置,我们主要修改的配置文件之一。

1.部署服务器端

1.1 上传frp程序到服务器。

将解压后的文件上传到服务器上,用记事本打开frps.ini文件,输入一下配置:

简单几步实现内网穿透(Windows部署开源frp),windows,开源

bind_port 用来建立frp服务器端与客户端连接的端口。

vhost_http_port 用来代理http请求的端口。

1.2 运行frps服务器端。

Win+R 打开运行窗口,输入cmd,打开cmd窗口,切换到frp目录,运行:frps.exe。

简单几步实现内网穿透(Windows部署开源frp),windows,开源

出现上面的提示,说明服务器端已正常运行。

1.3 端口规则设置。

通过上面的设置,外网并不能访问阿里云主机的7000和7003端口,还需要在阿里云控制台设置服务器的访问规则。

简单几步实现内网穿透(Windows部署开源frp),windows,开源

简单几步实现内网穿透(Windows部署开源frp),windows,开源

至此,服务器端配置已完成。

2.部署客户端。

1. 复制frp软件到你指定的位置,路径中最好不要有中文或空格。打开frpc.ini文件,键入:

简单几步实现内网穿透(Windows部署开源frp),windows,开源

server_addr = ***.***.***.***(替换为你阿里云主机的外网IP)

server_port = 7000

这两句是用来建立客户端与服务器端的连接用的,端口需与服务器端一致。

2.配置远程连接

[rdp]

type = tcp

local_ip = 0.0.0.0

local_port = 3389

remote_port = 7089

将服务器的7089端口,映射到本地主机的3389端口,同样,需要在阿里云控制台添加安全规则。

3.配置web映射

[web01]

type = http

local_ip = 0.0.0.0

local_port = 82

custom_domains = a.qingshanboke.com

添加http端口映射,服务器端的端口是7003,所以映射后的访问地址为:

http://a.qingshanboke.com:7003,一定要记得加上端口号。

四、写批处理启动frp

在frp程序目录下,新建start.bat文件,录入:

简单几步实现内网穿透(Windows部署开源frp),windows,开源

简单几步实现内网穿透(Windows部署开源frp),windows,开源

将此脚本设为开机启动,或者创建window定时任务,或者作为windows服务都可以。

另外,frpc_full.ini、frps_full.ini 是所有配置参数,里面有注释的,可以根据自己需要进行配置,上面我们只用到了rdp和http,其他端口映射,ssh等,都是可以的,自行研究了。文章来源地址https://www.toymoban.com/news/detail-832199.html

到了这里,关于简单几步实现内网穿透(Windows部署开源frp)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 神卓互联内网穿透教程,简单几步教会你

    神卓互联内网穿透教程,简单几步教会你 删除线格式 神卓互联是一个可以进行内网穿透系统,在这方面是非常有优势的,而且它使用起来也非常简单,一般来说几个简单的步骤就可以完成完穿透了。能够进行一键内网穿透的,所以使用起来非常的方便,对我们也是起到很大

    2024年02月11日
    浏览(30)
  • 免费开源的内网穿透工具-FRP安装与配置

      FRP是一款内网穿透工具,首先要一台带公网IP的服务器用作服务端(Linux),需要被穿透的内网服务器作为客户端   FRP的Github地址   下载FRP:    FRPS服务端的安装:   需要有一台具备公网IP的机器或云服务器,我用的是阿里云服务器,具有公网IP的机器(云服务

    2024年02月12日
    浏览(32)
  • 【Linux】frp内网穿透详细教程(简单易懂)

    frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。 frp 主要由两个组件组成:客户端(frpc) 和 服务端(frps)。通常情

    2024年04月16日
    浏览(27)
  • CentOS 7 部署frp穿透内网

    本文将介绍如何在CentOS 7.9上部署frp,并通过示例展示如何配置和测试内网穿透。 在家庭网络环境中,如果你想在外部访问到家里的局域网设备,通常情况下需要拥有公网IP。然而,由于IPv4地址资源有限,运营商很少会提供公网IP给家庭用户,除非你愿意支付额外费用。虽然

    2024年02月20日
    浏览(23)
  • frp内网穿透(windows和服务器)

     1.frp下载 https://github.com/fatedier/frp/releases  windows端可以下载windows版本,服务器和客户端尽量保持版本一致,当前最新版本为0.43.0. 2.外网服务器frp服务端配置    2.1  使用    命令创建一个新的文件夹frp,然后在文件夹下使用命令:   2.2 解压,并进入解压文件夹   2 .3 删掉

    2024年02月05日
    浏览(48)
  • 69.9K Star,最强开源内网穿透工具:frp

    作为一名开发者,有很多场景需要用到内网穿透,比如:我们在接入一些大平台做第三方应用时,在本地开发微信公众号工具的时候需要让微信平台能否访问到本地提供的接口。除此之外,还有很多其他场景,也会用到,比如:把放在家里的NAS或服务器暴露到公网上,这样在

    2024年02月14日
    浏览(25)
  • FRP实现内网穿透

    使用旧笔记本电脑安装Centos当作服务器使用,配置了网络后Centos可以访问外网了。当我想要在其他网络环境下连接我家里的服务器,怎么办呢,因为没有公网IP所以只能通过连接内网IP访问使用。如果在其他网络环境下显然是无法连接家里的内网IP的,以下提供2种解决方案:

    2024年02月19日
    浏览(33)
  • 使用frp实现内网穿透

    本篇博客最早发布于实验室公共博客,但已无人维护,现迁移至个人博客 一打五师兄走之前留了一块树莓派给我,暑假闲来无事拿出来玩玩 如果每次都连接显示屏和键盘使用有点麻烦而且低级 正常笔记本和树莓派都连着实验室的WIFI,网段一样,是可以ssh远程登录的 但我突

    2024年02月09日
    浏览(29)
  • 如何搭建frp实现内网穿透?

    所谓内网穿透,也就是局域网能够直接通过公网的ip去访问,极大的方便用户的日常远程的一些操作的使用。比如nas的远程访问,个人博客的搭建等等。 然而,从公网中访问自己的私有设备向来是一件难事儿。 比如自己的主力台式机、NAS等等设备,它们可能处于路由器后,或

    2024年02月10日
    浏览(36)
  • frp 实现 http / tcp 内网穿透(穿透 wordpress )

    同步发布在个人笔记frp 实现 http / tcp 内网穿透(穿透 wordpress ) 前面有笔记记录了我们内网穿透的方案: 服务 内网端口 公网服务器 ip 期望实现的公网端口 http 网页应用 80 domain.com 8080 ftp 文件服务器 90 domain.com 9090 frp 工具实现的是内网服务器与公网服务器之间的通信,它由

    2024年04月25日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包