【计算机网络】12、frp 内网穿透

这篇具有很好参考价值的文章主要介绍了【计算机网络】12、frp 内网穿透。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【计算机网络】12、frp 内网穿透,计算机网络,计算机网络

一、内网穿透是什么

在了解内网穿透原理之前,我们先说什么是内网穿透。内网,就是在公司或者家庭内部,建立的局域网络或者是办公网络,可以实现多台电脑之间的资源共享,包括设备、资料、数据等。而外网则是通过一个网关与其它的网络系统连接,相对于内网而言,这种网络系统称之为外部网络,常见的就是我们日常使用的互联网。

一般而言,在没有固定公网IP的情况下,外网设备无法直接访问内网设备。而内网穿透技术,顾名思义就是能让外网的设备找到处于内网的设备,从而实现数据通信。

内网穿透是什么

内网穿透,又称为NAT穿透。NAT背后的设备,它们的主要特点是 ,可以访问外网,但不能被外网设备有效访问。基于这一特点,NAT穿透技术是让NAT背后的设备,先访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内、外网设备的访问通道,实现外网设备访问到内网设备。

该技术除了可以访问隐藏在NAT后的设备,同样可以穿透防火墙。这是因为防火墙一般只拦截了入站没有拦截出站,所以也可以让防火墙内的设备对外提供服务。

由于内网设备并不是与外网设备直接相连,所以在安全性上是毋庸置疑的,内网穿透可以说是安全与效率兼得。

1.1 NAT

NAT(Network Address Translation,网络地址转换)毫无疑问是一个十分有意义的发明:其通过在互联网中分隔出一个个的专用内网,极大地解决了 IP 地址不足的问题,且有效地避免了主机经受外部网络的攻击。然而,对于开发者而言,NAT 有时又令人头疼:想搭一个个人网站,可家用宽带又不提供固定 IP;建了一个 NAS 服务,可离开内网就访问不了;公司内网服务器出了问题,防火墙和 NAT 让人不得不赶回公司。内网穿透技术应运而生,为开发者们提供了便利。Frp(Fast Reverse Proxy,快速反向代理)就是一个十分有用的内网穿透工具。

具体操作方式是:把其客户端 frpc 放置在内网服务器上,把服务端 frps 放置在具有外网 IP 的服务器上。用户需要访问内网服务时,首先向外网服务器发送请求,经过 frps 代理的转发,送达对应的内网服务,内网服务进行响应,并再次通过代理把响应返回到用户。

frp :A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet。是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

背景:从公网中访问自己的私有设备向来是一件难事儿。
自己的主力台式机、NAS等等设备,它们可能处于路由器后,或者运营商因为IP地址短缺不给你分配公网IP地址。如果我们想直接访问到这些设备(远程桌面,远程文件,SSH等等),一般来说要通过一些转发或者P2P组网软件的帮助。
我有一台计算机位于一个很复杂的局域网中,我想要实现远程桌面和文件访问,目前来看其所处的网络环境很难通过简单的端口映射将其暴露在公网之中,有如下方法:

  • TeamViewer、向日葵、ToDesk:需要两端都有此软件,不方便
  • 蒲公英VPN软件进行组网,可用,但免费版本网络速度极慢,体验不佳,几乎无法正常使用。
  • 花生壳软件进行DDNS解析,可用,但同第二点所述,免费版本有带宽限制,无法实际使用。
  • 搭建frp服务器进行内网穿透,可用且推荐,可以达到不错的速度,且理论上可以开放任何想要的端口,可以实现的功能远不止远程桌面或者文件共享。

准备工作:搭建一个完整的frp服务链,我们需要

  • VPS一台(也可以是具有公网IP的实体机)
  • 访问目标设备(就是你最终要访问的设备)

二、服务端设置

frp 配置详解
服务端设置如下:

SSH连接到VPS之后运行arch命令查看处理器架构,根据架构下载不同版本的frp
wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.22.0_linux_amd64.tar.gz # 根据架构不同,选择相应版本并进行下载(如果是“X86_64“即可选择”amd64”)
tar -zxvf frp_0.22.0_linux_amd64.tar.gz #解压
cp -r frp_0.22.0_linux_amd64 frp # 文件夹改个名,方便使用
cd frp # 把解压出来的文件夹复制到你想要的目录下,为了方便我直接放在用户目录下了,进入该目录
ls -a # 查看一下文件
我们只需要关注如下几个文件:frps、frps.ini、frpc、frpc.ini
前两个文件(s结尾代表server)分别是服务端程序和服务端配置文件,后两个文件(c结尾代表client)分别是客户端程序和客户端配置文件。
rm frpc frpc.ini # 因为我们正在配置服务端,可以删除客户端的两个文件

