【内网穿透】使用frp进行内网穿透

1. 内网穿透

内网穿透(NAT 穿透)是一种技术,用于使处于局域网(内网)中的设备或服务可以被外部网络访问。

由于局域网设备通常使用私有 IP 地址,这些地址在互联网上是不可路由的,因此需要内网穿透技术来实现外部访问。

简单来说,比如你家里有台服务器且没有公网IP。你在学校或者公司想要访问服务器,由于没有公网,你是访问不了的。
在这里插入图片描述
内网穿透解决的就是上面这个问题。归根到底还是公网IP不足的问题。

2. 需要的设备

实现内网穿透,必须要有一台有公网IP的服务器。比如各大厂商的云服务器等等。这台服务器就称之为代理服务器(Proxy Server)。

访问内网的服务器时,直接访问代理服务器,让代理服务器在访问内网的服务器。
只需在代理服务器上部署好环境,即可实现内网穿透。

在这里插入图片描述

3. 需要的工具

如文章标题,使用到的工具就是FRP。就是通过这个软件来实现内网穿透的,具体的内网穿透原理本人也不懂,项目使用GO语言写的,懂Go的可以看看内部实现原理,这篇文章只讲使用。

开源地址:https://github.com/fatedier/frp

3.1 下载FRP

首先,将此项目下载到本地。然后部署到你的代理服务器上和你需要访问的服务器上即可。(部署会在后面3.2讲)

点击Tags,就能找到历史的版本了。
在这里插入图片描述
下载最新版即可
在这里插入图片描述

注意
下载时需要匹配你的CPU 架构的。
如果你不知道你的CPU 架构,使用uname -m 进行查看。
常见的架构包括:

  • x86_64(表示64位x86架构)
  • armv7l(表示32位ARM架构)
  • aarch64(表示64位ARM架构)

如果你是x86_64,下载时选择amd64的即可。
在这里插入图片描述
如果你是aarch64选择arm64即可在这里插入图片描述
其他的参考下面的规则:

  • frp_0.59.0表示的时版本号
  • frp_0.59.0_xxxx: xxxx表示的是适配的操作系统
  • frp_0.59.0_xxx_yyy: yyy表示的就是cpu的架构
  • frp_0.59.0_xxx_yyy.zzz.zz: 表示的是文件压缩格式

下载完成后,发送到你的代理服务器上和自己的服务器即可。
我这里使用的是xshell,发送的时候直接文件托送到xshell即可。使用rz命令也可以进行发送。
在这里插入图片描述

3.2 部署FRP

发送到两台服务器后,解压即可。

tar -zxvf frp_0.59.0_linux_amd64.tar.gz 

解压完成后,进入到目录如下
在这里插入图片描述

  • frpc:是frp的客户端程序,内网的服务器需要启动的程序,代理服务器用不到。
  • frpc.toml : frpc的配置文件
  • frps : 是frp的服务端程序,代理服务器上需要启动的程序,内网的服务器用不到。
  • frps.toml : frps的配置文件
  • LINCENS: 用不到 不用关心

3.2.1 在代理服务器上部署

在代理服务器上部署,只需配置frps.toml文件即可。
在这里插入图片描述

这里面就一个选项,是frps进程绑定的端口号,可以自己设置。保证此端口可以访问即可。

运行frps需要使用此配置文件,需要加-c选项。直接运行的话,配置文件不会生效。
如下:

./frps -c ./frps.toml

运行成功如下:
在这里插入图片描述

3.2.2 在内网服务器上部署

在内网服务器上部署,先配置一下fprc.toml文件。frpc.toml文件配置如下:

在这里插入图片描述

  • serverAddr : 代理服务器的IP地址
  • serverPort : 指定代理服务器的监听端口,在frps.toml指定的端口号。
  • [[proxies]] : 用于定义一个或多个代理规则
  • name : 当前代理的名称,可以自定义
  • type : 指定代理类型tcp或者udp
  • localIP : 内网服务的本地 IP 地址,127.0.0.1即可
  • localPort : 内网服务的本地端口号,这里的22是ssh服务的端口
  • remotePort : 指定 代理服务器上暴露的端口号。

这个配置生效以后,当你访问代理服务器的8888端口,他就会代理到你内网服务器的22端口上。

运行:
和fprs一样,需要使用-c选项指定配置文件。
运行成功如下:(代理服务器的frps需要启动)
在这里插入图片描述

这样就部署成功了。

4. 测试

测试内网穿透是否成功。
经过上面的操作后,当访问代理服务器上8081端口提供的服务时,就会访问到内网的22端口服务,即ssh服务。

此时,新建一个连接,端口号改为frpc.toml配置文件中的remotePort 端口号 。
在这里插入图片描述

进行连接,就会连接到内网的服务器上。输入用户名和密码即可。
在这里插入图片描述
这样就成功的实现了内网穿透,在外网的环境,也能访问内网的服务器了,但前提就是得有公网的服务器。
在这里插入图片描述

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

C++下等马

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

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

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

打赏作者

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

抵扣说明:

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

余额充值