WireGuard搭建网络,供整个公司使用
- 手机
- 2025-09-14 09:09:01

一、清理现有配置(如已有失败尝试) # 停止并删除现有 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. 服务端监控: watch -n 1 wg # 实时查看连接状态
五、高级管理技巧 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 目录WireGuard搭建网络,供整个公司使用由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“WireGuard搭建网络,供整个公司使用”