建站第五篇 使用frp实现内网穿透

原文传送门

1 什么是内网穿透

简单来说,内网穿透是一种实现不同局域网内的主机之间通过互联网进行通信的技术。

内网穿透,即NAT穿透,NAT英文全拼是Network Address Translator(网络地址转换器),说白了就是凡是经过NAT发出去的数据包,都会通过一定的端口转换(而非使用原端口)再发出去,也就是说内网和外网之间的通信不是直接由内网机器与外网NAT进行,而是利用内网对外网的NAT建立起SESSION与外网NAT的SESSION进行。

目前可用于内网穿透的开源工具主要有:ngrok和frp。

  • ngrok。ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。支持TCP协议,不支持UDP协议。ngrok有两个大版本,1.开源在github,用golang编写。2.闭源。速度方面,不如frp。
  • frp。frp同样开源,同样用golang编写。frp支持UDP协议。frp的配置十分简单省心,功能也令人满意。

2 为什么选择frp

Frp是在github上的完全开源项目,作者是中国人而且项目还在维护中。文档比较详细,可自行搭建,速度不错且理论上可以开放任何想要的端口。

3 什么是frp

根据官网定义:

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

4 怎么配置frp

先看看frp的架构

image.png

从图中可以看出,我们需要:

  • 一个有公网ip的主机,部署frps
  • n个需要被访问的内网服务器,分别部署frpc

用户通过公网ip访问frps,再映射到对应的内网服务器。
下面一起来看看frp是怎么配置的,本文仅介绍tcp的配置。

4.1 安装frp

不论对于服务端还是客户端,安装过程都是一样的。以下是官方说明:

根据对应的操作系统及架构,从 Release 页面下载最新版本的程序。
将 frps 及 frps.ini 放到具有公网 IP 的机器上。
将 frpc 及 frpc.ini 放到处于内网环境的机器上。

4.2 通过 ssh 访问内网机器

修改 frps.ini 文件,这里使用了最简化的配置:

  • frps.ini
[common]
bind_port = 7000
  • 启动 frps:
./frps -c ./frps.ini

修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x;

  • frpc.ini
[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
  • 启动 frpc:
    ./frpc -c ./frpc.ini

  • 通过 ssh 访问内网机器,假设内网用户名为 test:

ssh -oPort=6000 test@x.x.x.x
或
ssh -p 6000 test@x.x.x.x

ssh的配置是tcp转发的最简配置,也可以用于没有域名的web服务转发,只需要frpc配置好需要映射的端口号即可。

比如在内网搭建了一个web服务,访问端口号是9000,可以在frpc.ini中这样配置。

[web]
type = tcp
local_ip = 127.0.0.1
local_port = 9000
remote_port = 10000

然后开放公网ip主机的10000端口,这样就可以通过http://公网ip:10000来访问内网的web服务。


本文链接:https://deewooo.github.io/post/%E5%BB%BA%E7%AB%99%E7%AC%AC%E4%BA%94%E7%AF%87-%E4%BD%BF%E7%94%A8frp%E5%AE%9E%E7%8E%B0%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/
本作品由 IvyWooo 采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可,转载请注明出处。


参考文章

《frp官方文档》,https://github.com/fatedier/frp/blob/master/README_zh.md#%E9%80%9A%E8%BF%87-ssh-%E8%AE%BF%E9%97%AE%E5%85%AC%E5%8F%B8%E5%86%85%E7%BD%91%E6%9C%BA%E5%99%A8

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335