1 - 产品概述

Cloudnet 为个人和企业用户提供安全而高效的VPN云服务解决方案

Cloudnet 产品是经过工信部批准在国内合规经营的 VPN 软件厂商, 面向个人和企业用户提供安全可靠的 VPN 云服务.

产品概述

Cloudnet(云网 VPN/cnetVPN) 是一款基于 WireGuard 协议的分布式 VPN 软件产品,它提供高效而安全的 VPN 网络解决方案。不仅能够保障您的网络安全,而且能够快速构建可靠的虚拟私有网络,并提供高质量的用户体验。立即访问我们的官网,开始使用 Cloudnet,保护您的个人隐私和敏感数据.

产品合规

根据国家监管政策要求, Cloudnet 产品已经取得以下合规资质:

  • 经营性网站备案: [鄂 ICP 备 2023005351 号]
  • 国内 VPN 业务经营许可证: [增值电信业务经营许可证(VPN)-B1-20231651]
  • 公安备案: [鄂公网安备 42018502006593 号]

产品安全性

Cloudnet 是如何保障安全的?

  • 基于 WireGuard 协议, 其加密算法都是经过广泛测试和认可的.
  • 每个设备都有一个公钥和一个私钥,这种方法比传统的证书和密钥交换方式更加安全和高效.
  • 设备流量经过中继服务器时也是点对点加密的, 任何人都无法解密您的设备流量.
  • 目前产品已经升级到最新的 noise 协议, 提供了更高的安全性.
  • Cloudnet 使用了内核级别的防火墙规则,可以有效地防止 IP 泄露和隐私安全等问题.

适用场景

远程办公

近几年随着以 Zoom 为代表的视频会议的兴起,极大的提升了远程管理和沟通协作的效率,远程办公也得到了快速发展,越来越多的中小企业开始加入远程办公的行列.远程办公提供了更大的灵活性、降低了企业成本、扩大了可招聘人才的范围,并且有助于提高员工满意度和保留率。然而,远程办公场景下面临的网络安全问题也越来越突出。Cloudnet 针对该场景提供了网络安全解决方案,为团队协作提供安全可靠的网络环境.

企业分支机构组网

随着企业业务的发展,分支机构的数量也在不断增加,分支机构之间的网络互联成为了一个问题.传统的网络互联方式需要购买昂贵的专线,并且需要专业的网络人员进行维护,成本高昂.而 Cloudnet 可以通过互联网将分支机构连接在一起,形成一个虚拟的企业内部网络,不仅可以降低网络互联的成本,而且可以提高网络的可靠性和安全性.

打通不同云厂商的 VPC 网络

随着云计算的发展,越来越多的企业将自己的业务部署在云上,但是不同云厂商之间的网络互通成为了一个问题.而各个云厂商只提供了自家的跨区域互通方案,深度与自家产品绑定. 且传统的网络互通方式需要购买昂贵的专线,并且需要专业的网络人员进行维护,成本高昂.而 Cloudnet 可以通过互联网将不同云厂商的 VPC 网络连接在一起,形成一个虚拟的企业内部网络,不仅可以降低网络互联的成本,而且可以提高网络的可靠性和安全性.

个人设备互联及远程开发

越来越多的人开始使用多台设备,如何将这些设备连接在一起,形成一个虚拟的网络,成为了一个问题. 传统的 VPN 方案更多的是采用集中式的,存在单点故障,且需要一定的技术能力,对个人而言其维护成本较高.而 Cloudnet 可以通过点对点的方式组建 mesh 网络将这些设备连接在一起,形成一个虚拟的网络,不仅没有单点故障,而且可以提高网络的可靠性和安全性.同时,Cloudnet 高性能低延时的网络还可以实现远程开发,将您的设备连接到远程服务器,您可以随时随地的进行开发和调试.

产品特点

国内首款分布式 meshVPN 产品

Cloudnet 可以将您的所有设备连接在一起,采用点对点的通信方式形成一个去中心化的网络结构,每个节点都可以直接与其他节点进行通信.

内网穿透成功率高达 99.9%

可以穿透多层 NAT,让您可以在受限制的网络环境下仍然可建立点对点(Peer-to-Peer)连接.无需经过第三方转发流量,客户端之间可直接连接.

高性能传输协议 WireGuard

WireGuard 使用了最新的加密算法和协议设计,使得其在传输数据时具有非常高的速度和效率。相比于传统的 VPN,可以实现更快的连接速度和更低的延迟。

高级安全控制策略 ACL

管理员可以配置网络中不同用户或设备的访问权限.可以支持对 IP 地址/MAC 地址/协议类型/端口号等进行控制,从而实现对网络资源的精细化管理和保护。

自定义网段 IPv4/IPv6

用户可以根据自己的需求,自行定义一个 IP 地址范围,用于在局域网或互联网中分配给自己的设备。IPv4 和 IPv6 都支持自定义网段。

遍布全国的高速中继节点

高速中继节点分布在全国各地,包括一/二线城市以及偏远地区.每个中继节点都配备了 2Gbps 超大带宽, 国内所有线路均采用 BGP 多线接入, 海外线路全部采用 CN2(GIA) 高品质线路, 可以保证用户在任何地方都能够享受到高速的网络服务。

2 - 快速开始

从 0 开始快速入门 Cloudnet

准备工作

在开始之前您可能需要准备以下工作:

  • 一个云网账号,如果没有请先 注册帐户
  • 两台或以上的计算机设备,且设备可以正常联网
  • 明确不同设备所在的网络环境,并记录设备的局域网 IP 网段

登录帐户

登录帐户: https://login.cloudnet.world

安装客户端

请确保您的设备的操作系统是我们支持的操作系统,目前我们支持的操作系统有:

  • Windows10+
  • macOS12+
  • CentOS7+
  • RHEL8+
  • Debian9+
  • Ubuntu16+
  • SUSE15+
  • iOS15+
  • Android6+

请根据您设备的操作系统安装对应的客户端 安装客户端

创建子网

在注册设备之前,您需要先创建一个私有网络,并且将您的设备加入到私有网络中.

您可以在用户中心创建私有网络: 创建子网

支持的子网网段范围(RFC1918):

  • 192.168.0.0/16
  • 172.16.0.0/12
  • 10.0.0.0/8
  • 169.254.0.0/16
  • 224.0.0.0/4
  • 100.64.0.0/10
  • fe80::/10
  • ff00::/8
  • fd7a:115c:a1e0::/48

例如您设备的本地局域网网段地址为: 192.168.0.0/24, 那么您创建的子网网段地址范围就不能包含该网段.

注册设备

  • 安装完客户端后,请启动客户端程序

  • 点击在系统托盘处的图标将会弹出菜单

  • 点击菜单 登录网络-网页登录 按钮,然后客户端会自动打开浏览器

  • 点击 提交 按钮,稍等片刻,您的设备就会被注册到您选择的子网中

开始使用

当您的设备成功注册到子网后,您就可以在用户中心的子网管理页面查看到您的设备了.

测试网络是否正常:

# 例如您设置的子网网段是: 10.0.0.0/24, 设备注册成功后分配了 IP 地址: 10.0.0.1
ping 10.0.0.1

如果您未设置 ACL 安全策略,那么此时应该可以正常 ping 通.

3 - 网络安全

详细介绍关于 Cloudnet 产品的网络安全特性

本文以 Cloudnet V1 版本为例,详细介绍关于产品的网络安全特性。

为什么网络安全很重要

网络安全对个人和企业都非常重要,因为数据泄露可能会导致不可挽回的损失。

  1. 对于个人而言,网络安全是非常重要的,因为个人的许多敏感信息都存储在互联网上。例如,个人的银行账户信息、社交媒体账户信息、电子邮件账户信息等都可能被黑客攻击者窃取。如果这些信息被泄露,黑客攻击者可能会利用这些信息进行诈骗、身份盗窃等犯罪活动,给个人带来巨大的损失。

  2. 对于企业而言,网络安全同样非常重要,因为企业的许多敏感信息都存储在互联网上。例如,企业的客户信息、财务信息、知识产权等都可能被黑客攻击者窃取。如果这些信息被泄露,黑客攻击者可能会利用这些信息进行诈骗、身份盗窃等犯罪活动,给企业带来巨大的损失。此外,企业的网络安全问题还可能导致业务中断、声誉受损等问题,给企业带来巨大的经济损失。

因此,无论是个人还是企业,都应该非常重视网络安全问题,采取必要的措施保护自己的敏感信息。

为什么要使用 Cloudnet

Cloudnet 是一种基于点对点连接的 VPN 产品,它可以通过多个节点之间的互联,构建一个安全的、去中心化的网络。具体表现在以下几个方面:

  1. 数据加密:Cloudnet 任意两个设备间的数据传输都会被加密,以此确保数据不被窃取且无法篡改。

  2. 去中心化:Cloudnet 不依赖于中心化的服务器,而是通过多个节点之间的互联,构建一个去中心化的网格网络。这种网络结构可以防止单点故障,提高网络的可靠性和稳定性。

  3. NAT 穿透:Cloudnet 可以穿透多层 NAT,让用户可以在受限网络环境中轻松构建私有网络。

  4. 自组网:Cloudnet 可以自动组建网络,不需要人工干预,降低了网络管理的成本和复杂度。

  5. 安全控制: Cloudnet 支持 ACL, 可以对网络中的节点进行安全控制,防止恶意节点对网络造成破坏。

Cloudnet 的网络安全特性

与传统的 VPN 不同, Cloudnet 采用了 WireGuard 协议, 其安全特性如下:

  1. 采用 WireGuard 协议, 其加密算法都是经过广泛测试和认可的.
  2. 每个设备都有一个公钥和一个私钥,这种方法比传统的证书和密钥交换方式更加安全和高效.
  3. 设备流量经过中继服务器时也是点对点加密的, 任何人都无法解密您的设备流量.
  4. 目前产品已经升级到最新的 noise 协议, 提供了更高的安全性.
  5. Cloudnet 使用了内核级别的防火墙规则,可以有效地防止 IP 泄露和隐私安全等问题.

4 - 安装客户端

Cloudnet 全平台客户端安装指南

此文档将为用户提供 Cloudnet 各平台客户端的安装指南。

如果您的设备不在以下支持的系统或平台列表中,您可以登录用户中心 创建支持单, 并提供您的设备信息,我们将尽可能为您提供适配和支持。

4.1 - Windows

Windows 客户端安装指南

支持: Windows 10/11, Windows Server 2016/2019/2022

目前已支持的架构: x86(386)/amd64/arm/arm64

桌面客户端需要 Windows10+ 才能运行.

由于安全和兼容问题,我们已经放弃对 Windows 7/8, Server 2008/2012 系统的支持.

安装桌面客户端


安装要求

  • Windows 10/11, Windows Server 2016/2019/2022
  • x86_64(amd64) 架构
  • Powershell 5.0+ (Windows10,2015 年以后发布的版本均已支持)
  • 安装和运行均需要管理员权限
  • 网页登录时需要浏览器支持: Microsoft Edge 79(2019)+, GoogleChrome/Firefox/Safari
  • 不支持 IE 浏览器, 如果浏览器无法登录请改用密钥登录

在 Windows Server 上安装时如果提示缺少 wlanapi.dll, 解决办法是安装 Wireless LAN Service 服务即可.

通过下载安装

安装 Cloudnet 客户端: 点此下载

桌面客户端已内置 cnet 命令行工具.

通过命令行安装

请使用管理员权限打开 Windows PowerShellWindows Terminal, 然后执行以下步骤:

# 注意: 由于需要微软官方审核, 因此通过此命令安装的客户端可能不是最新版本
winget install cloudnet.cloudnet

注册设备


通过客户端注册(推荐)

在注册设备前,您需要先登录用户中心创建子网,然后才能在客户端上进行登录网络.

  • 启动程序
  • 首次安装或升级后, 会自动弹出授权窗口, 需要您授予管理员权限才能安装或升级
  • 点击托盘图标, 在弹出菜单中点击 登录网络
  • 选择 网页登录授权码登录
  • 如果选择 网页登录, 会自动打开浏览器, 请在浏览器中完成登录
  • 如果选择 授权码登录, 请在弹出的对话框中输入授权密钥即可

通过命令行注册

命令行工具在您安装目录下的 core 文件夹中,您需要将该文件夹添加到环境变量中才能使用

# 默认安装路径为 C:\Program Files\CloudNet
$env:Path += ";C:\Program Files\CloudNet\core"
# 查看环境变量
echo $env:Path
# 查看命令帮助
cnet

网页注册

cnet start - --accept-dns=false --accept-routes=false
# 请将输出的 URL 复制到浏览器中打开完成注册

密钥注册

cnet start - --accept-dns=false --accept-routes=false --auth-key=<PreAuthKey>

更新客户端


winget upgrade cloudnet.cloudnet

卸载客户端


winget uninstall cloudnet.cloudnet

安装命令行客户端

注意: 您需要对操作系统有一定的技术基础. 如无技术背景请勿尝试, 我们仅对企业用户提供技术支持.

此版本适用于: 面向 Windows Core 系统和 arm/arm64/386 架构而适配, 无需图形界面, 仅支持命令行操作.

下载 zip 格式的压缩包后, 请将其解压到任意目录(目录名不能是中文), 然后在该目录下打开命令行窗口即可使用.

下载地址: https://pkgs.cloudnet.world/stable/windows/

cd "C:\Program Files"
mkdir CloudNet
# 将压缩包的文件解压到目录: "C:\Program Files\CloudNet"

# 安装并启动服务,注意:"= "后面的空格不能省略
sc create Cloudnet binPath= "C:\Program Files\CloudNet\Cloudnetd.exe"
sc config Cloudnet start= auto
sc start Cloudnet

# 启动服务并注册设备,网页注册
cloudnet.exe up --accept-dns=false --accept-routes=false
# 将此命令生成的 URL 地址复制并在任意浏览器打开,然后登录您的账户并完成注册.

# 密钥注册,需要在用户中心提前生成授权密钥,然后将密钥替换 <PreAuthKey> 即可.
cloudnet.exe up --accept-dns=false --accept-routes=false --auth-key=<PreAuthKey>

cloudnet.exe status
# 查看当前设备状态,或者登录用户中心查看设备是否已注册成功.

4.2 - macOS

macOS 客户端安装指南

支持的 macOS 版本: macOS10.15+, x64/ARM 架构均已支持

桌面版客户端支持: macOS12+

命令行客户端支持: macOS10.15+

安装桌面版客户端

适用于 macOS12+ 的系统, 您可以通过以下方式安装:


通过下载安装

安装 Cloudnet 客户端: 点此下载

桌面客户端已内置命令行工具,无需再安装命令行客户端.

通过命令行安装

打开 终端iTerm, 然后执行以下步骤:

# 注意: 由于需要 brew 官方审核, 因此通过此命令安装的客户端可能不是最新版本
brew install --cask cloudnet
# 或者
curl -fsSL https://pkgs.cloudnet.world/stable/install.sh | sh

注册设备


通过客户端注册(推荐)

在注册设备前,您需要先登录用户中心创建子网,然后才能在客户端上进行登录网络.

  • 启动程序
  • 首次安装或升级后, 会自动弹出授权窗口, 需要您授予管理员权限才能安装或升级
  • 点击托盘图标, 在弹出菜单中点击 登录网络
  • 选择 网页登录授权码登录
  • 如果选择 网页登录, 会自动打开浏览器, 请在浏览器中完成登录
  • 如果选择 授权码登录, 请在弹出的对话框中输入授权密钥即可

