# Debian 命令行 WireGuard VPN 服务器搭建教程(静态IP+域名+自启) ## 一、环境说明 • 系统:Debian(纯命令行模式,无桌面环境,节约资源) • 网卡名称:ens192 • 静态IP:192.168.2.203/24(子网掩码:255.255.255.0) • 网关:192.168.2.1 • WireGuard EndPoint:hayashiei.top:58888(域名需解析到服务器公网IP,仅局域网使用可忽略) • 管理工具:wireguard-ui(可视化配置,简化操作) • 自启方式:systemd 服务(解决重启丢规则、服务失效问题) ## 二、前置准备 1. 以 root 用户登录 Debian 纯命令行(远程登录可使用 Xshell、Putty 等工具); 2. 确保服务器临时能联网(用于下载依赖和软件,后续配置静态IP后永久联网); 3. 提前确认域名 hayashiei.top 已解析(若使用公网访问,无公网则跳过)。 ## 三、分步搭建步骤 ### 步骤 1:更新系统并安装基础依赖 执行以下命令,更新系统软件包,并安装后续操作所需的基础工具: #更新系统包 apt update && apt upgrade -y #安装WireGuard、curl、sudo、iptables等依赖 apt install -y wireguard wireguard-tools curl iptables sudo unzip ### 步骤 2:配置静态 IP(适配 ens192 网卡) 先备份原有网络配置,再写入静态IP配置(避免配置错误无法恢复): 1. 备份网络配置文件: cp /etc/network/interfaces /etc/network/interfaces.bak 2. 写入静态IP配置(直接覆盖原有内容,适配192.168.2.203): cat > /etc/network/interfaces << EOF auto lo iface lo inet loopback #配置 ens192 静态 IP auto ens192 iface ens192 inet static address 192.168.2.203/24 # 静态 IP(/24 等价于子网掩码 255.255.255.0) gateway 192.168.2.1 # 网关(路由器IP) dns-nameservers 223.5.5.5 223.6.6.6 # 阿里云 DNS,确保解析正常 EOF 3. 重启网络服务,使静态IP生效: systemctl restart networking 4. 验证静态IP是否生效: ip a show ens192 验证标准:命令输出中能看到 “inet 192.168.2.203/24”,表示静态IP配置成功。 ### 步骤 3:开启IP转发 #临时开启(当前会话有效) echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv6/conf/all/forwarding #永久开启(重启后生效) echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf #生效配置 sysctl -p ### 步骤 4:配置系统防火墙 #放行58888 UDP端口(WireGuard) iptables -A INPUT -p udp --dport 58888 -j ACCEPT iptables -A FORWARD -i wg0 -j ACCEPT iptables -A FORWARD -o wg0 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #保存iptables规则(防止重启失效) apt install -y iptables-persistent netfilter-persistent save ### 步骤 5:安装 wireguard-ui(可视化管理工具) wireguard-ui 可简化服务器和客户端配置,无需手动编写复杂的 conf 文件: 1. 安装WireGuard-UI工具 #创建存放目录 mkdir -p /opt/wireguard-ui cd /opt/wireguard-ui #下载最新版wireguard-ui(适配amd64架构) curl -L https://github.com/ngoduykhanh/wireguard-ui/releases/latest/download/wireguard-ui-linux-amd64.tar.gz -o wireguard-ui.tar.gz tar xzf wireguard-ui.tar.gz chmod +x wireguard-ui 2. 创建 wireguard-ui 系统服务(实现开机自启): #创建systemd服务(开机自启) cat > /etc/systemd/system/wireguard-ui.service << EOF [Unit] Description=WireGuard UI After=network.target [Service] User=root WorkingDirectory=/opt/wireguard-ui ExecStart=/opt/wireguard-ui/wireguard-ui --bind-address 0.0.0.0:5000 Restart=always RestartSec=5 [Install] WantedBy=multi-user.target EOF 3. 设置WireGuard-UI开机自启动 #启动并设置开机自启 systemctl daemon-reload systemctl start wireguard-ui systemctl enable wireguard-ui 验证 wireguard-ui 是否正常运行: systemctl status wireguard-ui.service 验证标准:输出中显示 “active (running)”,表示 UI 服务启动成功。 ### 步骤 6:通过 wireguard-ui 配置 WireGuard 服务器 UI 启动后,通过浏览器访问,可视化配置服务器参数: 1. 浏览器访问 UI 页面(仅局域网访问,公网访问需端口转发): http://192.168.2.203:5000 2. 首次登录(默认账号密码,建议登录后立即修改): 账号:admin 密码:admin 如果出现登陆跳转登陆界面则: #假设数据目录在 /opt/wireguard-ui 或 /var/lib/wireguard-ui #先找到你的数据目录(看启动日志或配置) #示例: chown -R root:root /opt/wireguard-ui chmod -R 700 /opt/wireguard-ui 然后重启服务。 systemctl daemon-reload systemctl restart wireguard-ui 3. 配置服务器核心参数(进入「Server」页面): • Interface Name:wg0(默认即可,无需修改) • Listen Port:51820(默认端口,若被占用可修改,需同步修改后续配置) • Private Key/Public Key:系统自动生成,无需手动修改 • Address:填写 VPN 内网段(如 10.0.0.1/24,自定义即可,避免与局域网网段冲突) • DNS Servers:223.5.5.5, 223.6.6.6(与静态IP配置的DNS一致,确保客户端解析正常) • EndPoint:hayashiei.top:58888(填写自己的域名+端口,无公网可留空) PostUP和PostDown如果是外网VPN则什么都不用填。如果是异地组网则按照如下填写: • PostUP:iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE; iptables -A FORWARD -i %i -o %i -j ACCEPT • PostDown:iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens192 -j MASQUERADE; iptables -D FORWARD -i %i -o %i -j ACCEPT 4. 点击「Save Config」保存配置,系统会自动生成 /etc/wireguard/wg0.conf 文件(核心配置文件)。 下面是验证是否正常。 #查看WireGuard接口状态 wg show #查看wireguard-ui服务状态 systemctl status wireguard-ui #查看端口监听(确认58888 UDP端口已监听) ss -ulnp | grep 58888 5. 配置 WireGuard 开机自启 通过 systemd 服务,让 wg0 接口开机自动加载: 1. 启用自启: systemctl enable wg-quick@wg0.service 2. 启动 wg0 接口: wg-quick up wg0 3. 验证 WireGuard 状态: wg show wg0 验证标准:能看到 wg0 接口的 IP、监听端口,即表示启动成功。 ### 步骤 7:添加客户端(通过 wireguard-ui) 客户端需导入配置文件才能连接 VPN,通过 UI 快速生成: 1. 回到 wireguard-ui 页面,点击左侧「Clients」→「Add Client」; 2. 填写客户端名称(如 “iPhone”、“Windows”,自定义,便于区分); 3. 其他参数默认(系统自动生成密钥和 IP),点击「Save」; 4. 生成后,点击客户端右侧「Download」,下载 .conf 配置文件; 5. 将配置文件导入客户端 WireGuard 软件(手机/电脑均可,下载对应系统的 WireGuard 客户端)。 ### 步骤 8:功能验证(确保所有配置正常) 客户端导入配置并连接 VPN 后,进行以下测试: 1. 访问外网:打开浏览器访问百度、谷歌等,能正常加载即表示外网连通; 2. 访问局域网:访问 192.168.2.x 网段的设备(如路由器、其他电脑),能正常访问即表示局域网连通; 3. 重启验证:执行 reboot 重启服务器,重启后无需手动操作,再次测试客户端连接和访问功能,均正常即表示所有配置永久生效。 ## 四、常用运维命令(收藏备用) #查看 wireguard-ui 服务状态(是否运行) systemctl status wireguard-ui.service #重启 wireguard-ui(UI 无法访问时使用) systemctl restart wireguard-ui.service #查看 WireGuard 接口状态(客户端连接情况、流量等) wg show wg0 #重启 WireGuard 接口(客户端无法连接时使用) wg-quick down wg0 && wg-quick up wg0 #查看 NAT 转发服务状态 systemctl status wg-nat.service #验证静态 IP 是否正常 ip a show ens192 #验证 IP 转发是否开启 cat /proc/sys/net/ipv4/ip_forward #重启服务器 Reboot #添加了客户端但是没有生效 #先停止旧接口,再启动新配置 wg-quick down wg0 && wg-quick up wg0 # 验证修改是否生效 wg show wg0 ## 五、注意事项 1. 域名使用说明:若需通过公网域名 hayashiei.top 连接 VPN,需确保: 域名已正确解析到服务器公网 IP; 路由器需转发 58888端口(UDP 协议)到服务器 192.168.2.203; 2. 端口冲突:若 58888 端口被占用,需修改 wireguard-ui 中的「Listen Port」,并同步修改路由器端口转发和客户端配置; 3. 命令行模式:无需安装桌面环境,保持纯命令行即可,节约服务器资源; 4. 密码修改:首次登录 wireguard-ui 后,建议立即修改 admin 密码(进入「Settings」页面修改),提升安全性; 5. 配置备份:建议备份 /etc/wireguard/ 目录下的所有 .conf 文件,以及 /etc/network/interfaces 文件,便于后续恢复。 ## 六、总结 本教程完全适配本人服务器环境,核心解决了 Debian 命令行模式下:静态 IP 配置、WireGuard 重启失效、NAT 转发规则丢失、wireguard-ui 无法访问等问题; 所有服务均配置为开机自启,重启服务器后无需任何手动操作,客户端可直接连接,正常访问外网和局域网; 后续重装或迁移服务器时,可直接参考本教程,一步到位完成搭建,无需重复试错。