内网穿透原理

内网穿透(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

Share:

Leave a Reply

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

It might take a few hours to show up the new comment because of our caching system.

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