通过命令行注册

命令行工具在 /usr/local/cloudnet/bin, 您需要将该目录添加到环境变量中才能使用

网页注册
cnet start --accept-dns=false --accept-routes=false
# 请将输出的 URL 复制到浏览器中打开完成注册
密钥注册
cnet start --accept-dns=false --accept-routes=false --auth-key=<PreAuthKey>

更新客户端


brew upgrade --cask cloudnet

卸载客户端


brew uninstall --cask cloudnet

安装命令行客户端

适用于 macOS10.15+ 的旧版本系统, 您可以通过以下方式安装:


brew install dayunet2009/tap/cloudnet
sudo brew services restart cloudnet

更新客户端


brew upgrade dayunet2009/tap/cloudnet
sudo brew services restart cloudnet

卸载客户端


brew uninstall dayunet2009/tap/cloudnet

4.3 - Linux

Linux 客户端安装指南, 支持 Debian, Ubuntu, CentOS, Fedora, RHEL, Rocky Linux, Oracle Linux, etc.

面向多种 Linux 发行版的客户端安装指南。

4.3.1 - RedHat 系统家族

适用于 RedHat 系统家族的安装指南, 支持 CentOS, Fedora, RHEL, Rocky Linux, Oracle Linux, etc.

支持的系统和版本: CentOS 7+, Fedora 19+, RedHat Enterprise Linux 8+, Oracle Linux 7+, Rocky Linux 8+

安装客户端

目前没有为该系统提供桌面版客户端.


打开 终端Terminal, 然后执行以下步骤.

yum install -y epel-release libmodulemd curl ca-certificates tree
yum install -y htop iftop nano bash-completion bash curl sudo lsof

curl -fsSL https://pkgs.cloudnet.world/stable/install.sh | sh
systemctl status cloudnetd

注册设备


# 查看命令行帮助
cnet start --help

通过网页注册

cnet start --accept-dns=false --accept-routes=false

通过密钥注册

cnet start --accept-dns=false --accept-routes=false --auth-key=<PreAuthKey>

更新客户端


sudo dnf update cloudnet
# 或者
sudo yum update cloudnet
# 或者
cnet upgrade

卸载客户端


sudo dnf remove cloudnet
# 或者
sudo yum remove cloudnet
# 或者
cnet uninstall

4.3.2 - Debian 系统家族

Debian 系统家族安装 Cloudnet 客户端, 支持 Ubuntu, Debian, Deepin, Kali, Linux Mint, etc.

支持的 Debian 系统家族: Ubuntu 16.04+, Debian 9+, Deepin, Kali, Linux Mint, MX Linux, Pop!_OS, Zorin OS, elementary OS, Parrot OS, PureOS, SteamOS, Tails, Trisquel, etc.

由于基于 Debian 衍生的系统非常多, 但只要内核版本满足要求(kernel≥4.4), 一般都可以兼容.

安装客户端

目前没有为该系统提供桌面版客户端.


打开 终端Terminal, 然后执行以下步骤.

apt update
apt install -y htop iftop nano bash-completion ca-certificates openssl tree apt-transport-https bash curl sudo lsof
timedatectl set-timezone Asia/Shanghai

# fix at debian9 certificate issue
sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf && update-ca-certificates -f

curl -fsSL https://pkgs.cloudnet.world/stable/install.sh | sh
systemctl status cloudnetd

注册设备


# 查看命令行帮助
cnet start --help

通过网页注册

cnet start --accept-dns=false --accept-routes=false

通过密钥注册

cnet start --accept-dns=false --accept-routes=false --auth-key=<PreAuthKey>

更新客户端


sudo apt update && sudo apt upgrade cloudnet
# 或者
cnet upgrade

卸载客户端


sudo apt remove cloudnet
# 或者
cnet uninstall

4.3.3 - SUSE 系统家族

SUSE 系统家族安装 Cloudnet 客户端

支持的 SUSE 系统家族: OpenSUSE 15.0+, SUSE Linux Enterprise Server (SLES) 12+, SUSE Linux Enterprise Desktop (SLED) 12+, SUSE Linux Enterprise Workstation Extension (SLEWE) 12+

安装客户端

目前没有为该系统提供桌面版客户端.


打开 终端Terminal, 然后执行以下步骤.

curl -fsSL https://pkgs.cloudnet.world/stable/install.sh | sh

注册设备


# 查看命令行帮助
cnet start --help

通过网页注册

cnet start --accept-dns=false --accept-routes=false

通过密钥注册

cnet start --accept-dns=false --accept-routes=false --auth-key=<PreAuthKey>

更新客户端


sudo zypper update cloudnet
# 或者
cnet upgrade

卸载客户端


sudo zypper remove cloudnet
# 或者
cnet uninstall

4.3.4 - OpenWRT 系统家族

OpenWRT 系统家族安装 Cloudnet 客户端

支持的 OpenWRT 系统及版本: OpenWRT 17/18/19/21/22, x86_64/armv7/aarch64/mips

OpenWRT 设备至少需要 128MB 的存储空间, 因为 Cloudnet 需要占用 45MB 左右的存储空间.

自动安装客户端


通过 SSH 进入 命令行界面, 然后执行以下步骤.

OpenWRT 默认的 shell 是 ash

# 安装依赖
opkg update
opkg install libustream-openssl ca-bundle kmod-tun bash curl
# 安装客户端
curl -fsSL https://pkgs.cloudnet.world/stable/install.sh | sh

注册设备


# 查看命令行帮助
cnet start --help

通过网页注册

cnet start --accept-dns=false --accept-routes=false

通过密钥注册

cnet start --accept-dns=false --accept-routes=false --auth-key=<PreAuthKey>

更新客户端


cnet upgrade

卸载客户端


cnet uninstall

在 OpenWRT 上手动安装 Cloudnet

安装包下载: OpenWRT

  • 将 root 目录的内容提取到您的文件系统根目录:
tar x -vC / -f  cloudnet_<version>_<arch>.tar
  • 安装依赖包:
opkg update
opkg install libustream-openssl ca-bundle kmod-tun
  • 首次运行 cloudnet:
# 启动服务
/etc/init.d/cloudnet start
# 注册设备
cloudnet up --accept-dns=false --accept-routes=false
# 示例: 注册设备并声明本地需要路由的网段(内网互通)
cloudnet up --accept-dns=false --advertise-routes=10.0.0.0/24
  • 设置开机时启用 cloudnet:
/etc/init.d/cloudnet enable
# 通过查找以下条目来验证:
ls /etc/rc.d/S*cloudnet*

4.3.5 - 树莓派 Raspberry Pi OS

树莓派系统家族安装 Cloudnet 客户端

支持的 Raspberry Pi OS 系统及版本: Raspberry Pi 2/3/4, armv7l

安装客户端

目前没有为该系统提供桌面版客户端.


打开 终端Terminal, 然后执行以下步骤.

apt update
apt install -y htop iftop nano bash-completion ca-certificates openssl tree apt-transport-https bash curl sudo lsof
timedatectl set-timezone Asia/Shanghai

curl -fsSL https://pkgs.cloudnet.world/stable/install.sh | sh

注册设备


# 查看命令行帮助
cnet start --help

通过网页注册

cnet start --accept-dns=false --accept-routes=false

通过密钥注册

cnet start --accept-dns=false --accept-routes=false --auth-key=<PreAuthKey>

更新客户端


sudo apt update && sudo apt upgrade cloudnet
# 或者
cnet upgrade

卸载客户端


sudo apt remove cloudnet
# 或者
cnet uninstall

4.3.6 - 群晖 Synology DSM/SRM

本文介绍如何在群晖 NAS/SRM 上安装 Cloudnet 客户端。

支持的 Synology 系统及版本: Disk Station Manager(DSM) 7/8, Synology Router Manager (SRM) 1.3+

安装客户端


通过应用市场安装

Cloudnet 客户端正在计划上线 Synology 应用市场, 请耐心等待.

通过命令行安装

通过 SSH 进入 命令行界面, 然后执行以下步骤.

# 安装客户端,您可能需要 root 权限才能安装成功
curl -fsSL https://pkgs.cloudnet.world/stable/install.sh | sh

注册设备


# 查看命令行帮助
cnet start --help

通过网页注册

cnet start --accept-dns=false --accept-routes=false

通过密钥注册

cnet start --accept-dns=false --accept-routes=false --auth-key=<PreAuthKey>

更新客户端


cnet upgrade

卸载客户端


cnet uninstall

4.4 - FreeBSD

FreeBSD 客户端安装指南

支持的 FreeBSD 版本: FreeBSD 12/13

暂不支持 OpenBSDNetBSD, 如果你需要安装到该系统,您可能需要手动安装 tar/zip 版本.

安装客户端


该系统没有提供桌面版客户端, 只有命令行版客户端.

进入 命令行 界面, 然后执行以下步骤.

curl -fsSL https://pkgs.cloudnet.world/stable/install.sh | sh
# 或者
sudo pkg install cloudnet

注册设备


# 查看命令行帮助
cnet start --help

通过网页注册

cnet start --accept-dns=false --accept-routes=false

通过密钥注册

cnet start --accept-dns=false --accept-routes=false --auth-key=<PreAuthKey>

更新客户端


sudo pkg upgrade cloudnet

卸载客户端


sudo pkg delete cloudnet

4.5 - Android

Android 客户端安装指南

支持的 Android 安卓版本: Android 6+

Android 版本已就绪, 根据国家监管政策, 移动端还在申请管局做合规审查中, 合规通过才能上线.

4.6 - iOS

iOS 客户端安装指南

支持的 iOS 版本: iOS 15+

iOS 版本已就绪, 根据国家监管政策, 移动端还在申请管局做合规审查中, 合规通过才能上线.

4.7 - Container

面向容器化环境的客户端部署方案

随着容器化技术的发展, 以及容器化环境的普及, 我们也为容器化环境提供了客户端部署方案.

4.7.1 - Docker

Docker 安装 Cloudnet 客户端

支持的 Docker 版本: Docker 17+, Docker Compose 1.24+, amd64/arm64

仅支持基于 Linux 环境的 docker 版本, 不支持 macOS/Windows 下的 docker-for-desktop 版本.

安装客户端


# 可设置使用的版本号, 默认为最新版本: latest
export version=1.36.2.10
# amd64
curl -o docker-compose.yml https://pkgs.cloudnet.world/stable/docker-compose.yml && docker-compose up -d --no-build --pull always amd64
# arm64
curl -o docker-compose.yml https://pkgs.cloudnet.world/stable/docker-compose.yml && docker-compose up -d --no-build --pull always arm64

更新客户端


export version=latest
# amd64
curl -o docker-compose.yml https://pkgs.cloudnet.world/stable/docker-compose.yml && docker-compose up -d --wait --force-recreate --no-build --pull always amd64
# arm64
curl -o docker-compose.yml https://pkgs.cloudnet.world/stable/docker-compose.yml && docker-compose up -d --wait --force-recreate --no-build --pull always arm64

卸载客户端


# amd64
docker-compose down --remove-orphans amd64
# arm64
docker-compose down --remove-orphans arm64

FAQ

已知的问题

由于容器自身的限制性, Cloudnet 客户端在容器中运行时会有以下已知问题:

  • 子网路由功能可能无法正常工作;
  • 安全策略(ACL)功能可能无法正常工作;
  • 二层网络模式可能无法正常工作;

4.7.2 - Kubernetes

Kubernetes 安装 Cloudnet 客户端

支持的 Kubernetes 版本: Kubernetes 1.20+, amd64/arm64

安装客户端


helm repo add cloudnet https://pkgs.cloudnet.world/charts
helm repo update
helm install cloudnet cloudnet/cloudnet -n cnet --create-namespace --set authKey=<PreAuthKey>

更新客户端


helm repo update
helm upgrade -i cloudnet cloudnet/cloudnet -n cnet --set authKey=<PreAuthKey>

卸载客户端


helm uninstall cloudnet -n cnet

5 - 使用教程

详细了解 Cloudnet 的各个功能的使用方法

此文档当前支持的版本为 Cloudnet V1

5.1 - 子网管理

详细了解 Cloudnet 的子网相关功能的使用方法

Cloudnet: 子网管理

创建子网

创建者默认拥有子网的超级管理员权限, 可以管理该子网的所有设备.以及为该子网指定管理员等权限.

在注册设备之前,您需要先创建一个私有网络后才能将设备加入到私有网络中.

您可以在用户中心创建私有网络: 创建子网

Cloudnet 支持创建的子网网段范围(RFC1918):

  • 192.168.0.0/16
  • 172.16.0.0/12
  • 10.0.0.0/8
  • 169.254.0.0/16
  • 224.0.0.0/4
  • 100.64.0.0/10
  • fe80::/10
  • ff00::/8
  • fd7a:115c:a1e0::/48

为什么不能网段地址重叠?

  • 路由冲突:当两个网络拥有相同的网段时,网络设备(如路由器和交换机)将无法正确地路由流量。因为设备不会知道数据包应该发送到哪个网络。这可能会导致数据包丢失或误送,最终导致通信失败。

  • 地址分配问题:如果在不同的网络中使用了相同的 IP 地址范围,IP 地址可能无法正确地分配给设备。在动态主机配置协议(DHCP)环境中,这可以导致地址冲突,一个已经分配的 IP 地址可能被错误地再次分配给另一个设备。

  • 安全风险:有恶意用户可能利用网段重叠造成的混淆,发起中间人攻击或其他网络攻击,从而窃取数据或者干扰通信。

  • 网络管理困难:当网络中存在重叠网段时,网络管理工作会变得复杂且容易出错。管理员在诊断问题和配置网络时可能会面临额外的挑战。

  • 隧道问题:在使用虚拟私人网络(VPN)连接远程网络时,如果客户端网络和服务器端网络出现网段重叠,将无法建立有效的 VPN 通道,因为 VPN 客户端可能无法区分本地资源和远程资源。

为了确保网络的健康、可靠和安全运行,设计网络时避免网段地址重叠是至关重要的。在多个网络环境中使用清晰定义且相互独立的地址空间,以确保网络流量的顺畅和有序。

IPv4 与 IPv6 双栈网络互通的问题

什么是双栈网络?

双栈网络是指同时支持 IPv4 和 IPv6 的网络环境,在双栈网络环境下,设备之间可以通过 IPv4 或 IPv6 互相通信.

IPv4 能否直接和 IPv6 地址通讯?

IPv4 和 IPv6 是两个不同的互联网协议版本,它们是互不兼容的。这意味着 IPv4 设备默认情况下无法直接与 IPv6 设备通信,反之亦然。这两个协议有不同的地址格式,IPv4 地址是 32 位的,而 IPv6 地址是 128 位的。

