您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

终于弄懂内网穿透知识了

时间:2020-07-30 11:11:40  来源:  作者:
终于弄懂内网穿透知识了

 

内网穿透概念

百度百科是这么表述的:

内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。

简单的表述就是:

让外网能够访问本地的服务。

通俗的例子是这样的:

假设你本机电脑搭建了一个博客网站,想让深圳的朋友看一眼效果,那么通过这个内网穿透技术,就可以给远在深圳的同学直接电脑/手机访问网站。

结构图

终于弄懂内网穿透知识了

结构图

这里说明一下:

•User:互联网外的主机

•frps:frp的服务端,它是一台拥有公网IP的服务器地址。

•frpc: frp的客户端,它会跟frp服务端进行沟通。

•tcp or http service:提供tcp或者http的服务,比如你电脑启动了一个网页服务器。

流程

根据上面的图,讲解下大致的流程:

1.frps所在的服务器(比如开放了公网端口7000),对外提供这个服务。

2.frpc配置frps的信息,连接到frps,建立一条通道。

3.frpc配置好本地的端口(比如5432端口)和对应公网端口(80端口)之间的关系。

4.当User用户访问frps所在的服务器开放的端口(如公网80端口),frps接收到连接请求之后马上把这连接请求通过先前建立好的隧道转发到frpc内网主机。

5.内网主机收到隧道发来的数据,进行内网服务【tcp or http service】的数据请求,直到【tcp or http service】服务返回了响应数据。

6.内网主机再将数据返回给frps服务端。

7.frps服务器的服务(80端口)返回给User用户相应的资源。

部署过程

终于到正题了,不容易。

1.下载

去官网下载(https://github.com/fatedier/frp/releases)相应平台的压缩包,这里我是64位linux系统。

$ wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz

2.服务端配置

2.1 解压

$ tar zxf frp_0.33.0_linux_amd64.tar.gz 
$ cd frp_0.33.0_linux_amd64

2.2 服务端解压后删除客户端相关的配置(非必须的操作)

$ rm frpc*

2.3 配置服务端frps.ini配置文件

$ cat frps.ini 
[common]
bind_port = 17000

这里说明下参数,bind_port 是监听的端口,后面frpc配置服务端端口需要配置此端口。

2.4 服务端启动

$ ./frps -c frps.ini 

如果要后台运行,通过nohup方式进行后台启动。

$ nohup ./frps -c frps.ini  &

3.客户端配置

3.1 解压

$ tar zxf frp_0.33.0_linux_amd64.tar.gz 
$ cd frp_0.33.0_linux_amd64

3.2 客户端解压后删除服务端相关的配置(非必须的操作)

$ rm frps*

3.3 配置客户端frpc.ini配置文件

cat frpc.ini
[common]
server_addr = 公网IP地址
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

这里说明下参数:

•server_addr: 填写frps服务端的公网IP

•server_port: 填写frps服务端的端口

•[xxx] : 这个是服务名,可以任意修改,本例命名为ssh,注意多个规则不能重复名字。

•type: 连接类型,比如http、tcp。ssh方式连接就用tcp。

•local_ip: 填写本地服务的IP

•local_port: 填写本地服务的端口

•remote_port: frps服务端公网的开放端口,这里需要注意不是frps服务的端口。

3.4 客户端启动

$ ./frpc -c frpc.ini 

如果要后台运行,通过nohup方式进行后台启动。

$ nohup ./frpc -c frpc.ini  &

一些更细致的配置

比如服务端配置:

$ cat frps.ini 
[common]
bind_port = 17000
token = myfrptest 
dashboard_port = 7500
# dashboard's username and password are both optional,if not set, default is admin.
dashboard_user = admin
dashboard_pwd = admin

详细参数说明:

•token:服务器上设置的连接口令

•dashboard_port:服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为公网服务器的IP)查看frp服务运行信息。

•dashboard_user:打开仪表板页面登录的用户名

•dashboard_pwd:打开仪表板页面登录的密码

对应客户端配置:

$ cat frpc.ini
[common]
server_addr = 填写公网IP
server_port = 17000
token = myfrptest
admin_addr = 本机的IP
admin_port = 7400
admin_user = admin2
admin_pwd = admin2

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 8081
remote_port = 17001

详细参数说明:

•token:要连接frps服务的连接口令

•admin_addr:客户端管理界面的IP

•admin_port:客户端管理界面的端口

•admin_user:打开客户端管理界面登录的用户名

•admin_pwd:打开客户端管理界面登录的密码

配置的小技巧

我们在客户端的配置时候需要填写公网IP,或者开放的端口,我们可以用环境变量来生效。

$ cat frpc.ini
[common]
server_addr = {{ .Envs.FRP_SERVER_ADDR }}
server_port = 17000
token = myfrptest

我们配置了环境变量{{ .Envs.FRP_SERVER_ADDR }},那么在启动服务之前,我们需要做一个环境变量export操作。

