frp服务器(比zerotier更好的内网穿透)

内网穿透是一种让外部设备可以访问内部网络的技术,它的应用在各个领域中非常广泛,从家庭办公到企业内部网络,再到公共场所的无线网络,都需要内网穿透技术来实现访问。而在内部网络穿透中,要选择一种好的技术来实现网络穿透,以确保网络的稳定性和安全性。

在当前的技术中,常见的内网穿透技术包括 zerotier 和 frp。与 zerotier 相比,frp 更加灵活和可扩展,并且易于配置和使用。在本文中,我们将为您详细介绍 frp 服务器和 frp 内网穿透的优点,以及为什么它是比 zerotier 更好的选择。

一、什么是 frp 服务器?

frp 服务器是一种内网穿透技术,它通过将内部服务器映射到外部网络来实现内部网络穿透。它主要有两个组成部分:Server 和 Client。

Server 是 frp 服务器的主要组成部分。它运行在公共云服务器上,用来处理来自客户端的请求并将其转发到内部网络。frp Server 主要负责接收客户端请求、连接目标设备和内网通信。

Client 主要用来在内网中运行,它会与 frp server 进行连接,以便在公网上访问内网设备。在 frp 中,client 分为两类:frpc 和 frps。frpc 是 frp 的客户端,运行在内部设备上,而 frps 则是 frp 的服务端,运行在公共云服务器上。

二、frp 好在哪里?

1、易于配置

使用 frp 服务器进行内网穿透的一个明显优点是它的易于配置性。用户只需要下载客户端并运行与容器一体化或者人工安装就行了。然后在服务器上进行简单的设置和配置,就可以将内部网络映射到外部网络上。

而这一点,在 zerotier 中则需要用户先注册,才能获得唯一的网络 ID,再将内部网络映射到外部网络上。由于它需要用户的身份认证过程,这就在一定程度上增加了操作的难度和复杂度,并且还存在的广告和不稳定的问题。

相比之下,frp 的配置非常简单易用,不需要任何身份验证程序,只需输入与 frp 服务器通信所需的端口就可以开始使用。

2、灵活性高

frp 服务器大大提高了网络的灵活性,可以根据实际情况进行定制和灵活的配置。它可以实现多个服务转发到公网上访问,可以灵活设置不同内网设备的动态 IP 地址与端口,而做到完美的无阻尼内网穿透。

同时,frp 还支持多种协议的转发,包括 HTTP、HTTPS、TCP、UDP、FTP 等等。这一点,在 zerotier 中只支持 HTTP 和 HTTPS 协议,因此,用户在需要使用多种协议进行内网穿透时,选择 frp 更加优越。

3、安全性更高

由于 frp 服务器需要运行在公共云服务器上,因此,frp 服务器的安全性也变得非常重要。frp 服务器采用与 ssh 相似的加密机制来保证数据的安全。

在进行内网穿透时,frp 服务器会通过 TLS 进行安全传输,客户端和服务器之间的通信数据全是加密的状态,有效防止了信息的泄露和被窃取的风险。因此,在安全性和数据保护方面,frp 是优于 zerotier 的。

三、frp 的工作原理

1、服务端

当 frp 服务器部署在云端设备上时,它可以接收来自客户端的请求,并将这些请求转发到要访问的内网设备上。对于服务端,主要的组成是监听端口和后端处理程序。

监听端口:它是用来接收客户端请求的,通过使用 UDP 或者 TCP 协议,在服务器监听端口上绑定后,可以通过这个端口接受外部网络的请求。

后端处理程序:当 frp 服务器收到外部设备的请求时,后端程序会将该请求转发到网关设备上,这样外部设备就可以直接访问内网设备了。

2、客户端

frp 的客户端主要分为两类,即 frpc 和 frps 。frpc 是指在内网中需要进行访问的设备上运行的客户端,frps 则是运行在云端设备上的服务端。

当内网设备需要连接到公共网络时,frpc 会尝试连接 frps 服务器,以建立一个 frp 客户端和服务端之间的通信。与此同时,客户端还要配置一些参数,如本地 IP 地址和目标设备的端口等,以便 frp 服务器进行转发。

3、数据传输流程

当 frp 客户端需要与云端服务器进行通信时,整个数据传输的流程分为以下几个步骤:

第一步,frpc 客户端发送连接请求到公网 IP 地址和端口,frps 服务器接受并建立连接。