为了解决这种不兼容性问题,需要使用特定的转换机制和技术,这些技术可以在两种协议之间提供互操作性。以下是几种使得 IPv4 与 IPv6 能够交互的方法:

  • 双栈(Dual Stack):在同一个设备上同时支持 IPv4 和 IPv6 协议。这样的设备可以根据目的地址的类型来选择使用 IPv4 或 IPv6 进行通信。

  • 隧道技术(Tunneling):在 IPv4 网络上建立一个 IPv6 的“隧道”,从而允许 IPv6 数据包通过这个隧道在 IPv4 网络中传输。这是通过对 IPv6 数据包进行封装,然后在 IPv4 网络中转发它们来实现的。常见的隧道技术有 6to4、ISATAP 和 Teredo 等。

  • 协议转换(Protocol Translation):通过特定的网关设备(如 NAT64 或 NAT-PT)来实现 IPv4 与 IPv6 之间的直接转换。这些设备可以将 IPv4 地址映射到 IPv6 地址,反之亦然。

尽管这些技术可以帮助 IPv4 与 IPv6 网络的通信,但它们可能引入额外的延迟、复杂性和成本。随着 IPv6 的逐步推广和采用,期望互联网将最终全面过渡到 IPv6,从而消除这些转换的需求。

目前 Cloudnet 网络暂不支持 ipv4 与 ipv6 双栈网络直接互通,如果您的设备之间需要跨协议互通的需求,那么您需要将您的设备升级为 ipv6 网络,或者您可以使用 NAT64 网络进行互通.

创建子网密钥

如果您具备子网管理员权限,您可以为子网创建一个密钥,客户端可以使用该密钥将设备加入到该私有网络中.

子网密钥管理: https://login.cloudnet.world/#/settings/pak

为什么要使用子网密钥?

Cloudnet 同时支持 网页登录密钥登录两种认证方式,在一些非桌面环境下使用密钥登录会更加方便一些,比如: Linux 服务器和手机端等.

指派子网管理员

该功能仅限团队和企业用户使用

如果您是团队或企业用户,可能会遇到细分权限的需求,您可以指派子网管理员,子网管理员可以管理子网的所有设备.

5.2 - 设备管理

详细了解 Cloudnet 的设备管理功能的使用方法

Cloudnet: 设备管理

安装客户端

安装客户端请参考: 客户端安装

创建子网

创建子网请参考: 创建子网


设备注册

  • 安装完客户端后,请启动客户端程序
  • 点击在系统托盘处的图标将会弹出菜单
  • 点击菜单 登录网络-网页登录 按钮,然后客户端会自动打开浏览器
  • 点击 提交 按钮,稍等片刻,您的设备就会被注册到您选择的子网中

如果您已经创建了子网密钥,那么您可以使用密钥直接注册,而无需通过网页交互方式注册.


设备过期

Cloudnet 会根据您设置的设备过期时间将设备强制下线,过期的设备如需继续使用,请重新通过管理员的授权.

设置过期时间

  1. 登录用户中心,点击 我的设备 菜单
  2. 找到您要修改的设备,点击 选项 按钮
  3. 在下拉菜单中选择 修改设备

设备强制下线

  1. 登录用户中心,点击 我的设备 菜单
  2. 找到您要修改的设备,点击 选项 按钮
  3. 在下拉菜单中选择 强制下线

删除设备

  1. 登录用户中心,点击 我的设备 菜单
  2. 找到您要修改的设备,点击 选项 按钮
  3. 在下拉菜单中选择 删除设备

5.3 - 路由管理

详细了解 Cloudnet 的子网路由功能的使用方法

Cloudnet: 路由管理

注意: 此功能需要您具备一定的 Linux 系统操作经验和网络技术基础.

创建路由

Cloudnet 要求基于 Linux 内核 kennel ≥ 3.10

暂不支持在 Windows/macOS/BSD/Android/iOS 等系统上创建路由.

# 首先确保您已经安装了客户端和命令行工具
curl -fsSL https://pkgs.cloudnet.world/stable/install.sh | sh
# 然后使用命令行工具创建路由, 例如:
cnet start --accept-routes=true --advertise-routes=192.168.1.0/24,192.168.2.0/24
# --accept-routes=true 表示接受别的节点广播的路由
# --advertise-routes 表示创建本地网络路由
# 创建路由为: 192.168.1.0/24,192.168.2.0/24
# 创建多条路由请使用英文逗号(,)分隔, 以上地址仅为示例, 请根据您的实际情况修改.

启用路由

成功创建路由后,该路由并不会立即生效,您需要在 Cloudnet 路由管理 中启用路由. 启用成功后该设备就会成为路由节点.

只有子网管理员才有权限启用路由

路由高可用

Cloudnet 支持路由高可用, 即当某个路由节点宕机时, 该节点的路由会自动切换到备用路由节点上.

# 首先在 hostA 设备上, 使用命令行工具创建路由, 例如:
cnet start --accept-routes=true --advertise-routes=192.168.1.0/24,192.168.2.0/24
# 然后在 hostB 设备上, 使用命令行工具创建路由, 例如:
cnet start --accept-routes=true --advertise-routes=192.168.1.0/24,192.168.2.0/24
# 注意:
# hostA 和 hostB 的路由必须完全相同, 否则无法实现高可用
# hostA 和 hostB 必须在同一个子网内, 否则无法实现高可用

创建成功后,在路由管理页面可以看到主路由状态(Primary)和备用路由状态(Failover)

旁路网关

如何在不改动现有网络设施的情况下, 将特定的流量从一个网络路径转移到另一个网络路径? 旁路网关可以帮助您实现这一目标.

准备工作

  • 一台 Linux 主机, 可以是虚拟机或树莓派或 OpenWRT, 且内核版本 ≥ 3.10
  • 支持 iptables 或 netfilter 的 Linux 主机
  • 该主机需放置在路由器或防火墙内部, 且与路由器或防火墙在同一个子网内
  • 路由器或防火墙具备添加或修改路由表的功能

使用 Cloudnet 搭建旁路网关

# 开启 IP 转发功能
echo 'net.ipv4.ip_forward = 1' | tee /etc/sysctl.d/ipforward.conf
echo 'net.ipv6.conf.all.forwarding = 1' | tee -a /etc/sysctl.d/ipforward.conf
sysctl -p /etc/sysctl.d/ipforward.conf

# 使用命令行工具接收其它路由节点的广播, 例如:
cnet start --accept-routes=true
# --accept-routes=true 表示接受别的路由节点广播的路由
# Cloudnet 会自动创建相关的 iptables 规则

在路由器或防火墙上添加路由表

以家用路由器为例

如果你使用的是家用路由器, 登录路由器找到静态路由选项, 添加一条静态路由, 目的网段为 Cloudnet 路由节点广播的网段, 下一跳为 Cloudnet 旁路网关的 IP 地址.

以 OpenWRT 路由器为例

# 以 Linux 路由为例, 以下命令仅供参考, 请根据您的实际情况修改
# 创建 IP 网段列表
ipset create cnetlist hash:net
ipset add cnetlist 172.16.0.0/16
ipset add cnetlist 172.17.80.0/20
# 标记流量
iptables -t mangle -A fwmark -s 10.0.0.0/20 -m set --match-set cnetlist dst -j MARK --set-mark 0x52
iptables -t nat -A POSTROUTING -m mark --mark 0x52 -j MASQUERADE
# 添加路由表,10.0.0.5 为 Cloudnet 旁路网关的 IP 地址
ip route add default via 10.0.0.5 table cnet
ip rule add fwmark 0x52 table cnet

注意事项

  • 在启用子网路由的模式下,本地网络内部的主机无需安装客户端,只需要在网关主机上安装客户端即可
  • 本地网络内部的主机可以直接与 Cloudnet 通告(--advertise-routes)的网段通信
  • 本地网络内部的主机不能直接与 Cloudnet 的子网通信, Cloudnet 子网内的设备必须设置--accept-routes=true后才能通信

禁用路由

只有子网管理员才有权限禁用路由

  1. 登录用户中心,点击 路由 菜单
  2. 找到您要修改的路由,点击 禁用 按钮
  3. 在弹出框中选择 确认即可

删除路由

只有子网管理员才有权限删除路由

  1. 登录用户中心,点击 路由 菜单
  2. 找到您要修改的路由,点击 删除 按钮
  3. 在弹出框中选择 确认即可

场景案例

以下结合实际的场景来说明路由的使用方法.

  • Cloudnet: 172.30.30.0/24, 设备 A 和 C 安装了客户端
  • 家里的网络: 192.168.0.0/24, 设备 A,B
  • 公司的网络: 192.168.1.0/24, 设备 C,D
  • A: 192.168.0.11,172.30.30.1
  • B: 192.168.0.12
  • C: 192.168.1.11,172.30.30.2
  • D: 192.168.1.12

如果设备 A 与设备 C 通讯, 需要进行以下操作

  • A 和 C 均安装了客户端,它们可以通过 Cloudnet 网段直接通讯

如果设备 A 与设备 D 通讯, 需要进行以下操作

由于设备 D 没有安装客户端,所以无法通过 Cloudnet 网段直接通讯,需要通过子网路由来实现.

  • D 须与 C 处于同一个网段: 192.168.1.0/24
  • C 需是一个基于 Linux 的系统并安装了客户端
  • C 需要开启路由通告(–advertise-routes=192.168.1.0/24)
  • 登录用户中心-路由-启用路由: 192.168.1.0/24
  • A 需要点击客户端右键菜单-设置-子网路由

经过以上设置后即可实现 A 直接和 D 通讯.

如果设备 B 与设备 D 互通, 需要进行以下操作

由于设备 B 和 D 都没有安装客户端,所以无法通过 Cloudnet 网段直接通讯,需要通过旁路网关来实现.通俗的讲就是局域网桥接.

  • A 和 C 需是一个基于 Linux 的系统并安装了客户端
  • A 需要开启路由通告(–advertise-routes=192.168.0.0/24)
  • C 需要开启路由通告(–advertise-routes=192.168.1.0/24)
  • 登录用户中心-路由-启用路由: 192.168.0.0/24 和 192.168.1.0/24
  • 设置 A 网络的路由器, 添加静态路由, 目的网段: 192.168.1.0/24 下一跳: 192.168.0.11, 此步可实现 B 访问 D
  • 设置 C 网络的路由器, 添加静态路由, 目的网段: 192.168.0.0/24 下一跳: 192.168.1.11, 此步可实现 D 访问 B

经过以上设置后即可实现 B 和 D 互通. 在此场景中, A 和 C 就是旁路网关, 用于桥接两个局域网. 但是它们都是单点的, 如果需要实现 A 和 C 宕机后自动切换路由,请参考路由高可用章节.

5.4 - 安全策略

详细了解 Cloudnet 的安全策略功能的使用方法

Cloudnet: 安全策略

控制设备之间的访问规则,充分保障子网和设备的安全性.

创建规则

支持的地址类型

  • IP 地址
  • CIDR 网段
  • 设备 Tag
  • 子网 ID

支持的协议

  • TCP
  • UDP
  • ICMP

支持的端口范围

  • 1-65535

修改规则

只有管理员才有权限修改规则

  1. 登录用户中心,点击 安全规则 菜单
  2. 找到您要修改的规则,点击 修改 按钮
  3. 在弹出框中修改规则,点击 提交确认

删除规则

只有管理员才有权限删除规则

  1. 登录用户中心,点击 安全规则 菜单
  2. 找到您要修改的规则,点击 删除 按钮
  3. 在弹出框中选择 确认即可

5.5 - 域名解析

详细了解 Cloudnet 的域名解析功能的使用方法

Cloudnet: 域名解析

域名解析


Cloudnet 域名解析服务(DNS)提供了以下功能:

  • 设备解析
  • 定向解析
  • 绑定解析

设备解析

设备解析功能可以让您无需记住某台设备的 IP 地址,你可以直接使用主机名即可访问.

定向解析

定向解析功能可以让您将特定的域名绑定到特定 DNS 服务器,比如把公司内部域名解析到公司内部的 DNS 服务器.

绑定解析

绑定解析功能可以让您将特定的域名绑定到特定的 IP 地址,类似主机 hosts 文件的功能.此功能可避免网内设备修改主机 hosts 文件的麻烦.

解析设置


启用前请确保您的 DNS 服务已经正确配置,否则可能会导致您的设备访问网络出现问题

自定义 DNS 服务设置

您可以设置自定义 DNS 服务,子网内所有设备就可以使用自定义的 DNS 服务.

自定义 DNS 搜索域设置

您可以设置自定义 DNS 搜索域,子网内所有设备就可以使用自定义的 DNS 搜索域.

5.6 - 中继服务

详细了解 Cloudnet 中继服务的使用说明

中继节点状态

区域 城市 IP 类型 带宽支持 线路类型 资费类型 是否在线
华北 北京 IPv4/IPv6 2Gbps BGP 付费 已上线
华北 青岛 IPv4/IPv6 2Gbps BGP 付费 已上线
华北 郑州 IPv4/IPv6 2Gbps BGP 付费 计划中
华北 石家庄 IPv4/IPv6 2Gbps BGP 付费 计划中
华东 上海 IPv4/IPv6 2Gbps BGP 付费 已上线
华东 杭州 IPv4/IPv6 2Gbps BGP 付费 已上线
华东 南京 IPv4/IPv6 2Gbps BGP 付费 已上线
华东 福州 IPv4/IPv6 2Gbps BGP 付费 已上线
华中 武汉 IPv4/IPv6 2Gbps BGP 付费 已上线
华南 广州 IPv4/IPv6 2Gbps BGP 付费 已上线
华南 深圳 IPv4/IPv6 2Gbps BGP 付费 已上线
华南 长沙 IPv4/IPv6 2Gbps BGP 付费 计划中
西南 成都 IPv4/IPv6 2Gbps BGP 付费 已上线
西南 重庆 IPv4/IPv6 2Gbps BGP 付费 计划中
西北 乌鲁木齐 IPv4/IPv6 2Gbps BGP 付费 计划中
西北 呼和浩特 IPv4/IPv6 2Gbps BGP 付费 计划中
中国 香港 IPv4/IPv6 100Mbps CN2(GIA) 免费 已上线
中国 台湾 IPv4/IPv6 100Mbps CN2(GIA) 免费 已上线
亚洲 新加坡 IPv4/IPv6 1Gbps CN2(GIA) 免费 已上线
亚洲 日本 IPv4/IPv6 1Gbps CN2(GIA) 免费 已上线
亚洲 韩国 IPv4/IPv6 1Gbps CN2 免费 已上线
亚洲 印度 IPv4/IPv6 1Gbps CN2(GIA) 免费 计划中
亚洲 印尼 IPv4/IPv6 1Gbps CN2 免费 计划中
北美 美国 IPv4/IPv6 4Gbps CN2(GIA) 免费 已上线
北美 加拿大 IPv4/IPv6 1Gbps CN2 免费 已上线
欧洲 德国 IPv4/IPv6 1Gbps CN2 免费 已上线
欧洲 英国 IPv4/IPv6 1Gbps CN2 免费 已上线
欧洲 法国 IPv4/IPv6 1Gbps CN2 免费 已上线
国际 澳大利亚 IPv4/IPv6 1Gbps CN2 免费 已上线
国际 南非 IPv4/IPv6 1Gbps CN2 免费 计划中
国际 巴西 IPv4/IPv6 1Gbps CN2 免费 计划中
国际 阿联酋 IPv4/IPv6 1Gbps CN2 免费 计划中

国内中继服务说明

免费服务

您可以在订购套餐页面查看到免费的流量额度和带宽额度.

付费服务(选配)

所有订阅套餐中已经包含了国内高速中继服务(无限速,最高可达 2Gbps).

