New for update all beofore files
This commit is contained in:
@@ -0,0 +1,201 @@
|
||||
# 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 无法访问等问题;
|
||||
所有服务均配置为开机自启,重启服务器后无需任何手动操作,客户端可直接连接,正常访问外网和局域网;
|
||||
后续重装或迁移服务器时,可直接参考本教程,一步到位完成搭建,无需重复试错。
|
||||
|
||||
Reference in New Issue
Block a user