vim frps.ini # 然后修改frps.ini文件

# 端口均可使用默认值,token、user和password项请自行设置
[common]
bind_port = 7000 # 表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到
dashboard_port = 7500 # 服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息
token = 12345678 # 客户端和服务端连接的口令,请自行设置并记录,稍后会用到
dashboard_user = admin # 打开仪表板页面登录的用户名和密码,自行设置即可
dashboard_pwd = admin # 同上
vhost_http_port = 10080 # 反向代理HTTP主机时使用,本文不涉及HTTP协议,因而照抄或者删除这两条均可。
vhost_https_port = 10443 # 同上

然后 nohup ./frps -c frps.ini 启动 frps 服务端,如果看到屏幕输出这样一段内容,即表示运行正常

2023/01/01 15:22:39 [I] [service.go:130] frps tcp listen on 0.0.0.0:7000
2023/01/01 15:22:39 [I] [service.go:172] http service listen on 0.0.0.0:10080
2023/01/01 15:22:39 [I] [service.go:193] https service listen on 0.0.0.0:10443
2023/01/01 15:22:39 [I] [service.go:216] Dashboard listen on 0.0.0.0:7500
2023/01/01 15:22:39 [I] [root.go:210] Start frps success

此时访问 x.x.x.x:7500 并使用自己设置的用户名密码登录,即可看到仪表板界面

三、客户端设置

frp的客户端就是我们想要真正进行访问的那台设备,本文用Windows主机做例子,Linux配置方法类似。

同样 wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.22.0_windows_amd64.zip 下载包,删除其中的frps和frps.ini文件

vim frpc.ini 如下:

[common] # common字段下的三项即为服务端的设置
server_addr = x.x.x.x # 服务端IP地址,填入即可
server_port = 7000 # 服务器端口,填入你设置的端口号即可,如果未改变就是7000
token = won517574356 # 在服务器上设置的连接口令,原样填入即可

# rdp、smb字段都是自己定义的规则,自定义端口对应时格式如下:
# “[xxx]”表示一个规则名称,自己定义,便于查询即可。
# “type”表示转发的协议类型,有TCP和UDP等选项可以选择,如有需要请自行查询frp手册。
# “local_port”是本地应用的端口号,按照实际应用工作在本机的端口号填写即可。
# “remote_port”是该条规则在服务端开放的端口号,自己填写并记录即可。
[rdp] # RDP,即Remote Desktop 远程桌面,Windows的RDP默认端口是3389,协议为TCP,建议使用frp远程连接前,在局域网中测试好,能够成功连接后再使用frp穿透连接。
type = tcp
local_ip = 127.0.0.1          
local_port = 3389
remote_port = 7001  
[smb] # SMB,即Windows文件共享所使用的协议,默认端口号445,协议TCP,本条规则可实现远程文件访问。
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 7002

实际使用时,会按照端口号进行对应的转发,原理如下图:
【计算机网络】12、frp 内网穿透,计算机网络,计算机网络

配置完成frpc.ini后,就可./frpc -c frpc.ini 启动frpc了,windows 可用 bat 脚本在后台运行,之后直接运行这个 .bat 文件即可启动frpc并隐藏窗口(可在任务管理器中退出)。至于开机启动,把这个 .bat 文件直接扔进Windows的开机启动文件夹即可。bat 脚本如下:

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd C:\frp # 将cd后的路径更改为你的frpc实际存放的目录
frpc -c frpc.ini
exit

正常日志如下:

2023/01/01 16:14:56 [I] [service.go:205] login to server success, get run id [2b65b4e58a5917ac], server udp port [0]
2023/01/01 16:14:56 [I] [proxy_manager.go:136] [2b65b4e58a5917ac] proxy added: [rdp smb]
2023/01/01 16:14:56 [I] [control.go:143] [smb] start proxy success
2023/01/01 16:14:56 [I] [control.go:143] [rdp] start proxy success

强烈建议你在使用frp直接测试内网穿透前,先在局域网内测试好相关功能的正常使用,并配置好可能会影响的Windows防火墙等内容,在内网调试通过后再使用frp进行内网穿透测试。

此时可以在局域网外用相应程序访问 x.x.x.x:xxxx (IP为VPS的IP,端口为自定义的remote_port)即可访问到相应服务

设置 ssh 转发的命令为:

ssh -g -f -N -L 8081:127.0.0.1:8081 ubuntu@192.168.2.99

