华为云云耀云服务器L实例评测丨#1 内网穿透FRP

引言

华为云云耀云服务器L实例是华为推出的新一代VPS。
相比之前的弹性云服务器,虽然前者使用的硬件资源与后者是一致的,但它根据用户实际需求,把硬盘容量、带宽和系统镜像等组合成套餐,提供一站式解决方案,非常适合中小型企业和开发者进行学习和开发。

云耀云服务器L实例和弹性云服务器的使用场景区别:

  1. 云耀云服务器更适合小型业务或个人用途,像搭个小网站或做些开发测试。它更便宜、更容易使用。
  2. 弹性云服务器则适合大公司或复杂的项目,比如大型网站或数据分析。它更灵活,但可能需要更多的技术知识。

关键是云耀云服务器非常便宜,新用户花几十块钱就可以租一年,用来部署一些轻量的服务可以做到开箱即用,省时省力。
正好之前用树莓派组的家用NAS服务器还没有设置内网穿透,这次就先尝试用云耀云服务器作为FRP服务器来实现NAS的远程访问。
华为云云耀云服务器L实例评测丨#1 内网穿透FRP_第1张图片

购买实例

进入云耀云服务器L实例购买页面,选择一个合适的实例,官方在某东的自营店里还有不到40块一年的实例可以购买。
华为云云耀云服务器L实例评测丨#1 内网穿透FRP_第2张图片
在系统配置页面,可以看到相比传统的VPS配置界面,云耀云服务器界面更加简洁,对刚接触服务器的新用户非常友好。
华为云云耀云服务器L实例评测丨#1 内网穿透FRP_第3张图片
既然使用了华为的服务器,不如顺便尝试一下华为自己的HCE OS,这是基于华为自家开源社区openEuler构建的Linux操作系统。在CentOS已经停止维护的今天,HCE OS保持了前者的操作习惯,可以作为一个很好的替代产品,如果对CentOS操作的不熟悉也可以选择Ubuntu系统镜像。
华为云云耀云服务器L实例评测丨#1 内网穿透FRP_第4张图片

修改密码

购买成功后,在控制台即可看到当前购买的实例,点击“远程登录”。
华为云云耀云服务器L实例评测丨#1 内网穿透FRP_第5张图片
初次登录时,点击右边的重置密码,之后可以使用自己常用的SSH工具远程登录服务器,此外,可以在当前页面看到当前服务器的公网IP地址。
华为云云耀云服务器L实例评测丨#1 内网穿透FRP_第6张图片

部署FRP

现在,我们开始在服务器上部署FRP(Fast Reverse Proxy)服务,用于地将本地NAS服务暴露到公共网络。
一个FRP目录中会同时包含服务端程序FRPS和客户端程序FRPC以及它们各自的配置文件,具体含义如下:

  • frps: 服务器端的主要可执行文件。
  • frpc: 客户端的主要可执行文件。
  • frps.ini: 用于配置 FRP 服务器的文件。
  • frpc.ini: 用于配置 FRP 客户端的文件。

在实际使用时,我们会在服务器端(云耀云服务器L实例)和客户端(树莓派NAS)上同时下载并安装FRP,而前者只使用frps程序frps.ini配置文件,后者只使用frpc程序frpc.ini配置文件

FRPS

在这一部分,我们将在云耀云服务器L实例中下载frp并配置frps服务。

下载FRP

进入FRP的Github发布页面,选择合适的frp版本。
华为云云耀云服务器L实例评测丨#1 内网穿透FRP_第7张图片
FRP支持不同架构的系统,而HCE OS支持ARM和X86架构,为了检查当前的系统使用哪一种架构,我们可以使用uname -a命令查看系统信息。

Linux hcss-ecs-1e61 5.10.0-60.18.0.50.r865_35.hce2.x86_64 #1 SMP Sun Mar 26 18:01:01 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

从这些信息中,我们可以得知:

  1. 该系统基于 5.10.0 版本的 Linux 内核,这个内核有针对 Huawei Cloud EulerOS 的特定优化和修补。
  2. 内核支持多处理器(SMP)。
  3. 这是一个 64 位系统,适用于 x86_64 架构。
  4. 内核编译日期是 2023 年 3 月 26 日。

所以,我们应该选择amd64架构的程序,在云耀云服务器L实例的终端执行以下指令进行下载。

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

解压下载后的安装包,并进入该目录。

tar -zxvf frp_0.51.3_linux_amd64.tar.gz 
cd frp_0.51.3_linux_amd64

配置文件

在服务器端,我们只需要配置服务器配置文件,使用vimnano编辑frps.ini。

vim frps.ini

其中,7000端口是frp建立TCP连接的默认端口。除此之外,我们一般还会自定义一个token用于在和客户端进行连接时确认身份。

# [common] 是配置文件的通用区块
[common]

# 服务器绑定的 TCP 端口
bind_port = 7000

