VPN搭建,远程安全访问机房内网设备:VPN搭建指南
远程访问机房内网设备,核心需求是打通一条加密隧道,让外网客户端像在局域网一样直接访问服务器。
WireGuard 配置简洁、性能稳定,适合零基础用户按本文步骤完成 VPN 搭建与验证。
搭建前需要确认的几件事
动手前先核对环境,避免配置到一半才发现条件不满足。
- 一台有公网 IP 的服务器:作为 VPN 服务端,放行 UDP 端口(WireGuard 默认
51820)。如果服务器在机房内网通过路由器上网,需要提前在路由器做端口映射。 - 操作系统与权限:服务端和客户端均以
root或具备sudo权限的账号操作,本文以 Ubuntu/Debian 为例,其他发行版安装命令略有差异。 - 客户端设备:Windows、macOS、Linux 或手机均可,需安装 WireGuard 官方客户端。
- 记录关键信息:服务端公网 IP、内网网段(例如
192.168.10.0/24)、VPN 隧道网段(建议用10.8.0.0/24,避免与现有内网冲突)。
如果机房内网已有 192.168.0.0/24,VPN 隧道网段就不要再用这个范围,否则路由会打架。
服务端安装与密钥准备
以下命令在服务端执行。
# Ubuntu/Debian 安装 WireGuard
sudo apt update
sudo apt install -y wireguard
# 生成服务端私钥和公钥
wg genkey | sudo tee /etc/wireguard/server.key
sudo chmod 600 /etc/wireguard/server.key
sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub
客户端同样需要一对密钥,可以在客户端生成,也可以先在服务端生成后复制过去。
密钥文件权限必须为 600,否则 WireGuard 会拒绝加载。
编写服务端配置文件
创建 /etc/wireguard/wg0.conf,内容如下(请替换实际网卡名和网段):
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <服务端私钥内容>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <客户端公钥内容>
AllowedIPs = 10.8.0.2/32
关键点:eth0 换成服务端实际对外网卡名,
可用 ip route 查看默认路由对应的网卡;AllowedIPs 是分配给客户端的隧道 IP,
每新增一个客户端就加一个 [Peer] 段并递增 IP。
启用内核转发,否则客户端无法访问机房内网其他设备:
sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
启动并设置开机自启:
sudo systemctl enable --now wg-quick@wg0
sudo wg show
wg show 能看到 peer 和最近握手时间,说明服务端已正常运行。
客户端配置与连接
客户端配置模板如下,保存为 wg0.conf 后导入 WireGuard 客户端:
[Interface]
PrivateKey = <客户端私钥内容>
Address = 10.8.0.2/32
DNS = 223.5.5.5
[Peer]
PublicKey = <服务端公钥内容>
Endpoint = <服务端公网IP>:51820
AllowedIPs = 10.8.0.0/24, 192.168.10.0/24
PersistentKeepalive = 25
AllowedIPs 决定哪些流量走 VPN。
只访问机房内网时,写隧道网段和内网网段即可;
如果想让所有上网流量都走 VPN,改成 0.0.0.0/0。
保存后点击连接,再用 ping 10.8.0.1 测试隧道连通性,ping 192.168.10.x 测试内网设备可达性。
容易踩坑的地方
- 防火墙未放行:服务端需放行 UDP
51820,云服务器还要检查安全组规则。 - 网段冲突:VPN 隧道网段与现有内网重叠会导致路由异常,搭建前务必核对。
- NAT 转发缺失:没有
MASQUERADE规则时,客户端只能访问服务端本身,无法访问内网其他设备。 - 密钥权限错误:私钥文件权限过宽会被拒绝加载,保持
600。 - 客户端握手失败:先用
wg show查看服务端是否收到握手,再检查公钥是否配对、端口是否可达。
验证远程访问是否真正可用
连接 VPN 后,从客户端执行以下检查:
ping 10.8.0.1 # 隧道网关可达
ping 192.168.10.100 # 机房内网某台设备可达
traceroute 192.168.10.100 # 确认流量走 VPN 隧道
如果能 ping 通内网设备,说明 VPN 搭建成功。
此时可以进一步测试 SSH、Web 后台等实际业务访问,确认远程安全访问机房内网设备的需求已满足。
若部分内网设备不通,通常是该设备所在网段没有加入 AllowedIPs,或服务端路由未覆盖该网段,按这两点排查即可。