找回密码
 立即注册

wireguard配置笔记

[复制链接]
69伙伴 发表于 2026-2-19 16:15:42 | 显示全部楼层 |阅读模式
debian12安装
  1. apt update && apt install -y wireguard
复制代码


设置权限获取密钥

  1. cd /etc/wireguard
  2. umask 077
  3. wg genkey > privatekey
  4. wg pubkey < privatekey > publickey
  5. # "私钥:"
  6. cat privatekey

  7. # "公钥:"
  8. cat publickey

  9. #开启内核转发
  10. echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
复制代码

//---------


重启配置生效
# 先手动重启 wg0 接口

  1. sudo wg-quick down wg0
  2. sudo wg-quick up wg0

复制代码


# 再重启服务(或重新启动接口)

  1. systemctl restart wg-quick@wg0
复制代码


# 验证服务状态

  1. systemctl status wg-quick@wg0
复制代码


# 设置开机自启(推荐,避免服务器重启后 VPN 失效)

  1. systemctl enable wg-quick@wg0
复制代码


其他服务

  1. # 启动服务
  2. systemctl start wg-quick@wg0

  3. # 停止服务
  4. systemctl stop wg-quick@wg0

  5. # 重启服务(加载最新配置)
  6. systemctl restart wg-quick@wg0

  7. # 设置开机自启(推荐,避免服务器重启后 VPN 失效)
  8. systemctl enable wg-quick@wg0


  9. # 查看服务状态(验证是否启动成功)
  10. systemctl status wg-quick@wg0


  11. #停止当前 wg0 接口:
  12. wg-quick down wg0

  13. #重启 wg0 接口:
  14. wg-quick up wg0


  15. 验证配置是否生效:
  16. wg show wg0 | grep "allowed ips"

  17. 正常输出应显示类似:allowed ips: 10.10.0.2/32。
复制代码




配置说明
/etc/wireguard/wg0.conf


  1. [Interface]
  2. # 本机
  3. PrivateKey = eA11r9aYIJDpgaTQFTQQYawwYbkK2C71tfnuLEE=
  4. Address = 10.10.0.2/24
  5. ListenPort = 51820

  6. [Peer]
  7. PublicKey = 5AeffuQafgsjvBLAduK/wsAnL1Q2qIG/mAk31M=
  8. # Endpoint = 0.0.0.0:51820 # 手机没有固定IP → 这一行直接删掉!
  9. AllowedIPs = 10.10.0.1/32
  10. PersistentKeepalive = 25
复制代码


二、全网段互通的核心配置
即使地址输对了,若没配置防火墙和 IP 转发,依然会丢包,按以下步骤操作:
1. 开启 Linux 内核 IP 转发(关键!)
WireGuard 多设备互通需要开启内核转发,否则流量无法转发到对端:


  1. # 1. 开启内核 IP 转发
  2. echo 1 > /proc/sys/net/ipv4/ip_forward
  3. echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
  4. sysctl -p

  5. echo 1 > /proc/sys/net/ipv4/ip_forward:临时开启 IP 转发成功;
  6. echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf:永久开启 IP 转发的配置已写入;
  7. sysctl -p 输出中 net.ipv4.ip_forward = 1:验证永久配置生效,这是 WireGuard 转发流量的核心前提。



  8. # 2. 配置 NAT 规则(将 wg0 流量转发到公网网卡,如 eth0)
  9. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  10. iptables -A FORWARD -i wg0 -j ACCEPT
  11. iptables -A FORWARD -o wg0 -j ACCEPT




  12. 注意:将 eth0 替换为你的服务器公网网卡名称(可通过 ip addr 查看)。
  13. # 正确查看网卡的命令(找到公网网卡,通常是 eth0/ens33/eth1 等)
  14. ip addr

  15. 2. 配置 NAT 转发规则(让手机流量能出公网)
  16. 将下面的 eth0 替换为你实际的公网网卡名称:
  17. # 添加NAT伪装规则(核心!)
  18. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

  19. # 允许wg0接口的转发流量
  20. iptables -A FORWARD -i wg0 -j ACCEPT
  21. iptables -A FORWARD -o wg0 -j ACCEPT

  22. # 保存iptables规则(避免重启后失效)
  23. # OpenCloudOS/CentOS 用这个:
  24. yum install -y iptables-services
  25. service iptables save
  26. # Debian/Ubuntu 用这个(如果是Debian系):
  27. # apt install -y iptables-persistent
  28. # netfilter-persistent save

  29. 3. 验证 WireGuard 接口状态
  30. # 查看wg0是否正常运行
  31. wg show wg0

  32. # 查看wg0接口是否UP
  33. ip addr show wg0

  34. ✅ 正常输出:
  35. wg show wg0 能看到 K20 的公钥和 allowed ips: 0.0.0.0/0, ::/0;
  36. ip addr show wg0 能看到 10.10.0.3/24 的 IP,且状态为 UP。


复制代码

临时交流 ⇨点我留言
【附件·直下】非必要·勿注册

联系我们 ( 京ICP备16001788号 ) | 网站地图 | 2012- UID.Cool |

GMT+8, 2026-4-3 20:42

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表