使用P2P技术在企业中实现内网穿透:没有公网IP如何远程直接访问?

某企业将OA、ERP、Git代码库等业务资源,分别部署在了公司内部本地服务器上。但随着业务发展,分部和移动办公人员逐渐增多,如何高效实现外部员工安全远程访问公司本地系统资源成了难题。

使用MPLS专线、IPSec VPN等传统方案实现远程访问,不仅实施费用较高,而且部署、运维过程也有技术门槛。

面对此类需求,使用P2P技术就可以轻松搞定异地远程直接访问。

使用 P2P 技术在企业中实现内网穿透,关键在于利用 P2P 网络的分布式特性,让内网设备与公网节点建立连接。一般通过选择合适的 P2P 内网穿透工具,进行安装、配置及安全设置,即可实现企业内网资源的外部访问,打破网络限制,提高工作效率。下面将详细介绍其原理、操作步骤及注意事项。

一、P2P 技术原理与内网穿透基础

1、P2P 技术简介

P2P(Peer - to - Peer)即对等网络,是一种分布式网络架构,在 P2P 网络中,每个节点既可以作为客户端,也可以作为服务器,节点之间直接进行通信和资源共享,无需依赖中心服务器。这种架构能够充分利用网络中各个节点的资源,提高网络的整体性能和效率。

2、内网穿透的必要性

在企业网络环境中,内网设备通常处于防火墙和 NAT(网络地址转换)设备之后,它们使用私有 IP 地址,无法直接被公网访问。然而,随着企业远程办公、移动办公需求的增加,员工需要在外部网络环境下访问企业内网的资源,如文件服务器、邮件服务器、业务系统等。内网穿透技术就是解决这一问题的关键,它能够在公网和内网之间建立一条数据通道,使外网用户能够访问内网设备提供的服务。

3、P2P 技术实现内网穿透的原理

P2P 技术实现内网穿透主要基于打洞技术(Hole Punching)。当两个位于不同内网的节点想要建立直接连接时,它们首先与一个位于公网的服务器(通常称为 STUN 服务器或 TURN 服务器)进行通信。这个服务器会获取两个节点的公网地址和端口信息,并将这些信息转发给对方。然后,两个节点利用这些信息,尝试在各自的防火墙和 NAT 设备上打洞,建立直接的 P2P 连接。例如,企业员工 A 在外地通过笔记本电脑(位于一个内网中),想要访问企业内网中的文件服务器(位于另一个内网中),就可以通过 P2P 打洞技术,在两个内网之间建立连接,实现文件访问。

二、选择合适的 P2P 内网穿透工具

常见P2P内网穿透工具有如nat123、openP2P、frp等。

1、nat123:一款具备内网穿透和动态域名解析功能的软件,主要为没有公网 IP 或动态公网 IP 用户,提供简单、高效、稳定、安全的远程访问服务。它通过云服务器快速与内网服务器建立连接,同时把内网端口映射到云端,实现各类局域网应用基于域名的互联网访问。nat123支持 TCP、HTTP、UDP、HTTPS 协议,端到端的直接通信,黑白名单防黑内置防火墙验证等,支持外网设备穿透各种复杂的路由和防火墙访问到内网的应用。

2、FRP(Fast Reverse Proxy):一个高性能的反向代理应用,专注于帮助用户轻松地进行内网穿透,对外网提供服务。它使用 Go 语言编写,具有轻量级、高性能、安装和配置简单等特点。FRP 支持多种协议,如 TCP、UDP、HTTP、HTTPS 等,可以满足不同业务场景的需求。例如,企业可以使用 FRP 将内网的 Web 服务器、SSH 服务等暴露到公网,方便远程访问和管理。

三、使用 P2P 工具实现内网穿透的步骤

(一)以nat123为例

1、下载与安装:访问nat123官网,根据企业内网服务器的操作系统类型,下载对应的客户端安装包。如果服务器是 Windows 系统,下载 Windows 版本的安装包;如果是 Linux 系统,下载 Linux 版本。下载完成后,运行安装包,按照安装向导的提示完成安装。例如,在 Windows 系统中,双击安装包,按照提示点击 “下一步”,选择D盘或其他非系统盘的安装路径等,完成安装过程。

2、注册与登录:安装完成后,打开nat123客户端,进行账号注册。如果已有账号,直接登录。注册时,填写有效的邮箱,设置密码,按照系统提示完成注册流程。登录成功后,客户端会显示相关的功能界面。