第二步,frpc 客户端向 frps 发送一个心跳包,以检测连接是否正常。

第三步,当 frps 收到一个连接请求时,它会转发该请求到客户端所在的内网设备上。

第四步,客户端接到转发请求后,在本地设备上启动一个本地端口监听程序,以便接受转发请求。

第五步,当客户端内部设备发送响应到客户端时,它会使用 FRP 转发协议将响应数据传回到 frps 服务器上。

第六步,在 frps 服务器上,将数据重新打包,再转发到客户端。

该数据传输流程中在各节点之间实现了对数据的加密和解密,保证数据的安全性。

四、实战演练

1、部署 frp 服务器

首先,在使用 frp 服务器之前,我们需要在云端服务器上进行 frp 的安装和配置。具体步骤如下:

第一步,下载 frp 服务器并解压文件:

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

$ tar -xzf frp_0.34.1_linux_amd64.tar.gz

第二步,配置 frp 服务器:

$ cd frp_0.34.1_linux_amd64

在该文件夹下,可以找到 frps.ini 文件,该文件用来配置 frp 的服务器端,同时还可以配置 TLS 协议和服务端口号等参数。下面是一个典型的配置文件示例:

[common]

bind_port = 7000

vhost_http_port = 0

vhost_https_port = 0

kcp_bind_port = 0

tcp_mux = true

max_pool_count = 20

max_ports_per_client = 10

authentication_method = token

log_level = info

log_max_days = 3

# token 认证方式 (需要添加[TOKEN] 段,安装默认已配置)

[common]

token = ultravncvnckey

同时,我们还需要在服务器防火墙中添加的 frp 使用的端口号,并开启相应的端口。在 CentOS 中,可以使用以下命令配置:

$ firewall-cmd –zone=public –add-port=7000/tcp –permanent

$ firewall-cmd –reload

2、部署 frp 客户端

在完成服务器端 frp 的配置之后,现在需要在内部设备上配置 frp 客户端。安装和配置流程如下:

第一步,下载 frp 客户端:

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

$ tar -xzf frp_0.34.1_linux_amd64.tar.gz

第二步,配置 frp 客户端:

$ cd frp_0.34.1_linux_amd64

和 frps.ini 类似,frpc.ini 用来配置客户端的参数下面是一个典型的配置文件示例:

[common]

server_addr = 123.456.789.1

server_port = 7000

authentication_method = token

token = ultravncvnckey

[type1]

type = tcp

local_ip = 192.168.0.2

local_port = 3389

remote_port = 3389

在 frpc 中,配置参数包括服务器地址、服务器端口、认证方式、令牌和各个设备的 IP 地址、端口号等。在最后,需要额外指定要映射的设备端口以及映射到 frp 服务器的端口。

这里我们配置在 frc 中,type1 映射了本地设备的 3389 端口,将其映射到了服务器端的 3389 端口上。

3、测试 frp 服务器

在完成 frp 服务器和客户端的配置之后,可以通过以下流程测试 frp 是否正常工作:

第一步,启动 frp 服务器:

$ ./frps -c ./frps.ini

使用该命令,可以启动 frp 服务器,并且 frp 服务器将在运行过程中报告它的地址以及端口号。

第二步,启动 frp 客户端:

$ ./frpc -c ./frpc.ini

这将启动 frp 客户端,并将客户端连接到 frp 服务器。在启动过程中,frp 客户端将报告成功与 frp 服务器之间建立的连接。

第三步,测试连接:

现在,我们可以在外部设备上测试连接是否已经建立了。使用路由器 NAT 网络连接,或使用远程桌面连接到 frp 服务器上的公共 IP 地址和设备端口。

如果一切正常,外部设备应该能够访问内网设备并与之通信。

五、小结

总体来说,frp 服务器是一种非常灵活而又易于配置的内网穿透技术。相较于 zerotier,frp 更加容易使用,支持多种协议进行转发,并且具有更高的安全性和更高的稳定性。因此,在选择内网穿透技术时,我们应该优先考虑使用 frp 服务器。

在使用 frp 时,需要保证服务器和客户端的正常配置和工作,同时还需要进行一些安全性的设置,以防止数据的泄露和被窃取的风险。希望这篇文章能够帮助您更好地理解 frp 实现内网穿透的工作原理,并在实践中更好地使用 frp 服务器。

原文链接:http://www.52q2.com/Ai_a_11330.html

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享