内网穿透原理

内网穿透(Net穿透)也即端口映射,笔者粗暴理解是一种能够将外网机器与内网机器(外网无法直接访问的设备)建立通信的一种技术解决方案。

百度百科

尽管有许多穿越NAT的技术,但没有一项是完美的,这是因为NAT的行为是非标准化的。这些技术中的大多数都要求有一个公共服务器,而且这个服务器使用的是一个众所周知的、从全球任何地方都能访问得到的IP地址。一些方法仅在建立连接时需要使用这个服务器,而其它的方法则通过这个服务器中继所有的数据——这就引入了带宽开销的问题。

具体原理详见百度百科=> https://baike.baidu.com/item/NAT%E7%A9%BF%E8%B6%8A

需要资源

一台公网服务器(可以通过IP直接访问)

树莓派(也可以是电脑,以树莓派为例)

安装

本文以frp v 0.13.0为例(具体版本可以自己定,但不保证其他版本能够成功)。

笔者在go 1.7.4版本下编译frp v 0.13.0时会出现如下编译错误,根据frp作者留言,改用go 1.8.3版本编译。

*ht.Server has no field or method Close()

安装golang环境

由于frp工具是基于golang编写,所以需要安装golang环境。

以go1.8.3版本为例(亲测有效)

由于下载的是编译好的包,所以安装很简单。下载后,进行解压,并设置一些环节变量即可。

具体安装步骤详见:https://golang.org/doc/install

安装frp工具

启动 & 使用 frp工具

使用起来很简单,只需要简单修改配置文件后,执行启动命令即可。

具体步骤详见:https://github.com/fatedier/frp/blob/master/README_zh.md


文章出处:胡小旭 => 利用内网穿透frp工具实现外网链接(ssh)内网树莓派设备

Share:

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.