服务器已经装好软件,却不知道怎样让接口随系统启动?WireGuard服务器搭建的第一步,是弄清软件、接口和服务各自的边界。systemd 显示启动成功,只说明本机完成了启动动作,远端是否可达仍需独立验证。
01 / 先记录环境,再安装工具
本文命令是 Debian 12 的通用示例,仅用于已获授权的 Linux 主机。先确认发行版、内核、现有隧道和远程管理路径。标准 Debian 12 内核提供 WireGuard 支持,自定义内核或受限容器则需要另行确认。软件包安装不会自动替你建立可用的 Peer。
cat /etc/os-release
uname -r
ip -brief address
ip route show
sudo apt update
sudo apt install wireguard
保留一条可用的 SSH 会话,并确认控制台等回退入口。已有部署先备份配置,备份文件同样要限制访问;不要直接覆盖 /etc/wireguard/wg0.conf。更完整的准备项目见服务器部署检查清单。
02 / wg 与 wg-quick 的分工
wg设置和查看密钥、Peer、监听端口等专属参数;wg-quick还管理接口地址、MTU 和路由,并可调用 DNS 集成。Address不是传给 wg setconf的原生字段。名称为 wg0 的接口通常对应 /etc/wireguard/wg0.conf,该目录和配置需由管理员妥善管理。
[Interface]
Address = 10.77.0.1/24
ListenPort = 51820
PrivateKey = <本机私钥,必须在本机生成>
[Peer]
PublicKey = <对端公钥>
AllowedIPs = 10.77.0.2/32
以上为不可直接运行的配置骨架:地址、端口只是演示,尖括号内容必须在自己的设备上替换,且先检查地址冲突。PrivateKey 属于本机,Peer 内的 PublicKey 属于对端;生成与交换的方法见公私钥和 Peer 身份管理。不要把真实私钥放进网页、截图或公开仓库。
03 / 用同一种方式管理接口
配置就绪后检查所有者与权限,例如 root 持有配置文件且权限为 600,目录限制为 700。若接口已由手动命令或其他网络管理器创建,先确认管理归属,再切换到 systemd,避免对同一接口重复执行 up。以下启动操作只应在目标服务器、完成备份后执行。
sudo chmod 600 /etc/wireguard/wg0.conf
sudo systemctl start wg-quick@wg0
sudo systemctl status wg-quick@wg0 --no-pager
sudo journalctl -u wg-quick@wg0 -n 50 --no-pager
sudo wg show wg0
ip -brief address show wg0
发行版提供的服务单元可能显示 active (exited):wg-quick 是完成网络设置后退出的脚本,不需要把它误判为后台进程崩溃。确认当前启动与网络状态正常后,再使用 systemctl enable wg-quick@wg0启用开机启动。启用开机启动本身不代表接口当前已经运行。
04 / 从本机状态走到远程验证
先检查 wg0 的地址、wg show里的监听端口和 Peer 是否符合计划,再核对主机防火墙、云安全组以及必要的 UDP 端口映射。只允许实际需要的端口与来源,不要无条件开放所有 UDP。没有流量时,对端可能还未主动发起握手,应以一次受控通信来观察状态。
接口创建、握手更新和业务访问是三层证据。若握手正常却访问不了目标内网,继续检查IP 转发、防火墙和回程路由。若服务启动报错,先读日志中的具体字段或路由错误,不要反复改默认路由。SaveConfig=true会在停接口时保存运行态,可能覆盖你对文件的编辑,使用前须明确其行为。