frp 背景文章来源地址https://www.toymoban.com/news/detail-630371.html

到了这里,关于【计算机网络】12、frp 内网穿透的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机网络八股】计算机网络(一)

    计算机网络体系可以大致分为一下三种,OSI七层模型、TCP/IP四层模型和五层模型。 OSI七层模型:大而全,但是比较复杂、而且是先有了理论模型,没有实际应用。 TCP/IP四层模型:是由实际应用发展总结出来的,从实质上讲,TCP/IP只有最上面三层,最下面一层没有什么具体内

    2024年02月11日
    浏览(27)
  • 计算机网络——计算机网络体系结构

    1.1 概念 一般认为,计算机网络是一个将分散的,具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享的信息传递的系统,简而言之,计算机网络就是一些 互联的,自治的计算机系统的集合 1.2 组成 (1)从组成部分:由 硬件,软件,

    2024年02月15日
    浏览(29)
  • 第一章 计算机网络概述【计算机网络】

    2023-3-26 17:07:26 以下内容源自《【计算机网络】》 仅供学习交流使用 计算机网络 计算机网络(第8版) 谢希仁 编著 1.2.1 网络的网络 计算机网络〈简称为网络)由若干结点(node) R和连接这些结点的链路(link)组成。 1.2.2互联网基础结构发展的三个阶段 请读者注意以下两个意思相

    2024年02月13日
    浏览(33)
  • 计算机网络-笔记-第一章-计算机网络概述

    一、第一章——计算机网络概述 二、第二章——物理层 三、第三章——数据链路层 四、第四章——网络层 五、第五章——运输层 六、第六章——应用层 目录 一、第一章——计算机网络概述 1、因特网概述 (1)网络、互联网、因特网 (2)因特网发展的三个阶段 (3)因特

    2024年02月11日
    浏览(36)
  • 【计算机网络原理】第一章:计算机网络概述

    1、计算机网络的诞生 从技术范畴来看,计算机网络是计算机技术与通信技术相互融合的产物。 2、计算机网络的定义 计算机网络是互连的、自治的计算机的集合 1)自治: 互连的计算机系统彼此独立,不存在主从或者控制与被控制的关系。 2)互连: 利用通信链路连接相互独立

    2024年04月08日
    浏览(34)
  • 【计算机网络】—— 详解码元,传输速率的计算|网络奇缘系列|计算机网络

    🌈个人主页:  Aileen_0v0 🔥系列专栏:  一见倾心,再见倾城  ---  计算机网络~ 💫个人格言: \\\"没有罗马,那就自己创造罗马~\\\" 目录 码元  速率和波特 思考1   思考2  思考3 带宽(Bandwidth)  📝总结 码元 是指用一个 固定时长的信号波形 _(数字脉冲),代表不同离散数值的基本波

    2024年02月04日
    浏览(38)
  • 【计算机网络】——前言计算机网络发展的历程概述

     ========================================================================= 主页点击直达: 个人主页 我的小仓库: 代码仓库 C语言偷着笑: C语言专栏 数据结构挨打小记: 初阶数据结构专栏 Linux被操作记: Linux专栏 LeetCode刷题掉发记: LeetCode刷题 算法: 算法专栏  C++头疼记: C++专栏 计算

    2024年02月08日
    浏览(36)
  • 初识计算机网络 | 计算机网络的发展 | 协议初识

    1.计算机网络的发展 “矛盾是普遍存在的,矛盾是事物联系的实质内容和 事物发展的根本动力 !” 计算机在诞生之初,在军事上用来计算导弹的弹道轨迹!在发展的过程中( 商业的推动,国家政策推动 ),计算机的应用场景被发现!被应用于各种各样的场景当中! 现在,

    2024年01月25日
    浏览(35)
  • 【计算机网络】第一章、计算机网络体系结构

    1.计算机网络的组成 从不同的角度来看 内容 从组成上看 硬件、软件、协议 从工作方式上岸 边缘部分、核心部分 从功能上看 通信子网、资源子网 2.计算机网络的分类 角度 内容 分布范围 广域网、城域网、局域网、个域网 传输技术 广播式网络、点对点网络 拓扑结构 总线型

    2024年02月07日
    浏览(34)
  • 【计算机网络】计算机网络中的基本概念

    网络互连就是将多台计算机连接在一起,完成数据共享。数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。根据网络互连的规模不同,可以划分为局域网和广域网。 局域网,即 Local Area Network,简称LAN。Local 即标识了局域网是本地,局部组

    2024年02月06日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包