由于国内与国际的网络带宽成本差异悬殊, 国内的网络带宽成本非常高, 而中继服务器需要购买大量的带宽, 所以我们需要收取一定的费用来维持高质量的中继服务,从而保证用户的体验.

购买年付流量包后当月用不完的流量会不会清零?

不会. 例如: 您购买了 12 个月的 100GB/月 的流量包, 但是当月只用了 50GB 流量, 那么剩余的 50GB 流量会自动累计到下个月, 以此类推, 直到第 12 个月为止. 如果到了第 12 个月, 您的流量还是没有用完, 那么剩余的流量才会自动清零.

您可以直接理解为, 您购买的是有效期为 12 个月总计为 1200GB 的流量包, 12 个月内用完即可, 在有效期内流量不会清零.

如何确定我是否需要购买国内中继服务

注意: 内网映射功能依赖于中继服务, 如果您需要使用内网映射功能, 那么您需要购买国内中继服务才能使用国内的公网入口.

以下场景无需购买国内中继服务:

  1. 如果您没有设备或团队在中国境内,那么您就无需购买国内中继服务,因为国际节点是免费的.

  2. 中继服务是作为 Cloudnet 构建点对点直连网络失败后的备用方案, 如果您的设备之间能够成功构建直连网络, 那么您不需要购买国内中继服务.

根据我们的测试和统计, 在中国大陆地区, 如果您使用的是中国电信中国联通(中国网通)这类一级网络运营商办理的宽带,那么 99% 的用户可以成功构建直连网络,而不需要购买中继服务.

如果您使用的是教育网/中国移动(中国铁通)/广电网络或者其他二级及以上的网络运营商办理的宽带,例如长城宽带/鹏博士等,那么处于这些网络下的设备成功构建直连网络的概率远低于中国电信和中国联通, 您可能需要购买中继服务来提高网络性能.

中继服务的作用

Cloudnet 是一个用于建立安全网络连接的工具,而中继服务(以下简称为 derp). Derp 的主要功能和作用是帮助用户在网络环境受限或无法直接建立点对点连接的情况下,通过中继服务器实现安全的通信。

具体来说,derp 提供以下功能和作用:

  1. 中继服务:derp 充当中继服务器的角色,它可以帮助用户在不同的网络环境中建立连接。当两个设备无法直接建立连接时,它们可以通过 derp 服务器进行通信。

  2. 网络穿透:derp 使用了一种称为"hole punching"的技术,通过在防火墙和 NAT(网络地址转换)设备上创建临时规则,使得两个设备能够直接通信。这样,即使设备位于不同的局域网或网络环境中,也能够建立安全的连接。

  3. 安全性:derp 使用了 Cloudnet 的加密和身份验证机制,确保通信过程中的数据安全和隐私保护。所有的通信都经过端到端的加密,只有授权的设备才能访问通信内容。

  4. 可靠性:derp 采用了高可用性的架构,部署了多个中继服务器,以提供稳定和可靠的服务。当一个中继服务器不可用时,Cloudnet 会自动切换到其他可用的中继服务器。

Cloudnet 中继服务是作为直连网络的备用方案,通过它可以帮助用户在网络环境受限或无法直接建立点对点连接的情况下,实现安全的通信。它使用了网络穿透技术和加密机制,确保数据的安全性和隐私保护,并提供稳定可靠的网络服务。

中继节点的选择

Cloudnet 会自动检测您的网络环境,并根据您的网络环境自动选择最优的中继节点(延时最低)。

自定义中继节点

当前仅支持企业用户自定义中继节点,其它用户暂不支持自定义中继节点。

关于国内中继服务的提速降费计划

该计划目前处于测试阶段.

所有购买国内中继服务的用户, 无论是年付还是月付, 如果您申请加入该计划, 系统将自动动态调配带宽和流量,类似医保制度, 不会影响您的使用体验和网络性能.

防止滥用政策

为了保证中继服务的稳定性和可靠性, 我们对中继服务的使用做了一些限制, 以防止滥用.

  • 我们承诺在您的中继服务有效期内对您额度内的流量不会进行任何限速.
  • 流量用尽后系统会自动触发超量限速策略,以保证其他用户的使用体验.
  • 我们不允许持续大流量的滥用行为,比如持续几小时以上的满速峰值带宽,我们会对该类流量进行限速处理,以保证其他用户的使用体验.
  • 我们不允许使用中继服务从事违反国家法律法规行为,如 DDoS 攻击,黄赌毒,盗版,侵权等,对此类行为发现后封号不退款.

5.7 - 日志服务

详细了解 Cloudnet 日志服务的使用说明

日志服务当前处于测试阶段, 仅支持团队和企业用户.

您需要安装 Cloudnet_beta_1.52+ 以上版本的客户端才能使用该功能

什么是日志服务

  • 日志服务是为了方便网络管理员对网络中的设备进行管理和排查故障, 从而保证网络的安全性和稳定性.
  • 日志服务是一种网络安全手段, 通过对网络中的设备进行日志记录, 从而保证内部敏感数据访问的安全性.

日志服务是否可以查看用户的流量

不可以.

  • 您需要先通过 Cloudnet 客户端启用设备的日志功能后才能在 Web 页面使用此功能.
  • 日志服务仅限于记录设备的网络活动, 不能查看设备流量的内容, 因为流量内容经过 WireGuard 点对点加密, 永远不可见, 任何人都无法查看!

5.8 - 内网穿透

详细了解 Cloudnet 内网映射的使用说明

暴露端口带来的安全风险由用户自行承担.我们推荐使用内部 IP 地址来访问应用服务, 以减少端口对外映射的风险.

您需要升级客户端到 CloudNet_v1.36.2-7 以上版本才支持该功能.

根据监管部门的要求: 使用国内入口(包括香港)的映射需要遵守国家法律法规,且内容合规,如果触发违规警告,系统会停止映射,用户需要提供合规材料才能恢复.

什么是内网映射(内网穿透)

内网映射,又称为端口映射,是一种网络地址转换的技术。它允许在内部网络和互联网之间建立一个直接的连接,使得外部网络(如互联网)能够访问内部网络中的特定设备或服务。

在许多情况下,内网映射技术是非常有用的。例如,如果你在家里有一个私人服务器,你可能想要从外部网络访问它。通过使用内网映射,你可以将你的私人服务器映射到一个公共 IP 地址,这样你就可以从任何地方通过互联网访问你的服务器。

内网映射的实现通常需要在路由器或防火墙上进行配置,设置哪些端口应该被映射,以及它们应该被映射到内部网络中的哪个设备。然后,当来自外部网络的请求达到映射的端口时,路由器或防火墙会自动将请求转发到内部网络中的正确设备。

Cloudnet 内网映射的优势

  • Cloudnet 的内网映射功能不需要您配置路由器或防火墙,只需要您在用户中心配置好内网映射的端口和协议,就可以实现内网映射.
  • Cloudnet 的内网映射功能支持多种协议: TCP/UDP/HTTP/HTTPS.
  • Cloudnet 的内网映功能底层是基于 QUIC 协议实现的, 我们对该协议也增加了 KCP 优化算法, 以便提供更高的端口转发性能, 以实现更高性能的内网穿透,其 TCP/UDP 端口转发性能提高 30% 以上,并且公网均配备了 2Gbps 的 BGP 超大带宽,充分保证用户的使用体验。

服务内容

  • 基于 KCP+QUIC 协议开发实现的内网穿透,性能更高
  • 如果您本地网络 UDP 被运营商严重 QoS, 可手动切换到备用方案 mTCP 协议
  • 不限带宽, 流量计费, 最大带宽支持 2Gbps, 已覆盖全国各地 BGP 线路节点
  • 支持 TCP/UDP/HTTP/HTTPS 协议
  • 不限连接数, 每帐户最高并发数支持请参考套餐配额
  • 支持自定义域名,包含免费和付费用户
  • 客户端免配置, 掉线后自动 5s 快速重连
  • 多城市入口可选, 距离越近延时越低, 速度越快
  • 支持多个城市入口绑定到同一个设备,可实现负载均衡和高可用

如何使用内网映射

请注意: 内网映射功能会消耗中继服务的流量.

您需要登录 Cloudnet 用户中心创建内网映射, 创建完成后, 系统会将映射规则推送给您的客户端, 客户端会自动创建转发规则, 最后您就可以通过公网端口来访问您的内部端口.

FAQ

使用 http 映射的问题处理

使用 http 映射后出现 503 错误的问题

如果您是在公司或单位使用,请确认您的上层网络中是否有内容审查或安全检查系统, 而该系统通常会拦截 http 请求, 因为 http 是不安全的协议,内容也是明文传输的,所以会导致错误.

解决方法: 公网入口改用 HTTPS 映射, HTTPS 是安全的协议,内容是加密传输的,所以无法被检测和篡改. 而内部转发的配置无需改动, 仍然使用 http 即可.

使用 http 映射后访问的内容与实际内容不一致

出现这种现象一般是访问者的 http 内容被篡改,访问者可能处在一个不安全的网络环境中,由于 http 是明文的,所以可能会被运营商或上层网络的安全检查系统篡改,导致访问的内容与实际内容不一致.

解决方法: 公网入口改用 HTTPS 映射, HTTPS 是安全的协议,内容是加密传输的,所以无法被检测和篡改. 而内部转发的配置无需改动, 仍然使用 http 即可.

如何将底层传输协议 KCP 切换为 mTCP 协议

虽然 KCP 有着很高的性能, 但是由于国内网络环境的特殊性, 有些用户的本地网络 UDP 会被运营商严重 QoS 的情况, 尤其是校园网/教育网/广电网络/移动宽带, 您可手动切换到备用方案 mTCP 协议, 以提高内网穿透的稳定性和性能.

  • 切换方法: 在 内网映射-设置-优先使用 KCP禁用即可.
  • 升级客户端: Cloudnet 内核版本需 >= 1.36.2.9

注意: 对于已经创建的映射规则不受影响. 禁用后新创建的映射规则才会使用 mTCP 协议.

使用自定义域名的注意事项

使用海外入口

  • 域名无需备案, 因为海外不受国内备案政策的影响
  • 请在 DNS 服务商处添加域名解析记录, 指向我们入口的 cname 地址, 例如: beijing-01.dayunet.com
  • 如果配置了自定义域名,那么入口映射协议不能使用 https, 因为我们的服务器没有您域名的 SSL 证书,所以无法在入口处理证书请求. 您可以通过绑定 sni 转发的方式实现 https 访问
  • 如果使用 mTCP 协议,请确保自定义域名的前缀是 mt-,例如: mt-mynet.dayunet.com, 否则会出现 503 错误

使用国内入口

  • 域名需已备案,因为国内受备案政策的影响, 根据国家监管政策, 未备案的域名可能无法通过国内数据中心的备案检测系统
  • 请在 DNS 服务商处添加域名解析记录, 指向我们入口的 cname 地址, 例如: beijing-01.dayunet.com
  • 如果配置了自定义域名,那么入口映射协议不能使用 https, 因为我们的服务器没有您域名的 SSL 证书,所以无法在入口处理证书请求. 您可以通过绑定 sni 转发的方式实现 https 访问
  • 如果使用 mTCP 协议,请确保自定义域名的前缀是 mt-,例如: mt-mynet.dayunet.com, 否则会出现 503 错误

以上条件均满足后, 您就可以使用自定义域名来访问您的内部服务了, 否则可能会出现 404 错误或域名未备案的提示.

HTTP 502 错误的排查

  • 确保已经安装了最新版的客户端
  • 创建成功后需等待 1-2 分钟, 系统会自动推送映射规则到客户端, 如果您的客户端不在线, 则无法推送, 请确保客户端在线;
  • 您的套餐是否已过期;
  • 中继服务流量是否已经用尽;
  • 客户端的状态是否在线;
  • 转发的目的 IP 是否正确,且端口是否可通;
  • 请确保映射协议一致,例如: 您如果使用的是 TCP/UDP 端口映射, 若端口上运行的并非 http 服务则不能从浏览器访问;

HTTP 503 错误的排查

在进行排查之前请确保您的映射规则是有效的, 转发的目标 IP 和端口能够从您的设备正常访问.然后再按照以下步骤排查:

  • 确保已经安装了 最新版客户端, Linux 请使用 apt/yum 升级!
  • 如果你在原有的映射规则上更换了设备,请务必要重启原设备的客户端服务以释放连接,然后在新设备上重启服务才能让服务器连接到新的设备;
  • 使用内网映射时请勿开启 IP 广播服务;
  • 确定电脑没开全局代理或 VPN
  • 如果开启了防火墙, 先禁用防火墙, 然后再测试
  • 电脑的 DNS 能否正确解析 api.cloudnet.world 及其子域名
  • 更换设备测试下是不是本地网络和设备的原因
  • HTTP/s 映射的域名与您客户端的隧道 ID 是对应的, 如果您将多个映射的域名修改为相同的值,会导致服务器无法路由,从而导致 503 错误
  • 公网入口的 https 可以转发到你内网的 http, 但是反过来是不行的, 不能使用 http 入口转发到你内网的 https,否则会出现 503 错误
  • 如果没有绑定自定义域名的情况下,请勿修改系统生成的域名,否则会出现 503 错误

如果经过以上步骤后仍然没有解决问题,请提工单给我们,我们会协助您排查并解决问题!

5.9 - 团队管理

详细了解 Cloudnet 团队管理的使用说明

团队管理功能仅支持团队和企业用户.

什么是团队管理功能

团队管理是一种多帐户管理功能, 针对团队和企业用户设计, 您可以方便的对员工的设备进行统一管理, 例如: 您可以将员工的设备统一加入到一个或多个子网中, 并且可以对子网中的设备进行授权及权限控制.

如何使用团队管理功能

创建团队

您需要具备团队或企业套餐用户才能使用团队管理功能.

登录 Cloudnet 用户中心,在菜单栏的 团队 菜单, 然后点击 创建团队 按钮, 按照提示填写团队名称, 团队描述, 团队管理员等信息, 然后点击 创建团队 按钮即可.

添加成员

需要已注册用户通过在用户中心的团队菜单,点击加入团队按钮,然后输入团队邀请码,点击确定加入按钮即可.

管理成员

  • 管理员进入用户中心的团队菜单后,可以看到申请加入的成员申请,点击同意按钮后该成员才能成功加入团队.
  • 如果成员已经离职,管理员可以点击退出按钮将该成员移除出团队.

成员被移除出团队后,该成员的所有设备将不再受团队管理,并且其设备也无法再连接该团队的网络.

6 - 常见问题

产品常见问题汇总及解答

为什么桥接阿里云内网后速度很慢?

用户场景

阿里云 ECS(带宽 3M)和本地的服务器在同一个 Cloudnet 网络内部, 阿里云 ECS 通过 nginx 反向代理将本地服务代理到阿里云 ECS,访问很不稳定,时好时坏!

问题解析

  • 阿里云 ECS 主机的 CPU 负载是否正常, 如果其它程序对 CPU 占用较高的情况下就会导致资源竞争而客户端无法稳定运行;
  • 3M 带宽, 换算为实际的速率大概是 400KB/s 左右, 如果有多个程序共用这个带宽, 那么实际的体验会很不理想;
  • 本地服务器的网络出口带宽上行是多大? 如果比阿里云的 3M 还低的话那么网络体验会更加糟糕;
  • nginx 反向代理的问题, 从公网访问 nginx 时, 首先会消耗 3M 带宽, 然后 nginx 再转发到本地服务器, 这一过程又消耗了一次 3M 带宽, 一旦超限(400KB 左右)就会触发阿里云带宽限制而导致网络挂起超时;