$ export FRP_SERVER_ADDR="120.xxx.xx.xx"
$ ./frpc -c frpc.ini 

这样就可以正常启动,不需要在配置文件显示具体公网IP。

效果图

•公网IP开放了17001的端口

终于弄懂内网穿透知识了

 

•frps服务端仪表板

终于弄懂内网穿透知识了

首页


终于弄懂内网穿透知识了

TCP页面

•frpc客户端管理界面

终于弄懂内网穿透知识了

客户端配置文件修改界面

重要说明

1.确保防火墙放行相关的端口。

2.如果你是在阿里云或者腾讯云等云平台上,注意在安全组上放行相关的端口。

更多安全的配置,可以去GitHub研究实践。


欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。



Tags:内网穿透   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
# 1. nps-npc1.1 简介nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh...【详细内容】
2021-12-22  Tags: 内网穿透  点击:(8)  评论:(0)  加入收藏
FRP 内网穿透需求背景最近小王公司接个对接公众账号应用开发的项目,其中有个功能需求是"用户关注公众账号后发送特定消息后公众账号需要回复一个二维码海报“。了解需求后,便...【详细内容】
2021-09-22  Tags: 内网穿透  点击:(52)  评论:(0)  加入收藏
1. 前言大家好,我是安果!一提到远程桌面,可能大家都会想到 TeamViewer、向日葵等第三方软件但是,它们大多是商业化软件,价格昂贵;即使有提供免费版本,也是各种限制,稳定性和安全性...【详细内容】
2021-09-16  Tags: 内网穿透  点击:(72)  评论:(0)  加入收藏
本文使用 docker 方式部署, 使用 windows 客户端首先 拉取镜像docker pull ffdfgdfg/nps下载 conf文件夹 并解压,或前往项目主页自行下载项目首页: https://ehang-io.github.i...【详细内容】
2021-07-14  Tags: 内网穿透  点击:(183)  评论:(0)  加入收藏
钉钉美图前言最近有一个小需求【调试远程python代码,超方便pycharm教程】需要用到内网穿透,然后自己搜到了【最强内网穿透工具frp】。然后看网友评论里面有推荐【傻瓜式-Web面...【详细内容】
2021-06-18  Tags: 内网穿透  点击:(1700)  评论:(0)  加入收藏
很多开发者在开发个人项目的前期,可能都会遇到没有公网域名或者公网IP,导致调试受限的问题。虽然,购买一个服务器,注册一个域名,很便宜,也很简单,但是如果能通过免费的内网穿透工具...【详细内容】
2021-05-25  Tags: 内网穿透  点击:(182)  评论:(0)  加入收藏
一、工具介绍Chisel可用来搭建内网隧道,类似于我们常用的花生壳和ngrok。由于目前使用的人比较少,因此对于有些杀软还不能准确的识别出该工具。chisel可以进行端口转发、反向...【详细内容】
2021-04-02  Tags: 内网穿透  点击:(311)  评论:(0)  加入收藏
今天给大家出个外网访问内网畅捷通软件的教程。相信大家都知道,在没有公网ip的情况下,我们是没办法在外网访问内网的应用的;这时候应该怎么办?我们今天就用闪库内网穿透来解决这...【详细内容】
2020-11-23  Tags: 内网穿透  点击:(134)  评论:(0)  加入收藏
测试系统: 外网:linux 内网:windows python:python3.6(需要安装flask、psutil) 功能介绍:使用flask,实现可一键添加端口映射,可以删除单端口,可删除全部端口映射需要准备的东西: 1:如上...【详细内容】
2020-10-07  Tags: 内网穿透  点击:(192)  评论:(0)  加入收藏
Bullet 是一款基于 Java 实现,通过 WebSocket 实现 Bullet 协议反向控制 ngrok 的 web 管理化工具。项目完全开源免费,可独立部署。平台提供了 server 服务,可满足短期的内网穿...【详细内容】
2020-09-30  Tags: 内网穿透  点击:(175)  评论:(0)  加入收藏
▌简易百科推荐
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(1)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(2)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(29)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(9)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(20)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(30)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
拉了千兆宽带,买了标称 1300Mbps 的无线路由器,为什么 WiFi 还是跑不满千兆?要回答这个问题,我们先得知道这个 1300Mbps 是怎么来的。开始回答之前先说明一下,这期只讲 802.11ac,...【详细内容】
2021-12-14  Ubiquiti优倍快    Tags:WiFi   点击:(86)  评论:(0)  加入收藏
问题背景IPv6环境下,在浏览器中通过http://[vip:port]访问web业务,提示无法访问此网站,[vip]的响应时间过长。分析过程之前碰到过多次在PC浏览器上无法访问vip的情况,排查方法也...【详细内容】
2021-12-13  云原生知识星球    Tags:网络问题   点击:(27)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条