每台服务器 不限流量、DDoS 防护和 IPMI 全部包含。无开通费,无长期合约。 每台服务器均不限流量 查看价格

文档

通过私有 VLAN 连接服务器

在同一机房内通过免费私有 VLAN 连接你的 FlexDedi 服务器,附 Netplan 示例、MTU 检查、防火墙规则以及数据库复制等用法。

  • 阅读 5 分钟
  • 更新于
  • FlexDedi 工程团队

关于本页

适用范围
所有 FlexDedi 独立服务器
更新于
2026年11月2日
本页内容

同一机房内的服务器可以通过内网互通:内网是为您的服务器专门保留的 VLAN,免费提供,内部流量不计费。数据库复制、集群通信和备份这类不应经过公网地址的流量,都适合走内网。

什么是内网

  • 专属 VLAN,只连接您的服务器。这是一个二层网络,与公网接口及其地址相互隔离。
  • 免费。内网本身不收费,内部流量也不计费。
  • 仅限同一机房。法兰克福和阿姆斯特丹的服务器无法共享同一个 VLAN。如需跨机房互联,可以在公网上运行 WireGuard 等加密隧道,反正公网同样不限流量。
  • 地址自行规划。私有 IPv4 地址需要自行分配,例如使用 10.20.0.0/24 网段。请选择不与 VPN、办公网络或容器网络重叠的网段:Docker 默认使用 172.17.0.0/16。

每台服务器需要两项信息:内网的 VLAN ID,以及承载该 VLAN 的物理接口。如果还没有这些信息,请联系我们的技术支持工程师。更多背景介绍见内网功能页面。

事先做一份简单的地址规划,可以避免日后出错:

服务器角色内网地址
db1PostgreSQL 主库10.20.0.11
db2PostgreSQL 备库10.20.0.12
backup1备份目标10.20.0.30

1. 使用 Netplan 创建 VLAN 接口

在 Ubuntu 24.04 上,请把内网配置放在单独的文件中,以免改动公网配置。将以下内容保存为 /etc/netplan/60-private.yaml:

yaml
network:
  version: 2
  vlans:
    vlan100:
      id: 100
      link: enp1s0f0
      addresses:
        - 10.20.0.11/24

将 100 替换为实际的 VLAN ID,将 enp1s0f0 替换为父接口(该接口必须已在主 Netplan 文件中定义)。不要添加网关:到 10.20.0.0/24 的路由会自动创建,默认路由仍保留在公网接口上。

如果内网是以不带 VLAN 标签(untagged)的方式接入第二个端口,请跳过 vlans 部分,直接在 ethernets 下为该端口配置地址。

以自动回滚的方式应用配置,检查接口状态,然后测试能否访问相邻的服务器:

bash
chmod 600 /etc/netplan/60-private.yaml
netplan try
ip -br addr show vlan100
ping -c 3 10.20.0.12

2. 检查 MTU

同一 VLAN 上的所有主机必须使用相同的 MTU,默认为 1500 字节。请确认满尺寸数据包能够不分片地通过:

bash
ping -M do -s 1472 -c 3 10.20.0.12

1472 字节的载荷加上 28 字节的 IP 和 ICMP 头部,正好是 1500 字节。如果小包能 ping 通,而这条命令失败,说明路径上有设备使用了更小的 MTU。

巨型帧(MTU 9000)可以降低大批量传输时的每包开销,但只有在整条路径都支持时才有效。调高 MTU 之前,请先咨询我们的技术支持工程师,然后在每台服务器上统一设置,并用 -s 8972 测试。如果使用 WireGuard 跨机房互联,请保留其默认的 MTU 值 1420,为隧道头部留出空间。

3. 为内网接口配置防火墙

内网不等于可信:VLAN 上任何一台服务器被攻破,都能访问其他所有服务器。使用 ufw 时,请保持默认拒绝策略,只放行每台服务器需要的端口,并且只允许来自内网网段的访问:

bash
ufw allow in on vlan100 from 10.20.0.0/24 to any port 5432 proto tcp
ufw allow in on vlan100 from 10.20.0.0/24 to any port 22 proto tcp

同时,请将内部服务绑定到内网地址,确保它们不会在公网接口上监听:

  • PostgreSQL:listen_addresses = 'localhost,10.20.0.11'
  • MySQL 和 MariaDB:bind-address = 10.20.0.11
  • Redis:bind 127.0.0.1 10.20.0.11

完成后运行 ss -tlnp,查看每个服务监听的地址。

应用场景

数据库复制

流复制可以通过 VLAN 让 PostgreSQL 数据库的备库与主库保持同步。在主库的 pg_hba.conf 中,允许复制用户从备库的内网地址连接:

text
host  replication  replicator  10.20.0.12/32  scram-sha-256

在备库上停止 PostgreSQL,清空其数据目录,然后克隆主库。-R 选项会自动写入备库配置:

bash
sudo -u postgres pg_basebackup -h 10.20.0.11 -U replicator -D /var/lib/postgresql/16/main -R -X stream -P

更多数据库服务器的选型建议,请参阅数据库解决方案页面。

Proxmox VE 集群

Proxmox 的集群引擎 Corosync 需要低且稳定的延迟,同一机房内的服务器正好能满足。Proxmox VE 使用 /etc/network/interfaces 而不是 Netplan,因此请在该文件中定义 VLAN,并用 ifreload -a 应用:

text
auto enp1s0f0.100
iface enp1s0f0.100 inet static
    address 10.20.0.21/24

然后在第一个节点上创建集群,再将其他节点加入,并将集群流量固定在内网地址上:

bash
pvecm create prod --link0 10.20.0.21          # on the first node
pvecm add 10.20.0.21 --link0 10.20.0.22       # on each additional node

Proxmox VE 本身的安装和配置,请参阅我们的 Proxmox 指南。

备份

将每晚的备份发送到同一机房的另一台服务器,例如位于阿什本、洛杉矶、阿姆斯特丹或法兰克福的 Storage 264:

bash
rsync -aHAX --numeric-ids --delete /srv/ backup@10.20.0.30:/backups/db1/srv/

此外,还应在另一个机房再保留一份副本。同一机房内的备份,无法抵御影响整个机房的事件。