解决问题

  • 升级您的阿里云带宽, 以提高网络体验.
  • 建议您直接使用我们的内网映射到您的本地服务器, 测试效果是否比自建的阿里云 nginx 转发好些.

为什么客户端登录时提示"网络错误,无法连接注册中心"

出现该问题一般是您的网络环境存在问题,请按照以下步骤排查:

  • 检查您的网络是否正常,是否可以正常访问互联网
  • 检查您的系统是否开启了代理或全局 VPN
  • 检查您的 DNS 设置是否正常
  • 检查您的防火墙是否正常,是否禁止了 Cloudnetd 程序,建议关闭防火墙后再尝试
  • 更换其它网络,将电脑 WIFI 连接到手机热点, 使用移动网络 4G/5G 网络测试是否可以正常登录

游戏联机为什么没有自动发现对方设备?

由于 Window 自身的限制, 系统只把广播包发送给了电脑的物理网卡(主路由网卡), 而没有把广播包发送给 Cloudnet 虚拟网卡, 如果需要实现自动发现的效果需要开启广播功能:

  • 手动设置方式: 如果你的游戏有提供配置联机 IP 的方式,直接填写 Cloudnet 的内网 IP 地址即可.
  • 自动发现设置: 客户端-右键菜单-设置-IP 广播服务-启用即可, 开启后 Cloudnet 会将系统的广播包发送给虚拟网卡, 然后在游戏中就可以自动发现对方了.

为什么退出网络后重新注册到别的子网会失败?

每个设备都拥有一个唯一的 key, 用于标识设备, 一旦设备注册成功后, 该 key 就会被绑定到该设备, 如果你仅仅是在客户端退出网络, 却没有从原来的子网中删除该设备, 那么该设备仍然是属于原子网, 从而就会导致注册失败.

如何解决?

  • 方法 1, 退出网络后,在您的本地电脑中彻底删除客户端数据目录,然后重新注册即可. 参考如何彻底清理设备的子网信息?
  • 方法 2, 登录用户中心,在原子网中删除该设备, 然后客户端重新注册即可.

以上方法任选其一即可.

如何彻底清理设备的子网信息?

以下操作会删除客户端数据目录,包括日志文件,请慎重操作,否则需要重新注册设备.

Windows

  • 手动停止服务 “Cloudnet”
  • 然后删除这个文件夹: “C:\ProgramData\Cloudnet"
  • 手动启动服务 “Cloudnet”
  • 通过客户端重新登录即可

macOS

sudo rm -rf "/Library/Cloudnet/"
# 然后重启服务即可

Linux

sudo rm -rf /var/lib/cloudnet/
sudo systemctl restart cloudnet

为什么我的设备无法互通?

如果您的设备在注册成功后却始终无法相互 Ping 通,请按照以下步骤排查:

  1. 登录用户中心查看设备是否处于在线中的状态,且设备不能是已过期的状态.

  2. 您是否创建了安全策略,系统默认的安全策略是允许设备之间的所有流量,如果您创建安全策略,那么就会变更为默认拒绝所有设备之间的流量,并且按照你的 ACL 规则来处理流量.

  3. Windows 系统防火墙默认是开启的,并且默认会拒绝所有的 ICMP 流量, 所以会 ping 不通, 您可以将 Windows 系统防火墙关闭或禁用后再尝试 ping 即可.

设备间的网络互联是高可用的吗?

已注册的设备之间会组成一个点对点的直连网络,如果您的设备之间能够成功构建直连网络,那么会优先使用直连网络,同时也会与中继服务器保持心跳连接,一旦运营商网络变更导致直通失败,此时会立即切换到中继网络,直到直连网络恢复再切换回直通模式.其切换过程是无感知的,设备之间的网络依然是持续高可用的.

为什么延时一开始很高,然后又下降了?

当某台设备在注册成功后, 但是设备长时间未与其他设备产生数据通讯,那么该设备会被系统标记为idle空闲状态, 此时该设备与其它设备的连接会被断开,一旦该设备与其他设备产生数据通讯,该设备会重新激活直连网络,因此在此过程中会出现延时稍高,待连接成功后会恢复正常,延时也会下降.

为什么更换设备后映射都连不上了?

如果在修改映射时更换设备, 那么原设备客户端必须重启服务, 否则会导致原设备持续占用服务器连接隧道, 而新设备就无法绑定映射规则到服务器上.

如何计算我的网络性能?

与传统的 VPN 不同, Cloudnet 是一个点对点的直连网络,您的网络性能取决于您的设备之间的网络状况.

由于没有中心服务器处理流量, 您的网络性能可能受限于你本地宽带的最大上行带宽,比如您在运营商办理的宽带是 300Mbps, 而这个带宽实际是下行带宽, 而运营商限制的上行带宽一般是下行带宽的 1/10, 那么您的 Cloudnet 设备间网络性能最大也只能达到 30Mbps.

但是处于同一个局域网内部的设备之间, 由于不需要经过运营商的中转, 网络性能会更好:

  • 如果你的局域网是千兆网络, 那么 Cloudnet 可以达到 1000Mbps.
  • 如果你的局域网是万兆网络, 那么 Cloudnet 可以达到 10Gbps.

如何查看设备当前是直连还是中继?

Windows/macOS 桌面用户:

  • 打开客户端, 点击系统托盘处的 Cloudnet 图标, 在弹出菜单查看我的设备, 查看设备列表.

Linux 命令行用户:

  • 执行cnet status命令, 查看设备列表.

在设备列表中:

  • 如果设备状态包含direct, 那么该设备当前是直连网络模式.
  • 如果设备状态包含relay, 那么该设备当前是中继网络模式.

如何确定我是否需要购买中继服务?

中继服务是作为 Cloudnet 构建点对点直连网络失败后的备用方案, 如果您的设备之间能够成功构建直连网络, 那么您不需要购买中继服务.

根据我们的测试和统计, 在中国大陆地区, 如果您使用的是中国电信中国联通(中国网通)这类一级网络运营商办理的宽带,那么 99% 的用户可以成功构建直连网络,而不需要购买中继服务.

如果您使用的是教育网/中国移动(中国铁通)/广电网络或者其他二级及以上的网络运营商办理的宽带,例如长城宽带/鹏博士等,那么处于这些网络下的设备成功构建直连网络的概率远低于中国电信和中国联通, 您可能需要购买中继服务来提高设备网络的稳定性.

国内中继服务为什么要收费?

国内与国际的网络环境差异较大, 由于国内的网络带宽成本较高, 而中继服务器需要购买大量的带宽, 所以我们需要收取一定的费用来维持高质量的中继服务,从而保证用户的体验.

设备离线问题排查

  • 确保套餐未过期
  • 您是否给设备设置了有效期
  • 设备是否使用了带有规定有效期的授权码
  • 系统是否开启了代理或全局 VPN
  • DNS 设置的服务器是否正常
  • 将输出日志截图或复制日志内容到支持工单即可,我们会帮您分析问题

Windows

# 允许当前用户执行脚本
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser -Force
# 查看日志
& "C:\Program Files\CloudNet\core\cnet.ps1" logs
# 如果你不会使用命令,那么可以直接打开目录查看日志
"C:\ProgramData\Cloudnet\cloudnetd.log2.txt"

macOS

/usr/local/cloudnet/bin/cnet logs

Linux

/usr/sbin/cnet logs

关于运营商对 UDP 限速的问题解答

运营商为什么要对 UDP 限速?

运营商对 UDP 流量进行限速通常是出于以下几个原因:

  1. 网络拥塞管理 UDP 协议不像 TCP 有拥塞控制机制,因此在网络拥堵时,UDP 流量可能会占用过多带宽,影响其他用户的网络体验。

  2. 服务质量保障(QoS) 运营商可能会优先保证一些重要业务(如 VoIP、在线游戏等)的服务质量,而对其他非关键 UDP 流量进行限速。

  3. 防止滥用 由于 UDP 协议的特性,它常被用于 DDoS 攻击中。限速可以在一定程度上减少这类攻击的影响。

  4. 成本控制 对高流量应用进行限速可以减少运营商的带宽成本,尤其是在峰值时间段。

  5. 政策法规遵循 某些地区的法律或政策可能要求运营商对特定类型的流量进行管理或限制。

通过这些措施,运营商旨在平衡网络资源,确保所有用户都能获得相对公平且稳定的网络服务。

运营商对 UDP 限速的影响和范围

根据我们对不同的运营商测试的数据样本, 我们发现运营商对 udp 限速的 QoS 机制是不同的, 有的运营商会对 udp 限速, 有的运营商不会对 udp 限速.

运营商 宽带产品 是否限速 限速时段 限速程度
电信 商务专线 - -
电信 家庭宽带 高峰时段 轻微
联通 商务专线 - -
联通 家庭宽带 高峰时段 轻微
移动 商务专线 - -
移动 家庭宽带 高峰时段 严重
广电 家用宽带 高峰时段 较严重
长城宽带 家用宽带 高峰时段 很严重
鹏博士 家用宽带 高峰时段 很严重

结论

电信联通这类运营商由于硬件设施较好,宽带资源充足, 限速程度较轻, 一般不会对 udp 限速, 但是在高峰时段也会有轻微的限速.

对于国内的二级运营商持牌宽带运营商, 由于硬件设施较差, 宽带资源紧张, 限速程度较严重, 会对 udp 进行严重的限速.

7 - 技术研究

详细了解 Cloudnet 的技术原理及其网络技术的研究成果

此文档汇集了 Cloudnet 的技术原理及其网络技术的研究成果, 以供用户参考.

7.1 - NAT穿透打洞技术介绍及常见问题解答

本文将详细介绍: NAT穿透打洞技术介绍及常见问题解答,以及其带来的效果和价值。

nat-traversal

NAT 分类以及哪些 NAT 可以打洞成功?

NAT(网络地址转换)主要有以下几种分类:

  1. 全锥形 NAT (Full Cone NAT)

    • 一旦一个内部地址 (iAddr:iPort) 被映射到一个外部地址 (eAddr:ePort),任何发往 eAddr:ePort 的数据都会被转发到 iAddr:iPort。
    • 打洞成功率:高
  2. 受限锥形 NAT (Restricted Cone NAT)

    • 只有当 iAddr:iPort 先发送数据给某个外部地址 (eAddr:ePort) 后,来自该外部地址的数据才能被转发回 iAddr:iPort。
    • 打洞成功率:中
  3. 端口受限锥形 NAT (Port Restricted Cone NAT)

    • 类似于受限锥形 NAT,但是通信受限于特定的端口。只有当 iAddr:iPort 先发送数据给 eAddr:ePort 后,来自 eAddr 和指定端口的数据才会被转发。
    • 打洞成功率:中
  4. 对称型 NAT (Symmetric NAT)

    • 每次从相同的内部地址和端口发送到一个特定的外部地址和端口时,都会使用一个新的随机外部端口。
    • 打洞成功率:低
    • 该类型的 NAT 常见于国内教育网系统中, 例如: 校园网, 教育网等.

在进行 NAT 穿透时,全锥形 NAT 是最容易打洞成功的,因为它对于入站数据没有严格的限制。而对称型 NAT 是最难打洞的,因为它对于每个不同的外部目标使用不同的映射,这使得建立直接的点对点连接变得复杂。

在实际应用中,例如 P2P 通信或 VoIP,通常需要使用 STUN(Session Traversal Utilities for NAT)、TURN(Traversal Using Relays around NAT)或 ICE(Interactive Connectivity Establishment)等技术来辅助完成 NAT 穿透。

为什么我们专注研究 NAT 打洞?

NAT 打洞(NAT Traversal)是一种技术,它允许位于私有网络中的设备与外部世界建立直接的通信连接。我们专注研究 NAT 打洞的原因包括:

  1. P2P 网络优化

    • 在点对点 (P2P) 网络中,NAT 打洞可以提高数据传输效率,减少延迟,并降低中继服务器的负载。
  2. 成本节约

    • 通过直接通信,可以避免使用昂贵的中继服务,从而降低运营成本。
  3. 隐私和安全性

    • 直接的端到端连接可以增强数据传输的隐私性和安全性,因为数据不需要经过可能不受信任的第三方服务器。
  4. 应用兼容性

    • 许多现代的互联网应用,如视频会议、在线游戏和 VoIP 服务,都需要能够穿透 NAT 来实现最佳性能。
  5. 广泛的适用性

    • 随着 IPv4 地址的枯竭,越来越多的网络采用 NAT。因此,NAT 打洞技术变得越发重要,以确保网络的连通性。
  6. 互联网规模扩展

    • NAT 打洞技术使得在没有公网 IP 地址的情况下也能进行大规模的网络连接,这对于互联网的扩展至关重要。

由于以上原因,NAT 打洞技术在网络通信领域中占据了重要地位,特别是在那些需要绕过 NAT 设备以建立直接通信的场景中。

cloudnet 如何实现 NAT 穿透? 使用了哪些技术

在 NAT 1-3 中基本上 Cloudnet 都是可以打洞成功的. Cloudnet 使用了 STUN/TURN/ICE 等技术来辅助完成 NAT 穿透.

对于 NAT4 类型的 NAT, Cloudnet 使用了客户端随机端口技术, 但是这不能保证 100% 的成功率, 所以我们引入了中继服务, 以保证 NAT4 类型的设备也能够快速使用高速网络连通.

我应该如何做来增加 NAT 打洞成功率?

目前很多城市的运营商都已经回收公网 IP 地址, 并分配 100.64 段的 IP 地址, 近年来运营商新装的宽带基本上都是光猫+路由器一体机, 如果你的路由器没有配置上网帐户,直接就是插上就能用的话, 那你的光猫就带有路由器功能, 那么您的 NAT 至少是 2-3 层, 如果您有设备的控制权, 我们建议您开启 upnp/pcp/pmp 这些作为辅助, 那么 NAT 打洞成功率就会很高. 如果你是网络管理员, 可以开放 udp 端口 41641, 那么 NAT 打洞成功率 100%.

NAT 穿透/打洞的常见问题解答

为什么在同一个内网中有的设备可以打洞成功,有的却无法打洞成功?

在同一个内网中,不同设备之间在进行 NAT 打洞时可能会遇到成功或失败的情况,这可能由以下几个因素导致:

  1. NAT 类型差异

    • 即使设备位于同一内网,它们也可能连接到不同类型的 NAT。例如,一些设备可能处于完全锥形 NAT 后面,而其他设备可能处于对称型 NAT 后面。对称型 NAT 更难穿透。
  2. 端口预测不一致

    • NAT 设备在分配外部端口时可能采用不同的策略。如果 NAT 设备不允许端口预测,那么打洞过程可能会失败。
  3. 设备配置

    • 设备的防火墙设置或私有网络配置可能阻止了打洞尝试。确保相关的端口和协议没有被阻塞是成功打洞的关键。
  4. 超时设置

    • 不同的 NAT 设备可能有不同的超时设置。如果一个设备的 NAT 映射很快就超时了,那么打洞尝试可能会因为映射失效而失败。
  5. 并发连接限制

    • 某些 NAT 设备可能对并发连接数有限制。如果达到上限,新的打洞尝试可能无法建立。
  6. IP 地址变化

    • 在动态 IP 地址分配的环境中,设备的公网 IP 地址可能会变化,这会影响到打洞的成功率。
  7. 路由器/防火墙固件差异

    • 不同的路由器或防火墙固件可能实现 NAT 的方式不同,这可能会影响到 NAT 打洞的成功率。
  8. 多层 NAT

    • 如果内网中存在多层 NAT,打洞过程将变得更加复杂,成功率可能会降低。
  9. 端口容量

    • 因为需要占用最上层的公网 IP 的端口, 而最上层公网 IP 往往可能是整个小区的人都在共用, 端口也会很紧张, 如果 NAT 打洞时协商不到端口那就会持续协商,直到成功协商到端口并打洞成功, 所以这也会导致为什么同一个内网的设备有的打洞成功而有的却无法成功的原因.

理解和诊断这些因素有助于改善 NAT 穿透/打洞的成功率,并且可能需要针对特定的网络环境调整策略。

如何解决这个问题呢?

Cloudnet 在 1.58 版本开发了一种叫做 NAT 动态路由的技术. 该技术的原理是将打洞成功的设备作为 NAT 路由节点, 而同处于一个内网的其他设备则通过这个 NAT 路由节点来进行转发特定的网段流量, 当设备打洞成功则自动切换回本机路由,不再走 NAT 动态路由.

使用该功能的前提是内网中至少有一个设备是可以打洞成功的, 且该设备必须是一直在线的, 且不会被关机, 以保证 NAT 动态路由的可用性.

Cloudnet 进行 NAT 打洞时, 为什么会有延时?

  • 对于 NAT1-3 类型的 NAT, Cloudnet 基本上可以做到只需几秒即可打洞成功.

  • 对于 NAT4 可能不会立刻打洞成功, 针对此场景我们会先使用中继服务来保证你的网络是通的, 并同时进行打洞, 一旦打洞成功就会切换到直连模式, 这个过程有时会持续几分钟甚至更久.

什么是 idle 状态?

如果穿透成功后长时间没有使用(没有任何流量进出),那么客户端与对端的设备就会变为空闲状态(idle).

什么情况下会重新打洞?

  • 穿透成功就会持续占用运营商公网 IP 网关分配的端口, 如果运营商的网关设备重置连接或强制释放端口那就需要重新进行打洞

  • 如果穿透成功后长时间没有使用(没有任何流量进出),那么客户端也会自动释放端口,再次使用时就会重新进行打洞.

7.2 - 如何在 Cloudnet 上提升 QUIC 和 UDP 的传输效率

本文将详细介绍如何在 Cloudnet 上提升 QUIC 和 UDP 的传输效率,以及其带来的效果和价值。

大家好,我们来聊聊性能优化了。记得之前我们如何提升了 TCP 传输效率吗?现在,我们有了新动作——我们显著提高了 Linux 系统上 UDP 传输的速度。就像以前一样,我们计划将这些改进贡献给 WireGuard 社区。

UDP 协议是一种相对简单的传输方式,它不像 TCP 那样会确认数据包是否成功送达。因此,UDP 特别适合那些对即时响应有严格要求的应用,比如在线游戏或视频会议。而最近,随着新兴协议 HTTP/3 和 QUIC 的崛起,UDP 的使用率激增。

我们通过使用一种技术叫做分段卸载,提高了基于 HTTP/3、QUIC 等 UDP 协议的应用的传输效率。在标准的 Linux 系统上,我们使得 Cloudnet 的 UDP 传输速度提高了四倍,甚至超过了同一硬件上的内核级 WireGuard 实现。

想要体验这些?你可以在 Cloudnet v1.54 中尝试。继续阅读,我们将分享更多细节;如果你只对结果感兴趣,也可以直接跳到成果部分。

背景

接下来,我们会探讨 wireguard-go——Cloudnet 数据传输的核心。它通过 TUN 设备接收操作系统的数据包,对它们进行加密,然后通过 UDP 协议发送到另一端。返回的数据包也通过相同的路径解密后返回到操作系统。

Cloudnet

我们先前的改进主要集中在提升每次 I/O 操作中传输的数据包数量。不管是 TCP 还是 UDP,我们都采用了一些技术来提高数据包处理的效率。但这些技术对于 TCP 更加有效,因为 UDP 流量在我们的 wireguard-go 实现中几乎没有得到改善。考虑到越来越多的应用开始采用 HTTP/3 和 QUIC,我们现在把重点放在了提升 UDP 的性能上。

我们在 Cloudnet v1.36 和 v1.40 中做的改变更新了这个数据包管道,大大增加了 wireguard-go 上的 TCP 吞吐量。在这两种情况下,我们都专注于增加每个 I/O 操作端到端传输的数据包数量。在 TUN 驱动端,这涉及到 TCP 分段卸载(TSO)和通用接收卸载(GRO)。在 UDP 套接字端,我们利用了 UDP 通用分段卸载(UDP GSO)和 UDP 通用接收卸载(UDP GRO)。分段和接收卸载都使多个数据包能够作为一个单一元素通过堆栈传递。分段卸载涉及在最接近传输边界的地方将单个“怪兽”数据包分段,这是要写入自然大小的数据包的地方。接收卸载涉及将多个数据包合并成一个“怪兽”数据包,这是最接近接收边界的地方,预期在这里读取自然大小的数据包。

Cloudnet

Cloudnet

在这些卸载被用于 UDP 的地方,UDP 是作为底层协议的。我们在 TUN 端实现的卸载是针对 TCP 的,并不适用于 UDP 覆盖流量。这导致 UDP 流在 wireguard-go 上几乎没有什么好处。TCP 一直是高吞吐量应用的传输协议的首选,所以最初专注于 TCP 吞吐量是有道理的。然而,随着 HTTP/3 和 QUIC 的出现,这种情况正在开始改变。

HTTP/3 和 QUIC

HTTP/3 是 HTTP/2 的继任者,它使用 QUIC,这是一个相对较新的基于 UDP 的多路复用传输协议。

Cloudnet

QUIC 有许多优于 TCP 的优点,包括但不限于:

  • 紧密集成 TLS,使其不易受到中间盒子干扰或依赖传输层元数据的影响
  • 更快的连接握手(假设不需要 HTTP/2 over TCP 来引导)
  • 对头阻塞的抵抗力更强;流感知从传输协议延伸到 HTTP/3
  • 使拥塞控制快速演化成为可能,因为它存在于用户空间
  • 全球约有 27% 的网络和服务器已经支持 HTTP/3。

所以,HTTP/3 和 QUIC 的采用正在增加,我们需要扩展我们的性能工作以使其受益。

基线

关于基准测试的免责声明:这篇文章包含基准测试!这些基准测试在写作时是可重现的,我们提供了我们运行它们的环境的详细信息。但是基准测试结果在不同的环境中会有所不同,而且随着时间的推移,它们也往往会过时。你的里程可能会有所不同。

我们需要设置一个 UDP 吞吐量基线以供后续比较。在我们之前的文章中,我们使用 iperf3 进行了 TCP 基准测试,但在写作时,iperf3 不支持 UDP GSO/GRO。没有这个支持,它不会反映出与广泛使用的 QUIC 实现相比的实际性能。所以,我们将使用 secnetperf,这是 msquic 的一个实用程序,来代替。引用 msquic 的 README:

MsQuic 是微软对 IETF QUIC 协议的实现。它是跨平台的,用 C 写的,设计成一个通用的 QUIC 库。MsQuic 还有 C++ API 包装类,并为 Rust 和 C# 暴露了互操作层。

msquic 的一位维护者,Nick Banks,在 IETF 内部工作,并提出了一个 QUIC 性能协议,用于测试 QUIC 实现的性能特性。secnetperf 实现了这个协议。

使用 secnetperf,我们为 wireguard-go@2e0774f 和内核 WireGuard 在两对主机之间的 QUIC 吞吐量进行了基线测试,这两对主机都运行着 Ubuntu 22.04,使用的是写作时可用的 LTS 硬件启用内核:

2 x AWS c6i.8xlarge 实例类型 2 x “裸机”服务器,由 i5-12400 CPU 和 Mellanox MCX512A-ACAT NICs 提供动力 AWS 实例位于同一区域和可用区:

在我们之前的文章中,我们分析了火焰图(),这些图突出显示了通过内核网络堆栈和 wireguard-go 可以提高 CPU 周期/字节效率的地方。这个分析的结果导致我们在 wireguard-go 的两端实现了传输层卸载,这提高了覆盖网络上的 TCP 流量的吞吐量。现在,我们需要在这项工作的基础上,同样使 UDP 流量在 wireguard-go 上受益。进入 tx-udp-segmentation。

Cloudnet

NETIF_F_GSO_UDP_L4 是 Linux 内核中用于在代码中定义它的符号。引用内核文档 NETIF_F_GSO_UDP_L4 接受一个超过 gso_size 的 UDP 头和负载。在分段时,它在 gso_size 边界上分段负载,并复制网络和 UDP 头(如果小于 gso_size,则修复最后一个)。

Cloudnet

这个 netdev 特性在 Linux v4.18 中被添加,最近在 Linux v6.2 中被添加为一个可以在 TUN 驱动中切换的特性。TUN 驱动在 v6.2 中的支持是提高 UDP 吞吐量所需的缺失的部分。开启它后,wireguard-go 可以从内核接收“怪兽” UDP 数据报:

反向方向的工作方式类似。它不需要一个显式的 netdev 特性来支持 UDP GRO,而是简单地依赖于相同的 virtio 网络基础设施来支持合并。

现在,来看看总体结果。

应用 TUN UDP GSO/GRO 导致 wireguard-go 的吞吐量大幅提高,因此也在 Cloudnet 客户端中提高。

有了这一新的改变集,Cloudnet 上的 UDP 吞吐量在裸机 Linux 上增加了 4 倍,并超过了该硬件上的内核 WireGuard 实现。

AWS c6i.8xlarge 实例在约 7Gb/s 的地方遇到了一个墙,这似乎是底层网络的人为限制。

rx-udp-gro-forwarding 和 rx-gro-list

关于 UDP 吞吐量在转发拓扑中的两个 Linux 内核网络设备特性很重要,即数据包从一个接口进入并从另一个接口离开。

第一个是 rx-udp-gro-forwarding,引用其来自 Linux 内核的注释:

Cloudnet

如果在接收接口上没有启用 rx-udp-gro-forwarding,那么被转发的 UDP 数据包,即不是目标为本地套接字的数据包,将不会是合并的候选者。这限制了 GRO 在堆栈的其余部分的效果,降低了吞吐量。最初,对于转发的数据包,默认启用了 UDP GRO,这是在这个特性存在之前。这是无意的,如引入该特性的内核提交所提到的。

Cloudnet

我们建议在你的默认路由接口上启用 rx-udp-gro-forwarding,如果你正在运行 Cloudnet 版本 1.54 或更高版本作为子网路由器或出口节点,并且使用的是 Linux 6.2 或更新的版本.

最后

我们还介绍了一些技术细节,包括如何在 Linux 系统上启用特定的网络设备特性来进一步提升 UDP 性能。我们的工作使得 Cloudnet 上的 UDP 传输速度得到了大幅提高,尤其是在不使用虚拟化环境的 Linux 系统上。

希望以上内容能帮助你了解我们是如何优化 Cloudnet 上的 UDP 传输效率的。如果你想要了解更多的技术细节或参与到我们的性能提升工作中,请继续关注我们的更新。

8 - 产品比较

Cloudnet 产品与其它产品详细比较

此文档详细对比 Cloudnet 产品与其它产品的差异,帮助您快速选型

8.1 - IPSecVPN/SSLVPN/MPlsVPN

Cloudnet 产品与 IPSecVPN/SSLVPN/MPlsVPN 产品详细比较

IPSecVPN

IPSecVPN(Internet Protocol Security Virtual Private Network)是一种网络安全协议,用于在公共网络上建立安全的私人网络连接。它通过加密和认证技术,确保数据在传输过程中的机密性、完整性和可靠性。

IPSecVPN 使用 IPSec 协议来创建和管理虚拟私人网络连接。IPSec 协议提供了两个主要的安全服务:身份验证和加密。身份验证确保通信双方的身份是合法的,并且没有被篡改。加密则用于保护数据的机密性,使得只有授权的用户能够解密和访问数据。

IPSecVPN 可以在不同的网络设备之间建立安全的连接,例如在远程办公场景下,员工可以通过 IPSecVPN 连接到公司内部网络,实现远程访问资源的安全性。此外,IPSecVPN 还可以用于连接不同地理位置的分支机构,将它们组成一个安全的虚拟网络。

IPSecVPN 的工作原理如下:

  1. 身份验证阶段:在建立连接之前,通信双方需要进行身份验证,以确保彼此的身份是合法的。常见的身份验证方法包括预共享密钥、数字证书等。
  2. 安全关联建立阶段:在身份验证成功后,通信双方会协商建立安全关联(Security Association,SA),包括加密算法、认证算法、密钥等参数。这些参数将用于后续的数据传输。
  3. 数据传输阶段:在安全关联建立完成后,通信双方可以开始进行数据传输。数据会被加密和认证,以确保机密性和完整性。

IPSecVPN 具有以下优点:

  • 安全性高:通过加密和身份验证技术,确保数据在传输过程中的安全性。
  • 灵活性强:可以在不同的网络设备之间建立连接,适用于各种场景。
  • 兼容性好:IPSec 协议是一种通用的网络安全协议,被广泛支持和采用。

然而,IPSecVPN 也存在一些限制和注意事项:

  • 配置复杂:IPSecVPN 的配置相对复杂,需要正确设置各种参数和密钥。
  • 性能影响:由于加密和解密的过程,IPSecVPN 可能会对网络性能产生一定的影响。
  • 防火墙限制:某些防火墙可能会对 IPSecVPN 的流量进行限制或阻止。

总结来说,IPSecVPN 是一种安全可靠的网络连接方式,适用于远程访问、分支机构连接等场景。它通过加密和认证技术,确保数据在传输过程中的安全性和完整性。然而,配置复杂和性能影响是需要注意的问题。

SSLVPN

SSLVPN(Secure Sockets Layer Virtual Private Network)是一种基于 SSL/TLS 协议的虚拟私人网络技术,用于在公共网络上建立安全的远程访问连接。它通过加密和身份验证机制,确保数据传输的机密性、完整性和可靠性。

SSLVPN 使用 SSL/TLS 协议来创建一个安全的通信隧道,使远程用户能够安全地访问内部网络资源。与传统的 IPSec VPN 相比,SSLVPN 具有以下优点:

  1. 简单易用:SSLVPN 不需要额外的客户端软件,只需使用支持 SSL/TLS 协议的 Web 浏览器即可访问。这使得 SSLVPN 非常适合移动设备和临时访问者。

  2. 安全性高:SSL/TLS 协议提供了强大的加密和身份验证机制,保护数据传输过程中的机密性和完整性。SSLVPN 还可以通过多种认证方式,如用户名/密码、数字证书、双因素认证等,增加访问的安全性。

  3. 灵活性强:SSLVPN 支持多种应用层协议,包括 HTTP、HTTPS、FTP、SMTP 等,可以满足不同类型的应用需求。此外,SSLVPN 还支持分割隧道(Split Tunneling),允许用户同时访问互联网和内部网络资源。

  4. 可扩展性好:SSLVPN 可以通过添加额外的服务器来扩展容量,以满足不断增长的用户需求。同时,SSLVPN 还支持负载均衡和故障转移,提高了系统的可用性和可靠性。

总之,SSLVPN 是一种安全、灵活且易于使用的远程访问解决方案,适用于各种规模和类型的组织。它提供了强大的安全性和便利性,使用户能够安全地访问内部网络资源,提高了远程办公和移动办公的效率和便捷性。

MPlsVPN

MPlsVPN 是一种软件定义网络(SDN)解决方案,提供安全可扩展的虚拟专用网络(VPN)服务。它代表多协议标签交换虚拟专用网络。

以下是 MPlsVPN 的一些主要特点:

  1. 多协议标签交换(MPLS):MPlsVPN 利用 MPLS 技术在不同位置或网络之间建立虚拟连接。MPLS 允许数据包的高效路由和转发,确保快速可靠的通信。

  2. 虚拟专用网络(VPN):MPlsVPN 在公共基础设施(如互联网)上创建安全且私密的网络。它加密数据流量,提供传输信息的机密性和完整性。这对于需要安全连接地理分散的站点或远程工作者的组织特别有用。

  3. 可扩展性:MPlsVPN 设计为在网络增长时轻松扩展。它支持大量的 VPN 连接,允许您连接多个站点或用户而不影响性能。

  4. 服务质量(QoS):MPlsVPN 提供 QoS 功能,可以优先处理某些类型的网络流量。这确保关键应用程序(如语音或视频会议)获得足够的带宽和低延迟,而较不重要的流量则被赋予较低的优先级。

  5. 流量工程:MPlsVPN 支持高级流量工程功能,允许您优化网络资源并改善整体网络性能。它可以根据实时条件动态重新路由流量,避免拥塞和瓶颈。

  6. 集中管理:MPlsVPN 提供集中管理界面,允许管理员从单个位置配置和监视 VPN 连接。这简化了网络管理和故障排除任务。

总的来说,MPlsVPN 是一种强大的 SDN 解决方案,结合了 MPLS 和 VPN 技术的优势。它为组织提供安全可扩展的连接,使其能够在保持数据隐私和网络性能的同时有效地连接站点和用户。

详细对比

功能/特点 IPSecVPN SSLVPN MPLSVPN Cloudnet
安全性
协议 IPsec SSL/TLS MPLS WireGuard
认证方式 证书、预共享密钥 用户名/密码 标签交换 密钥
连接方式 端到端 客户端到网关 点到点 多对多
可用性 跨平台 跨平台 依赖运营商网络 跨平台
扩展性 中等 中等
配置复杂度 中等
性能 中等

8.2 - Cloudnet vs OpenVPN

Cloudnet 产品与 OpenVPN 产品详细比较

OpenVPN 产品官网: https://openvpn.net

OpenVPN

OpenVPN 是一种开源的虚拟私人网络(VPN)解决方案,它可以在多种操作系统上运行。它使用 SSL/TLS 协议进行身份验证和加密,提供了安全的远程访问和站点到站点通信。OpenVPN 可以通过 TCP 或 UDP 进行通信,并支持多种身份验证方法,包括用户名/密码、证书和双因素身份验证。此外,OpenVPN 还提供了许多高级功能,例如动态 IP 地址分配、路由控制和多个 VPN 连接。

Cloudnet

Cloudnet 是一种基于 mesh 网络的 VPN 解决方案,它使用多个节点之间的点对点连接来创建虚拟网络。与 OpenVPN 不同,Cloudnet 不需要中央服务器来管理连接。Cloudnet 可以在多个操作系统上运行,并支持多种身份验证方法,包括用户名密码/OpenID/微信/OAuth 等多种认证方式。Cloudnet 还提供了一些高级功能,例如动态路由/连接高可用/路由高可用和多个 VPN 连接等。

详细对比

特点 OpenVPN Cloudnet
协议类型 SSL/TLS WireGuard
网络拓扑 客户端-服务器模式 对等网络模式
可用性 跨平台支持,广泛应用于各种操作系统和设备 跨平台支持,提供全平台客户端
配置复杂度 相对较高,需要手动配置和管理 相对较低,自动发现和配置节点
扩展性 有限的扩展性 有限的扩展性
性能 一般性能 高性能
安全性 使用 SSL/TLS 加密通信,高安全性 使用 WireGuard 协议,高安全性
优势 广泛的平台支持和成熟的技术 简单易用的配置和管理,维护成本低

从上表可以看出,Cloudnet 相对于 OpenVPN 具有以下优势:

  1. 网络拓扑:OpenVPN 采用客户端-服务器模式,而 Cloudnet 采用对等网络模式,可以实现更灵活的网络拓扑结构。

  2. 配置复杂度:Cloudnet 相对于 OpenVPN 具有较低的配置复杂度,可以自动发现和配置节点,减少了手动配置和管理的工作量。

  3. 性能:OpenVPN 更多的是基于 TCP 的 SSL/TLS 协议,而 Cloudnet 是基于 UDP 的 WG 协议, 其性能更高。

  4. 优势:OpenVPN 较为复杂,维护成本较高,而 Cloudnet 具有简单易用的配置和管理,维护成本更低。

综上所述,Cloudnet 在网络拓扑、配置复杂度和管理方面具有优势,非常适合构建中小型规模的网络。

8.3 - Cloudnet vs Tailscale

Cloudnet 产品与 Tailscale 产品详细比较

Tailscale

Tailscale

Tailscale 是什么?

Tailscale 是一种基于 mesh 网络的 VPN 解决方案,旨在简化和加强设备之间的安全连接。它允许您轻松地创建一个安全的网络,将位于不同位置的设备连接在一起,无论这些设备是在云中、本地网络还是移动设备上。

Tailscale 的特点:

  • 简单易用:Tailscale 提供了一个简单的用户界面和命令行工具,使您能够快速设置和管理网络连接。
  • 安全性:Tailscale 使用现代加密技术来保护数据传输,并提供身份验证和访问控制功能,以确保只有经过授权的设备可以访问网络。
  • 跨平台支持:Tailscale 可以在各种操作系统和设备上运行,包括 Linux、Windows、macOS、iOS 和 Android。
  • 零信任网络:Tailscale 基于零信任原则,即默认情况下不信任任何设备,只有在经过身份验证和授权后才能访问网络资源。
  • 灵活性:Tailscale 允许您创建自己的私有网络,而无需依赖第三方提供商或基础设施。

Cloudnet vs Tailscale 详细对比

特点 Tailscale Cloudnet
协议类型 WireGuard WireGuard
网络拓扑 对等网络模式 对等网络模式
可用性 跨平台支持 跨平台支持
配置复杂度 较低,自动发现和配置节点 较低,自动发现和配置节点
扩展性 有限的扩展性 有限的扩展性
性能 高性能 高性能
安全性 高安全性 高安全性
价格 付费版(¥ 43 元/月) 付费版(¥ 9 元/月)
优势 简单易用的配置和管理 简单易用的配置和管理
国内中继 不支持 已覆盖一二线城市
国际中继 支持 支持
直连网络 成功率(>70%) 成功率(>99%)
网络延时 国内(>400ms) 国内(<50ms)
自定义 IP 不支持(免费版) 支持(IPv4/IPv6)
自定义 DNS 不支持(免费版) 支持(定向/绑定)

8.4 - CloudNet vs ZeroTier

CloudNet 产品与 ZeroTier 产品的详细比较

ZeroTier

ZeroTier

ZeroTier 是一种开源、跨平台的虚拟局域网 (VPN) 解决方案,允许用户轻松地创建和管理他们自己的全球虚拟网络。它基于去中心化的网络架构,可以在互联网上安全地连接设备,如电脑、服务器、移动设备,甚至可以整合物联网设备。ZeroTier 使用了一种称为"虚拟以太网"技术,它模仿了传统以太网的行为,但实际上是运行在互联网或其他 IP 网络之上的。

ZeroTier 的关键特点包括:

  • 简单的安装和配置:用户可以快速配置虚拟网络,而无需复杂的网络设置。

  • 跨平台兼容性:它支持多种操作系统,包括 Windows、macOS、Linux、iOS 和 Android。

  • 高性能:ZeroTier 旨在提供低延迟、高吞吐量的网络连接,接近直连网络的性能。

  • 加密和安全性:所有网络流量都是端到端加密的,确保数据传输的安全性。

  • 可扩展性:它可以支持从小型家庭或办公室网络到大型企业级网络的任何规模。

  • 自动路由和管理:网络设备之间的路由是自动完成的,用户可以通过一个中央管理界面来监控和管理他们的网络。

ZeroTier 非常适合需要远程访问资源的个人和组织,以及想要创建一个安全的分布式网络环境的场景。它通过提供一种易于部署和管理的虚拟网络层,降低了建立 VPN 连接的技术门槛。

Cloudnet vs CloudNet 详细对比

CloudNet 和 ZeroTier 都是用于创建虚拟私有网络(VPN)的软件工具,允许设备安全地连接和通信,就好像它们在同一个物理网络中一样。它们可以在各种操作系统和平台上运行,并且都提供了端到端加密的通信。以下是 CloudNet 和 ZeroTier 的详细比较:

  1. 技术基础:

    • CloudNet 基于 WireGuard,这是一种较新的 VPN 协议,它旨在提高速度和效率,同时保持高安全性。
    • ZeroTier 使用自己的协议和软件定义网络(SDN)技术来创建和管理网络。
  2. 设置和配置:

    • CloudNet 注重简单性,使得安装和配置过程非常直接。它依赖于 OAuth(如 微信 或 SSO 账户)进行用户验证,因此不需要额外设置复杂的身份验证系统。
    • ZeroTier 也相对容易设置,但配置可能更复杂,因为它提供了更多的网络配置选项和规则。
  3. 性能:

    • CloudNet 因使用 WireGuard 而在理论上提供更高的性能和更低的延迟。
    • ZeroTier 的性能也很好,但可能因其自定义协议而略逊一筹。
  4. 安全性:

    • CloudNet 的安全性极高,因为它整合了 WireGuard 的现代加密技术,并且默认关闭了所有未经授权的连接。
    • ZeroTier 也提供了强大的端到端加密,并允许用户配置网络访问控制和规则。
  5. 平台支持:

    • CloudNet 和 ZeroTier 都支持多个平台,包括 Windows, macOS, Linux, iOS, 和 Android。
  6. 网络管理:

    • CloudNet 提供一个简单的管理界面,用户可以轻松地看到所有的设备和它们的状态。
    • ZeroTier 提供了一个更复杂的网络管理控制台,适合需要精细管理网络配置的用户。
  7. 定价:

    • CloudNet 提供面向个人使用及其商业和企业用途具有不同的定价结构。
    • ZeroTier 提供一个免费层次,但对于企业功能,则需要付费。
  8. 企业集成:

    • CloudNet 注重与现有的云服务和企业工具集成,例如集成了 OAuth 提供商和单点登录(SSO)。
    • ZeroTier 虽然也可以在企业环境中使用,但可能需要更多手动配置来集成到企业的身份认证系统中。
  9. 技术支持:

    • CloudNet 主要面向国内市场,提供中文技术服务支持。以及支持面向客户提供定制化开发服务。
    • ZeroTier 主要在国外市场, 仅限对企业客户的英文技术服务支持。不支持定制化开发服务。
  10. 稳定性:

    • CloudNet 产品立足国内,已覆盖一二线城市,并且在国内有大量的客户使用,稳定性有保障。
    • ZeroTier 产品服务器在国外, 由于需要过墙, 其网络稳定性无法保证。

9 - 隐私政策

Cloudnet 产品用户隐私政策

Cloudnet 产品是经过工信部批准在国内合规经营的 VPN 软件厂商, 我们将按照相关法律法规保护用户的隐私.

本软件尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本软件会按照本隐私权政策的规定使用和披露您的个人信息。但本软件将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本软件不会将这些信息对外披露或向第三方提供。本软件会不时更新本隐私权政策。您在同意本软件服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本软件服务使用协议不可分割的一部分。

1.适用范围

在您使用本软件网络服务,本软件自动接收并记录的您的手机上的信息,包括但不限于您的健康数据、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据;

2.信息的使用

在获得您的数据之后,本软件会将其上传至服务器,以生成您的排行榜数据,以便您能够更好地使用服务。

3.信息披露

  1. 本软件不会将您的信息披露给不受信任的第三方。

  2. 根据法律的有关规定,或者行政或司法机构的要求,向第三方或者行政、司法机构披露;

  3. 如您出现违反中国有关法律、法规或者相关规则的情况,需要向第三方披露;

4.信息存储和交换

本软件收集的有关您的信息和资料将保存在本软件及(或)其关联公司的服务器上,这些信息和资料可能传送至您所在国家、地区或本软件收集信息和资料所在地的境外并在境外被访问、存储和展示。

5.信息安全

在使用本软件网络服务进行网上交易时,您不可避免的要向交易对方或潜在的交易对方披露自己的个人信息,如联络方式或者邮政地址。请您妥善保护自己的个人信息,仅在必要的情形下向他人提供。如您发现自己的个人信息泄密,请您立即联络本软件客服,以便本软件采取相应措施。

10 - 服务协议

Cloudnet 产品用户服务协议

Cloudnet 产品是经过工信部批准在国内合规经营的 VPN 软件厂商, 面向个人和企业用户提供安全可靠的 VPN 云服务.

在此特别提醒您(用户)在注册成为用户之前,请认真阅读本用户注册及使用 APP 隐私协议(以下简称“本协议”),确保您充分理解本协议中各条款。请您审慎阅读并选择接受或不接受本协议。除非您接受本协议所有条款,否则您无权注册、登录或使用本协议所涉服务。您的注册、登录、使用等行为将被视为对本协议的接受,并同意接受本协议各项条款的约束。

本协议约定 武汉云网信息科技有限公司(以下简称"本公司"或"云网科技")与用户之间关于 Cloudnet(以下简称"云网")软件服务(以下简称“服务”)的权利义务。“用户”是指注册、登录、使用云网服务的个人或相关使用者。本协议可由云网软件系统运行后台及本公司随时更新,更新后的协议条款一旦公布即代替原来的协议条款,恕不再另行通知,用户可在云网中查阅最新版协议条款,也提请用户随时关注云网用户协议的更新情况,以免造成不必要的误解和纠纷。在修改协议条款后,如果用户不接受修改后的条款,请立即停止使用云网提供的服务,用户继续使用云网提供的服务将被视为接受修改后的协议。

一、用户账号注册基本要求

1、用户在使用本服务前需要注册个人账号。该账号应当使用手机号码绑定注册,请用户使用尚未与本账号绑定的手机号码,以及未被本公司根据本协议封禁的手机号码注册账号。本公司可以根据用户需求或产品需要对账号注册和绑定的方式进行变更,而无须事先通知用户。

2、鉴于云网产品的使用特性,用户注册时应当授权公开及使用其个人信息方可成功注册账号。故用户完成注册即表明用户同意云网及本公司提取、公开及使用用户的信息。

3、鉴于云网账号的绑定注册方式,您同意在注册时将允许您的手机号码及手机设备识别码等信息用于注册。

