一、清理现有设置(如已有失败实验)
- # 停止并删除现有 WireGuard 接口
- sudo wg-quick down wg0
- sudo rm -rf /etc/wireguard/wg0.conf
- # 验证接口已删除 (执行后应该看不到 wg0)
- ifconfig
复制代码 二、服务器端完整设置流程
1. 安装 WireGuard
- sudo apt update && sudo apt upgrade -y
- sudo apt install wireguard resolvconf qrencode -y
复制代码 2. 生成密钥对
- # 生成服务器密钥
- sudo mkdir -p /etc/wireguard
- wg genkey | sudo tee /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key
- sudo chmod 600 /etc/wireguard/*.key
复制代码 3. 创建立置文件 /etc/wireguard/wg0.conf
- cat << EOF | sudo tee /etc/wireguard/wg0.conf
- [Interface]
- Address = 10.8.0.1/24
- ListenPort = 51820
- PrivateKey = $(sudo cat /etc/wireguard/private.key)
- PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
- PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
- EOF
复制代码 4. 启用内核转发
- sudo sed -i '/net.ipv4.ip_forward/s/^#//g' /etc/sysctl.conf
- sudo sysctl -p
复制代码 5. 防火墙设置(告急!)
- # 允许 WireGuard 端口
- sudo ufw allow 51820/udp
- # 允许 NAT 转发
- sudo ufw --force enable
- sudo ufw default deny incoming
- sudo ufw default allow outgoing
复制代码 6. 启动服务
- sudo systemctl enable wg-quick@wg0
- sudo wg-quick up wg0
- # 验证接口 (应该看到 wg0 的 inet 10.8.0.1)
- ifconfig wg0
复制代码 三、生成员工客户端设置(以员工 “john” 为例)
1. 生成客户端密钥
- CLIENT_NAME="john"
- CLIENT_IP="10.8.0.2/32"
- # 生成客户端密钥
- wg genkey | tee /etc/wireguard/${CLIENT_NAME}_private.key | wg pubkey | sudo tee /etc/wireguard/${CLIENT_NAME}_public.key
复制代码 2. 添加到服务端设置
- sudo wg set wg0 peer $(cat /etc/wireguard/${CLIENT_NAME}_public.key) allowed-ips ${CLIENT_IP}
- sudo wg-quick save wg0
复制代码 3. 生成客户端设置文件 /root/${CLIENT_NAME}.conf
- cat << EOF > /root/${CLIENT_NAME}.conf
- [Interface]
- PrivateKey = $(cat /etc/wireguard/${CLIENT_NAME}_private.key)
- Address = ${CLIENT_IP}
- DNS = 8.8.8.8
- [Peer]
- PublicKey = $(sudo cat /etc/wireguard/public.key)
- Endpoint = 139.180.197.84:51820
- AllowedIPs = 0.0.0.0/0
- PersistentKeepalive = 25
- EOF
- # 生成二维码(方便移动端)
- qrencode -t ansiutf8 < /root/${CLIENT_NAME}.conf
复制代码 四、连接测试验证
1. 在客户端装备实行:
- # Windows/Mac:下载官方客户端导入配置文件
- # Linux:sudo wg-quick up john.conf
- # 连接后验证:
- ping 10.8.0.1 # 应该能通
- curl ifconfig.me # 显示服务器IP 139.180.197.84
复制代码 2. 服务端监控:
五、高级管理技巧
1. 批量创建用户脚本
- #!/bin/bash
- for i in {1..20}; do
- CLIENT_NAME="employee${i}"
- CLIENT_IP="10.8.0.$((i+1))/32"
-
- wg genkey | tee /tmp/${CLIENT_NAME}_private.key | wg pubkey | tee /tmp/${CLIENT_NAME}_public.key
-
- sudo wg set wg0 peer $(cat /tmp/${CLIENT_NAME}_public.key) allowed-ips ${CLIENT_IP}
-
- cat << EOF > /root/${CLIENT_NAME}.conf
- [Interface]
- PrivateKey = $(cat /tmp/${CLIENT_NAME}_private.key)
- Address = ${CLIENT_IP}
- DNS = 8.8.8.8
- [Peer]
- PublicKey = $(sudo cat /etc/wireguard/public.key)
- Endpoint = 139.180.197.84:51820
- AllowedIPs = 0.0.0.0/0
- PersistentKeepalive = 25
- EOF
-
- rm /tmp/${CLIENT_NAME}_*
- done
- sudo wg-quick save wg0
复制代码 2. 限制访问范围(示例:仅答应访问服务器内网)
- # 修改客户端的 AllowedIPs 为:
- AllowedIPs = 10.25.96.0/20 # 根据您的 enp8s0 子网 10.25.96.3/255.255.240.0
复制代码 六、故障排查
1. 连接失败查抄项:
- # 确认服务端监听状态
- sudo ss -uapn | grep 51820
- # 查看防火墙规则
- sudo ufw status numbered
- # 检查内核转发是否启用
- cat /proc/sys/net/ipv4/ip_forward
复制代码 2. 日志查看
- journalctl -u wg-quick@wg0 -f
复制代码 以上流程已根据您的服务器IP 139.180.197.84 适配,现实利用时注意:
- 每个员工的 .conf 文件必要单独分发
- 若利用企业内网DNS,需修改设置文件中的DNS地址
- 发起定期备份 /etc/wireguard 目次
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |