零基础搭建混合云架构:从网络互通到业务联调

为什么你需要混合云架构

假设你有一台本地服务器跑着数据库,又买了几台云服务器跑应用。
如果想让应用直接访问本地数据库,又不想暴露公网端口,就需要混合云架构——将本地网络和云上VPC打通,让两台机器像在同一个局域网一样通信。

本文以最简单的混合云网络互通为目标,使用免费的工具WireGuard搭建加密隧道,适合没有任何网络工程基础的站长或运维新手。
读完你会:

  • 理解混合云架构的基本原理
  • 完成云端与本地服务器之间的内网互联
  • 学会验证联通性和排查常见问题

前置准备:你需要什么

  1. 一台云服务器(例如阿里云ECS,2核4G即可,系统推荐Ubuntu 22.04)
  2. 一台本地服务器或虚拟机(能通互联网,建议也使用Ubuntu)
  3. 云服务器安全组放行UDP端口(WireGuard默认端口51820)
  4. 基本的SSH连接能力(会用终端登录即可)
注意:本文不涉及成本优化或高可用,只聚焦网络打通这一步。如果你的云和本地之间已有专线,可以跳过本教程。

第一步:在云服务器上安装并配置WireGuard

登录云服务器,执行以下命令安装:

sudo apt update
sudo apt install wireguard -y

创建私钥和公钥:

wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key

创建配置文件 /etc/wireguard/wg0.conf,内容如下:

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <服务器私钥内容>

# 启用IP转发(重要)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# 本地客户端的信息,稍后添加
PublicKey = <本地客户端公钥>
AllowedIPs = 10.0.0.2/32, 192.168.1.0/24

注意替换 eth0 为云服务器实际的外网网卡名称(可用 ip route 查看默认路由的接口)。PostUp 中的 MASQUERADE 让本地流量能通过云服务器访问公网(如果本地没有独立公网IP)。

启动WireGuard:

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

检查状态:

sudo wg show

第二步:在本地服务器上安装并配置WireGuard客户端

同样安装WireGuard:

sudo apt update
sudo apt install wireguard -y

生成密钥对:

wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key

创建配置文件 /etc/wireguard/wg0.conf

[Interface]
Address = 10.0.0.2/24
PrivateKey = <本地客户端私钥>

[Peer]
PublicKey = <云服务器公钥>
Endpoint = 云服务器公网IP:51820
AllowedIPs = 10.0.0.0/24, 云服务器VPC网段(如192.168.0.0/16)
PersistentKeepalive = 25
  • AllowedIPs 指定哪些目标IP走隧道。如果想让本地访问云上所有资源,可以写上云VPC的网段。
  • PersistentKeepalive 保持连接,避免NAT超时断开。

启动客户端:

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

第三步:打通路由与防火墙

在本地服务器上也需要开启IP转发(如果想让其他设备通过本地服务器访问云):

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
云服务器已经在第一步配置了iptables,如果本地的局域网设备也需要访问云,还需要在本地路由器上添加静态路由,或者让本地服务器作为网关。

验证混合云是否打通

本地服务器上ping云服务器的隧道IP:

ping 10.0.0.1

云服务器上ping本地服务器的隧道IP:

ping 10.0.0.2

如果都能通,说明隧道建立成功。
接着测试跨子网访问:在云服务器上ping本地内网的一台设备(例如 192.168.1.10),如果能通,则混合云网络已打通。

避坑指南

  1. 云服务器安全组必须放行UDP 51820,否则无法建立连接。
  2. 云服务器的网卡名称不一定都是eth0,请用 ip link show 确认。
  3. 本地客户端没有公网IP时,云服务器不能主动连接本地,需要客户端的PersistentKeepalive保持长连接。
  4. AllowedIPs写错会导致流量走错路径,建议先只添加隧道IP段测试,确认通后再加局域网段。

高频问题解答

Q:WireGuard配置好后重启服务器,隧道自动恢复吗?
A:我们使用 systemctl enable 设置了开机自启,重启后会自动连接。如果发现未自动连接,请检查 wg-quick@wg0 服务状态。

Q:我在本地服务器上能ping通云服务器隧道IP,但ping不通云上其他ECS。
A:需要在云服务器上添加iptables规则允许转发,并检查云服务器本身是否开启了防火墙(如 ufw)。如果云上ECS在同一个VPC内,通常只要本地服务器的 AllowedIPs 包含了VPC网段,并且云服务器开启了IP转发即可。

Q:混合云网络打通后,数据安全吗?
A:WireGuard使用最新的加密协议,在公网上传输是加密的。但建议混合云架构中敏感业务仍使用TLS等应用层加密。

结语

通过上述步骤,你已经成功搭建了一个基础混合云架构的“网络高速公路”。
后续可以在这条隧道上部署应用、同步数据或搭建运维跳板机。
遇到连接异常时,优先检查 sudo wg show 输出中的 handshake 时间,如果为0,说明隧道未建立,请排查密钥、端口和防火墙。

如果你正在处理混合云架构,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
BGP多线服务器选购与配置指南:新手也能跑通多线接入
下一篇
边缘计算部署实战:用Docker搭建轻量级边缘处理节点
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意