4、在用户注册及使用云网服务时,需要搜集能识别用户身份的个人信息以便本公司可以在必要时联系用户,或为用户提供更好的用户体验。搜集的信息包括但不限于用户的姓名、地址、手机号、邮箱等基本信息,且用户同意对这些信息的使用将受限于第二条用户个人隐私信息保护的约束。

二、用户个人隐私信息保护

1、如果云网运行后台及本公司发现或收到他人举报或投诉用户违反本协议约定的,本公司有权在收到举报后 24 小时内不经通知随时对相关内容,包括但不限于用户资料、上传及发贴记录进行审查、删除,并视情节轻重对违规账号处以包括但不限于警告、账号封禁 、设备封禁、功能封禁等处罚,且不必通知用户处理结果。

2、因违反用户协议被封禁的用户,可以自行与云网后台或本公司公开的方式进行联系。其中,被实施功能封禁的用户会在封禁期届满后自动恢复被封禁功能。被封禁用户可提交申诉,云网后台或本公司将对申诉进行审查,并自行合理判断决定是否变更处罚措施。

3、用户理解并同意,云网后台及本公司有权依合理判断对违反有关法律法规或本协议规定的行为进行处罚,对违法违规的任何用户采取适当的法律行动,并依据法律法规保存有关信息向有关部门报告等,用户应承担由此而产生的一切法律责任。

4、用户理解并同意,因用户违反本协议约定,导致或产生的任何第三方主张的任何索赔、要求或损失,包括合理的律师费,用户应当对本公司与合作公司、关联公司等相关方的赔偿,并使之免受损害。

5、用户体验改进,我们可能会收集经过 MD5 算法和加密的国际移动设备身份码(IMEI)和网络设备地址(MAC),广告标识符 IDFA,系统版本号,设备型号,系统编号,系统 ID 号,操作系统版本号,屏幕分辨率,上网模式,本款产品的版本号信息,某个按钮的点击使用时间及频率,某些关键配置选项值,软件崩溃日志等,用于统计我们的产品数量、分析产品使用情况、版本升级判断、排查崩溃原因、减少崩溃等情况,以此不断改善我们的产品。这些信息不涉及到您个人身份等隐私信息。

三、用户使用内容规范

1、本条所述用户使用内容是指用户使用云网的过程中所制作、上载、复制、发布、传播的任何内容,包括但不限于账号头像、名称、用户说明等注册信息及认证资料,或文字(包括艺术字)、符号、标识、语音、图片、(自定义)照片、视频(包括用户自行制作或上传的短视频等)、图文、模型、形象及其相互组合的内容等上传、发送、回复或自动回复消息和相关链接页面,以及其他使用本账号或云网服务所产生的内容。

2、用户不得利用本账号或云网服务制作、上载、复制、发布、传播如下法律、法规和政策禁止的内容:

(1) 违反宪法所确定的基本原则的; (2) 危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的; (3) 损害国家荣誉和利益的; (4) 煽动民族仇恨、民族歧视,破坏民族团结的; (5) 破坏国家宗教政策,宣扬邪教和封建迷信的; (6) 散布谣言,扰乱社会秩序,破坏社会稳定的; (7) 诱导未成年人违法犯罪和散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的; (8) 侮辱或者诽谤他人,侵害他人合法权益的; (9) 危害社会公德,损害民族优秀文化传统的; (10)非法的广播电视频道、视听节目网站提供的非法视频内容; (11)有关法律、行政法规和国家规定禁止的其他内容。 3、用户不得利用本账号或云网服务制作、上载、复制、发布、传播如下干扰云网正常运营,以及侵犯其他用户或第三方合法权益的内容:

(1) 含有任何性或性暗示的; (2) 含有辱骂、恐吓、威胁内容的; (3) 含有骚扰、垃圾广告、恶意信息、诱骗信息的; (4) 涉及他人隐私、个人信息或资料的; (5) 侵害他人名誉权、肖像权、知识产权、商业秘密等合法权利的; (6) 含有其他干扰云网服务正常运营和侵犯其他用户或第三方合法权益内容的信息。 4、用户不得对本服务任何部分或本服务之使用或获得,进行复制、拷贝、出售、转售或用于任何其它商业目的。

5、用户须对自己在使用云网服务过程中的行为承担法律责任。用户承担法律责任的形式包括但不限于:对受到侵害者进行赔偿,以及在本公司首先承担了因其用户行为导致的行政处罚或侵权损害赔偿的法律责任后,用户应给予本公司等额的赔偿,以及本公司因此而受到的其他损失等。

四、用户使用规则

1、用户在使用云网服务中或通过云网所传送、发布的任何内容并不反映或代表,也不得被视为反映或代表云网所属公司(以下简称本公司)的观点、立场或政策,本公司对此不承担任何责任。

2、用户不得利用本账号或云网服务进行如下行为:

(1) 提交、发布虚假信息,或盗用他人头像或资料,冒充、利用他人名义的; (2) 强制、诱导其他用户关注、点击链接页面或分享信息的; (3) 虚构事实、隐瞒真相以误导、欺骗他人的; (4) 利用技术手段批量建立虚假账号的; (5) 利用本账号或云网服务从事任何违法犯罪活动的; (6) 制作、发布与以上行为相关的方法、工具,或对此类方法、工具进行运营或传播,无论这些行为是否为商业目的; (7) 其他违反法律法规规定、侵犯其他用户合法权益、干扰云网及其所属公司正常运营或云网未明示授权的行为。 3、用户须对利用本账号或云网服务传送信息的真实性、合法性、无害性、准确性、有效性等全权负责,与用户所传播的信息相关的任何法律责任由用户自行承担,与云网及本公司无关。如因此给云网及本公司或任何第三方造成损害的,用户应当依法予以赔偿,本公司亦将保留追究相关用户及使用人的法律、经济等全部责任。

4、本公司提供的云网服务中可能包括广告,用户同意在使用过程中显示本公司和第三方供应商、合作伙伴提供的广告。除法律法规明确规定外,用户应自行对依该广告信息进行的交易负责,对用户因依该广告信息进行的交易或前述广告商提供的内容而遭受的损失或损害,本公司不承担任何责任。

五、知识产权及其他合法权益保护声明

1 、云网上传及使用功能专为用户自己创作或享有合法来源的作品提供服务。云网及本公司尊重他人知识产权和合法权益,请用户在上传相关内容前确保拥有上传内容的著作权及信息网络传播权或者已经取得上述全部权利人的许可。

2 、对于用户上传到云网上及使用云网服务过程中,用户同意云网及本公司在全世界范围内具有免费的、永久性的、不可撤销的、非独家的和完全再许可的权利和许可,以使用、复制、修改、改编、出版、翻译、据以创作衍生作品、传播、表演和展示此等内容(整体或部分),和/或将此等内容编入当前已知的或以后开发的其他任何形式的作品、媒体或技术中。

3 、用户应确保上传的相关内容,已经获得被拍摄人(如有)的许可,并确保作品内容没有侵犯他人的人身权,包括但不限于名誉权、肖像权、隐私权、姓名权,不存在任何著作权纠纷。

六、服务风险声明

1、用户完全理解并同意,云网服务涉及到互联网及移动通讯等服务,可能会受到各个环节不稳定因素的影响。因此服务存在因上述不可抗力、计算机病毒或黑客攻击、系统不稳定、用户所在位置、用户关机、GSM 网络、互联网络、通信线路原因等造成的服务中断或不能满足用户要求的风险。使用本服务的用户须承担以上风险,本公司对服务之及时性、安全性、准确性不作担保,对因此导致用户不能发送和接受消息、或传递错误,个人设定之时效、未予储存或其他问题不承担任何责任。对于不可抗力或非云网及本公司过错原因导致的用户数据损失、丢失或服务停止,云网及本公司将不承担任何责任。

2、对于系统发生故障影响到云网服务的正常运行,本公司承诺会及时处理并尽可能进行修复。但用户因此而产生的经济和精神损失,本公司不承担任何责任。此外,云网保留不经事先通知为优化、升级或其他目的暂停云网服务任何部分或全部的权利。

3、云网及本公司郑重提请您注意,任何经由云网服务以上载的相关内容,均由账号所有者承担责任。本公司无法控制经由云网服务上载之内容,也无法对用户的使用行为进行全面控制,因此不保证内容的合法性、正确性、完整性、真实性或品质;您已预知使用云网服务时,可能会接触到令人不快、不适当或令人厌恶之内容,并同意将自行加以判断并承担所有风险,而不依赖于云网及本公司。但在任何情况下,云网及本公司有权依法停止传输任何前述内容并采取相应行动,包括但不限于暂停用户使用云网服务的全部或部分功能,保存有关记录,并向有关机关报告。云网后台及本公司有权(但无义务)依其自行之考量,拒绝和删除可经由云网服务提供之违反本条款的或其他引起云网或其他用户反感的任何内容。

4、用户完全理解并同意,若第三方在您不知情或未经您同意的前提下,将您的作品上传于云网上及由此所产生的任何可能侵害您权益的行为,云网及本公司均不对任何人承担任何责任。

5、用户完全理解并同意,第三方可以通过访问云网上的相关信息,并可对信息进行使用行为。对用户或第三方以任何方式进行的使用可能侵害您权益的行为,云网及本公司均不对任何人承担任何责任。

6、用户完全理解并同意,在发现用户使用 APP 过程中出现的任何有争议的内容或用户本身存在任何争议性,本公司及云网坚决零容忍,并承诺一经发现,严肃处理,包括但不限于删除用户发布的内容、封禁或注销用户个人账户以及向有关部门提供其账户及个人信息等。对此,本公司及云网拥有自主识别相关争议内容和争议用户的决定权,用户一旦使用云网视为无条件接受本条款的约束和规定。

七、其他提示

1、本公司郑重提醒用户注意本协议中免除云网及本公司责任和限制用户权利的条款,请用户仔细阅读,自主考虑及辨别相关风险。未成年人应在法定监护人的陪同下阅读本协议及使用云网服务。

2、本协议的效力、解释及纠纷的解决,适用于中华人民共和国法律。若用户和云网及本公司之间发生任何纠纷或争议,首先应友好协商解决,协商不成的,用户同意将纠纷或争议提交本公司住所地有管辖权的人民法院管辖。 本公司有权启动必要的刑事及民事法律程序,维护本公司的合法权益,追究违法用户的法律责任。

3、本协议的任何条款无论因何种原因无效或不具有可执行性,其余条款仍有效,对双方具有约束力。

4、云网软件及本公司未行使或执行本服务协议任何权利或规定,不构成对前述权利或其他权利之放弃。

5、本协议未尽事宜,以云网运行后台及本公司后续不定期更新或补充本协议相关内容为准,更新及补充条款与本协议不可分割。

6、本协议相关条款的最终解释权归本公司所有。

11 - 技术支持

关于 Cloudnet 技术支持服务说明

有限工单支持(5x8)

  • 面向个人套餐用户,包含入门和专业套餐
  • 工单响应时间为 24 小时内
  • 服务时间为工作日 9:00-17:00
  • 支持范围: 产品使用问题, 产品功能咨询, 不提供任何技术支持以及问题排查服务

高级工单支持(7x24)

  • 面向企业套餐以上客户,包含企业和定制套餐
  • 工单响应时间为 1 小时内
  • 服务时间为全天 7x24
  • 支持范围: 产品使用问题, 产品功能咨询, 可提供技术支持以及问题排查服务, 对于企业 Pro 客户我们提供专属的技术顾问一对一服务

远程技术支持(付费)

  • 面向所有套餐用户提供远程技术支持服务
  • 服务时间为工作日 9:00-17:00
  • 技术支持范围: 为您解决产品使用过程中遇到的各种问题,研发人员会通过远程协助的方式为您解决问题
  • 收费标准: 299 元/次/小时, 最低 4 小时起购

12 - 加入我们

Cloudnet 团队招聘信息

Cloudnet 团队正在招聘中,欢迎有志之士加入我们。在这里没有考勤,没有绩效考核,没有办公室政治,更没有狼性文化,让您可以做自己喜欢的事情。

招聘职位

我们正在寻找才华横溢、积极进取的全职开发者加入我们的团队。因为我们是一家处于快速发展阶段且支持远程工作的公司,所以我们正在寻找能够独立工作的开发者,您将参与到我们的产品开发工作中。在这里能够独立思考、享受与高技术团队的合作以及适应异步工作是至关重要的。

产品架构师

工作地点 工作方式 工作类型 薪资范围 福利待遇 学历要求 工作经验 面试方式
不限 远程/现场 全职 50k-70k/月 五险一金 不限 不限 视频/面试

工作责任

  • 设计和开发 Cloudnet 产品架构;

任职要求

  • 具有多年的网络虚拟化工程开发经验;
  • 精通路由和交换技术的设计和开发;
  • 精通 C/C++/Golang/Erlang 等编程语言;
  • 熟悉各种网络交换和路由协议,并具备设计和开发能力;
  • 统筹服务端和客户端的设计和开发工作;

服务端开发工程师

工作地点 工作方式 工作类型 薪资范围 福利待遇 学历要求 工作经验 面试方式
不限 远程/现场 全职 30k-50k/月 五险一金 不限 不限 视频/面试

工作责任

  • 设计、开发、测试和维护我们的服务端程序;

任职要求

  • 具备多年 Golang/C++ 开发经验,熟悉 Golang 的生态系统;
  • 熟悉云计算、容器化技术, 有 k8s/docker 经验者优先;
  • 精通 Linux 系统,熟悉常用命令及其 shell 脚本编写;
  • 精通网络编程,精通但不限于 IP/TCP/UDP 等各种网络协议;
  • 熟悉敏捷方法和项目管理工具,例如 Linear、Asana 和 GitHub;

客户端开发工程师

工作地点 工作方式 工作类型 薪资范围 福利待遇 学历要求 工作经验 面试方式
不限 远程/现场 全职 30k-50k/月 五险一金 不限 不限 视频/面试

工作责任

  • 设计、开发、测试和维护我们的客户端程序;

任职要求

  • 精通 HTML、CSS、JavaScript/TypeScript;
  • 熟练使用设计工具,例如 Figma、Sketch 等;
  • 熟悉 React、Vue、Angular 等前端框架;
  • 熟悉 Electron、React Native、Flutter 等跨平台开发框架;
  • 熟悉 FFI 技术,有 C/C++ 开发经验者优先;
  • 熟悉 Swift、Kotlin,有移动端开发经验者优先;

投递简历

发送邮件至: job@cloudnet.world

我们可以提供什么

  • 一个包容、灵活的环境,让您可以做真实的自己。这里没有办公室政治和狼性文化,不内卷. 我们是基于对技术的热爱而凝聚在一起的团队。
  • 工作方式和时间的灵活性可以使您能够平衡工作和生活。
  • 有竞争力的总薪酬方案。这包括基本工资和原始股权激励计划。
  • 五险一金+补充商业保险。
  • 远程优先,您可以选择在任何地方工作——只要有 Wi-Fi.
  • 带薪休假和健康的工作与生活平衡。我们灵活的带薪休假计划可为您应对生活中的任何情况提供支持,无论您是搬家还是环游世界!我们所有员工每年可享受 4-6 周的假期。
  • 可以使用您自己的设备工作。我们提供了一些设备,但是我们鼓励您使用您自己的设备,以便您可以在您最喜欢的设备上工作。