shadowguard

shadowguard by 神秘人 at 2017-12-05

shadowguard

shadowguard

us:1.99刀 下载

我使用的VPS是debian系统

VPS服务器安装

echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable-wireguard.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 150\n' > /etc/apt/preferences.d/limit-unstable
apt-get update
apt-get install wireguard-dkms wireguard-tools

设置服务器的 NAT 流量转发

vim /etc/sysctl.conf  

找到这一行 #net.ipv4.ip_forward = 1 去掉注释符 “#”

net.ipv4.ip_forward = 1  

执行 sysctl 并生效

sysctl -p

创建文件夹

mkdir -p /etc/wireguard && chmod 0777 /etc/wireguard
cd /etc/wireguard  
umask 077  

创建服务私钥与公钥

wg genkey | tee privatekey | wg pubkey > publickey

制作服务器配置文件

vim wg0.conf

粘贴以下内容

[Interface]
Address = 10.200.100.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = [SERVER PRIVATE KEY]

[Peer]
PublicKey = [CLIENT PUBLIC KEY]
AllowedIPs = 10.200.100.2/32

上方的 [SERVER PRIVATE KEY],用cat privatekey命令显下的内容取代

下方的[CLIENT PUBLIC KEY],将看下面操作

014 015

这样将上面wg0.conf修改完后退出保存

回到服务端的界面

输入ifconfig命令 看有没有eth0 有的话很好

没有的话请记下你有的其他网卡名称 然后替换下面配置文件postup和postdown两行里的eth0

启动网卡

wg-quick up wg0

服务器安装完成

简单说明

客户端为A,服务端为B。

以上google为例

A数据以B公钥加密传输到B,B以B私钥解密转发google

B收到google回馈数据再以A公钥加密传输到A,A再以A私钥解密

所以服务器保存服务器私钥及客户端公钥,客户端保存客户端私钥及服务端公钥

常见问题解决

DKMS module not available

If the following command does not list any module after you installed wireguard-dkms,

$ modprobe wireguard && lsmod | grep wireguard

or if creating a new link returns

# ip link add dev wg0 type wireguard
RTNETLINK answers: Operation not supported

you probably miss the linux headers.

These headers are available in linux-headers or linux-lts-headers depending of the kernel installed on your system.