这篇文章的初始来源于我的第一节计算机网络课,对于内网和外网,学过网络的应该不会懵逼。

外网机器是无法访问到内网机器的。

我的第一节计算机网络课

现在ip地址普遍采用IPv4,IPv4中规定IP地址长度为32,即有2^32-1个地址;而IPv6中ip地址的长度为28,即有2^128-1个地址。夸张点说就是,如果IPV6被广泛应用以后,全世界的每一粒沙子都会有相对应的一个IP地址。所以造成外网机器是无法直接访问内网机器的。所以便有了内网穿透工具。–今天的主角frp

frp全名:Fast Reverse Proxy。FRP 是一个使用 Go 语言开发的高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。

https://github.com/fatedier/frp

那么我们现在就开始配置frp吧。

  • 设备准备
  1. 公网ip一个、公网服务器一台
  2. 公网服务器绑定域名
  3. 内网服务器一台(此处演示机器为MT7620 PandoraBox路由器)
  4. 内网服务器部署一个web服务(PandoraBox路由器部署了php服务 绑定88端口)
  • 功能实现
  1. 外网服务器通过ssh访问内网服务器
  2. 域名端口访问内网web服务
  • 服务端配置

1.frps下载(根据对应的操作系统及架构下载 链接)解压
2.配置frps.ini配置文件(如下)

配置说明:[common]是必须要配置的信息。

bind_port为frps(服务端)与frpc(客户端)连接的端口。

vhost_http_port为http访问端口。

(注意端口是否开启以及是否被占用,不推荐使用80,3306等等一些软件的默认端口)

3.将frps 和已经配置好的frps.ini 上传到服务器(windows 推荐putty 获取winscp)

4.修改frps权限

5.运行frps(检查端口是否被占用)

 

 

服务端的配置就到这里暂时结束了。

  • 客户端配置

1.frps下载(根据对应的操作系统及架构下载 链接)解压
2.配置frps.ini配置文件(如下)

 

配置说明:当然[common]还是必须配置的部分。

server_addr为服务端ip地址。

server_port为与服务端连接的端口,应该与bind_port相同。

type为内网服务类型。

custom_domains为内网群晖映射的域名。

local_ip为群晖地址。

local_port为群晖的端口。

3.将frpc 和已经配置好的frpc.ini文件上传至路由器上
4.修改frpc权限
(与上述类似)
5.运行frpc(检查端口是否已经安装了web服务以及是否被占用)

客户端:

服务端:

成果:

1.尝试从服务端通过ssh连接上客户端

连接失败?看看客户端怎么提示。

难道路由器没有开启ssh?
原来: 路由器的端口应该选择未指定,网关端口打上勾。

尝试ssh重新连接

看看网页能打开管理界面。

到这里外网通过ssh连接路由器已经完成了,通过http://域名:88 也可以p访问路由器所安装的php服务。(可以远程整蛊舍友网络了)

以上实例加上nginx方向代理对学校一些内网平台进行穿透


发表评论

电子邮件地址不会被公开。 必填项已用*标注