debian12安装
- apt update && apt install -y wireguard
复制代码
设置权限获取密钥
- cd /etc/wireguard
- umask 077
- wg genkey > privatekey
- wg pubkey < privatekey > publickey
- # "私钥:"
- cat privatekey
- # "公钥:"
- cat publickey
- #开启内核转发
- echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
复制代码
//---------
重启配置生效
# 先手动重启 wg0 接口
- sudo wg-quick down wg0
- sudo wg-quick up wg0
复制代码
# 再重启服务(或重新启动接口)
- systemctl restart wg-quick@wg0
复制代码
# 验证服务状态
- systemctl status wg-quick@wg0
复制代码
# 设置开机自启(推荐,避免服务器重启后 VPN 失效)
- systemctl enable wg-quick@wg0
复制代码
其他服务
- # 启动服务
- systemctl start wg-quick@wg0
- # 停止服务
- systemctl stop wg-quick@wg0
- # 重启服务(加载最新配置)
- systemctl restart wg-quick@wg0
- # 设置开机自启(推荐,避免服务器重启后 VPN 失效)
- systemctl enable wg-quick@wg0
- # 查看服务状态(验证是否启动成功)
- systemctl status wg-quick@wg0
- #停止当前 wg0 接口:
- wg-quick down wg0
- #重启 wg0 接口:
- wg-quick up wg0
- 验证配置是否生效:
- wg show wg0 | grep "allowed ips"
- 正常输出应显示类似:allowed ips: 10.10.0.2/32。
复制代码
配置说明
- [Interface]
- # 本机
- PrivateKey = eA11r9aYIJDpgaTQFTQQYawwYbkK2C71tfnuLEE=
- Address = 10.10.0.2/24
- ListenPort = 51820
- [Peer]
- PublicKey = 5AeffuQafgsjvBLAduK/wsAnL1Q2qIG/mAk31M=
- # Endpoint = 0.0.0.0:51820 # 手机没有固定IP → 这一行直接删掉!
- AllowedIPs = 10.10.0.1/32
- PersistentKeepalive = 25
复制代码
二、全网段互通的核心配置
即使地址输对了,若没配置防火墙和 IP 转发,依然会丢包,按以下步骤操作:
1. 开启 Linux 内核 IP 转发(关键!)
WireGuard 多设备互通需要开启内核转发,否则流量无法转发到对端:
- # 1. 开启内核 IP 转发
- echo 1 > /proc/sys/net/ipv4/ip_forward
- echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
- sysctl -p
- echo 1 > /proc/sys/net/ipv4/ip_forward:临时开启 IP 转发成功;
- echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf:永久开启 IP 转发的配置已写入;
- sysctl -p 输出中 net.ipv4.ip_forward = 1:验证永久配置生效,这是 WireGuard 转发流量的核心前提。
- # 2. 配置 NAT 规则(将 wg0 流量转发到公网网卡,如 eth0)
- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- iptables -A FORWARD -i wg0 -j ACCEPT
- iptables -A FORWARD -o wg0 -j ACCEPT
- 注意:将 eth0 替换为你的服务器公网网卡名称(可通过 ip addr 查看)。
- # 正确查看网卡的命令(找到公网网卡,通常是 eth0/ens33/eth1 等)
- ip addr
- 2. 配置 NAT 转发规则(让手机流量能出公网)
- 将下面的 eth0 替换为你实际的公网网卡名称:
- # 添加NAT伪装规则(核心!)
- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- # 允许wg0接口的转发流量
- iptables -A FORWARD -i wg0 -j ACCEPT
- iptables -A FORWARD -o wg0 -j ACCEPT
- # 保存iptables规则(避免重启后失效)
- # OpenCloudOS/CentOS 用这个:
- yum install -y iptables-services
- service iptables save
- # Debian/Ubuntu 用这个(如果是Debian系):
- # apt install -y iptables-persistent
- # netfilter-persistent save
- 3. 验证 WireGuard 接口状态
- # 查看wg0是否正常运行
- wg show wg0
- # 查看wg0接口是否UP
- ip addr show wg0
- ✅ 正常输出:
- wg show wg0 能看到 K20 的公钥和 allowed ips: 0.0.0.0/0, ::/0;
- ip addr show wg0 能看到 10.10.0.3/24 的 IP,且状态为 UP。
复制代码
|