3、配置端口映射:登录进入nat123客户端后,点击默认映射列表下面 “添加映射” 进入端口映射配置界面。设置时先选择映射类型,再自定义对应内网地址和外网地址即可:

-映射类型:包括80、443、同端口映射等模式,这看本地应用场景需求来选择使用。

-内网端口:“内网端口” 即需要进行端口映射服务的服务端口,如 SSH 服务端口号为 22、Windows 远程桌面端口为 3389、SQL Server 服务端口号为 1433。以 Windows 远程桌面端口映射为例,内网端口填写 3389,如有修改则填写具体修改后的。

-内网地址:内网主机IP地址固定的,如本机用127.0.0.1来填写,如内网另台服务器上的则填写对应的固定内网IP。

-外网端口:选择80或443或同端口时,外网端口不用自定义填写,也不显示输入模式,因为外网访问就是对应80或443或对应同内网端口号的。如选择了非80类型的,则会默认生成一个外网端口号,或修改自定义这个外网端口号,只要未占用的就行。

-外网地址:默认自动生成二级域名,可以自定义对应二级字符。也可以修改使用自己注册的域名。

点击 “保存” 即可见到界面生成一个带内外网访问地址的端口映射记录图标,操作完成。

4、外网访问测试:完成端口映射后,在外部网络环境下,使用外网访问地址进行访问测试。例如,在浏览器中输入外网访问地址,访问内网的 Web 服务器;或者使用远程桌面连接工具,输入外网访问地址和对应的账号密码,连接内网的 Windows 服务器。如果能够正常访问,说明内网穿透设置成功。

(二)以 FRP 为例

1.下载与安装:从 FRP 的官方 GitHub 仓库下载适合企业服务器操作系统的 FRP 安装包。如果是 Linux 系统,下载 Linux 版本的二进制文件;如果是 Windows 系统,下载 Windows 版本的可执行文件。下载完成后,解压安装包到指定目录。例如,在 Linux 系统中,使用tar -zxvf frp_xxx_linux_amd64.tar.gz命令解压安装包,然后将解压后的文件移动到合适的目录,如/usr/local/frp。

2.配置 FRP 服务端:在公网服务器上(可以是企业自己的云服务器,也可以是租用的第三方云服务器),编辑 FRP 服务端配置文件frps.ini。配置文件中主要设置服务端的监听端口、认证方式等信息。例如:
[common]
bind_port = 7000
token = your_token
bind_port表示服务端监听的端口,这里设置为 7000;token是用于客户端和服务端认证的令牌,需要设置一个强密码,防止非法连接。

3.配置 FRP 客户端:在企业内网服务器上,编辑 FRP 客户端配置文件frpc.ini。配置文件中需要设置服务端的地址和端口,以及要穿透的内网服务信息。例如:
[common]
server_addr = your_server_ip
server_port = 7000
token = your_token

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
server_addr是公网服务器的 IP 地址;server_port是服务端监听的端口,与服务端配置文件中的bind_port一致;token与服务端的token相同。[ssh]部分表示要穿透的 SSH 服务,type为协议类型,这里是 TCP;local_ip是内网 SSH 服务的 IP 地址,一般为 127.0.0.1;local_port是内网 SSH 服务的端口号,默认为 22;remote_port是在公网服务器上映射的端口号,这里设置为 6000。

4.启动 FRP 服务端和客户端:在公网服务器上,使用命令./frps -c frps.ini启动 FRP 服务端;在企业内网服务器上,使用命令./frpc -c frpc.ini启动 FRP 客户端。启动成功后,FRP 客户端会与服务端建立连接,实现内网穿透。

5.外网访问测试:在外部网络环境下,使用 SSH 客户端连接公网服务器的 IP 地址和映射的端口号(如ssh -p 6000 user@your_server_ip),即可连接到企业内网的 SSH 服务。如果能够正常连接并进行操作,说明 FRP 内网穿透设置成功。

还在为本地服务无法外网访问抓狂?微信开发回调调试总被域名限制逼疯?或是想低成本搭建私有云盘却苦于无公网IP?点到点内网穿透工具就是你的终极救星!本文从原理到极简操作,助你轻松突破网络边界,玩转本地服务公网直接端对端访问!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值