# (可选)身份验证令牌,客户端连接时需要提供
token = <my_secure_token>

# (可选)服务器绑定的 UDP 端口,用于 UDP 转发
# bind_udp_port = 7001

# (可选)用于 HTTP 代理或负载均衡的端口
# vhost_http_port = 8080

# (可选)用于 HTTPS 代理或负载均衡的端口
# vhost_https_port = 8443

# (可选)仪表板的监听地址,用于管理和监控
# dashboard_addr = 0.0.0.0

# (可选)仪表板的监听端口
# dashboard_port = 7500

# (可选)仪表板登录的用户名和密码
# dashboard_user = admin
# dashboard_pwd = admin

# (可选)日志文件的存储位置
# log_file = ./frps.log

# (可选)日志的级别: trace, debug, info, warn, error
# log_level = info

# (可选)保留日志文件的天数
# log_max_days = 3

# (可选)是否禁用控制台的日志颜色,对于文件日志或系统服务有用
# disable_log_color = false

# (可选)每个代理隧道的最大连接池数,有助于提高性能
# max_pool_count = 5

运行frps

在当前目录下,我们执行以下命令:

./frps -c frps.ini

看到以下log信息即代表成功运行。
image.png

FRPC

在这一部分,我们将在树莓派中下载frp并配置frpc服务,将本地的服务转发到云耀云服务器L实例的端口上。
除此之外,我们还需要根据配置的内容配置云耀云服务器L实例的安全组规则。

下载FRP

同4.1.1节,注意树莓派是ARM架构。

配置文件

在客户端,我们只需要配置客户端配置文件,使用vimnano编辑frpc.ini。

# 通用区块
[common]

# FRP 服务器的地址和端口
server_addr = <云耀云服务器L实例的公网IP>
server_port = 7000

# (可选)身份验证令牌,需要与服务器端匹配
token = <my_secure_token>

# SSH 隧道的设置
[ssh]
type = tcp
# 本地 SSH 服务的 IP 地址
local_ip = 127.0.0.1  
# 本地 SSH 服务的端口
local_port = 22       
# 公网服务器上的端口,用于访问本地 SSH
remote_port = 6000    

# Jellyfin 隧道的设置
[jellyfin]
type = tcp
# 本地 Jellyfin 服务的 IP 地址
local_ip = 127.0.0.1 
# 本地 Jellyfin 服务的端口 
local_port = 8096   
# 公网服务器上的端口,用于访问本地 Jellyfin  
remote_port = 6001    

# Nextcloud 隧道的设置
[nextcloud]
type = tcp
# 本地 Nextcloud 服务的 IP 地址
local_ip = 127.0.0.1  
# 本地 Nextcloud 服务(HTTP)的端口
local_port = 80     
# 公网服务器上的端口,用于访问本地 Nextcloud 
remote_port = 6002    

在这里,我们将树莓派本地的三个服务分别转发到云耀云服务器的6000、6001、6002端口上,注意修改server_addrtoken为你自己的公网IP和上一步设置的token。

配置服务器安全组

默认情况下,出于安全考虑,云耀云服务器只对非常有限的端口开放了外部访问权限。
根据上一小节,我们将使用到云耀云服务器的7000、6000、6001和6002端口,所以我们需要手动到控制台配置安全组规则以打开这些端口的外部访问权限。

进入华为云网络控制台的安全组页面,如果目前只有一个服务器实例的话,可以直接点击第一个安全组的“安全组规则”,否则,根据关联情况找到与当前服务器绑定的安全组。
华为云云耀云服务器L实例评测丨#1 内网穿透FRP_第8张图片
在“入方向规则”界面,点击“添加规则”,根据之前的配置,我们需要开放7000,6000,6001,6002端口的入站权限。
华为云云耀云服务器L实例评测丨#1 内网穿透FRP_第9张图片
有时候添加规则后没有立即生效,这时候稍等片刻或者直接重启服务器一般可以解决。

启动FRPC

在添加服务器的安全组规则后,我们可以在树莓派端启动FRPC,进入frp的目录后,执行以下命令:

./frps -c frps.ini

看到以下log信息即代表成功运行。
image.png

访问本地服务

现在,在浏览器输入<云耀云服务器L实例的公网IP>:6001,可以发现已正确跳转到树莓派本地部署的Jellyfin服务上。
华为云云耀云服务器L实例评测丨#1 内网穿透FRP_第10张图片

总结

在本节中,我们从头购买了一个华为云云耀服务器L实例并将其配置为FRP服务器,为本地部署的树莓派NAS提供内网穿透服务。
华为云云耀服务器L实例作为一个轻量的VPS,让服务器部署变得快速而无痛。与传统云服务器相比,云耀服务器为那些追求简便和有快速部署需求的用户提供了一个更方便的选择。

你可能感兴趣的:(华为云云耀云服务器L实例评测,树莓派,华为,服务器,运维)