MENU

#教程#工具#WireGuard搭建与配置教程

December 8, 2017 • Read: 30528 • 网络笔记

wireguard,无论你是百度还是谷歌都无法找到更多关于他的消息,但是wireguard却被成为新的V#N隧道,今天有幸拿到网友分享的一枚苹果软件TF(没错,由于客户端的不完善,目前苹果只有一个内测软件,据说安卓已经出来了,可惜博主是水果机)

不管完不完整还是啥的,总之,这份教程出现在你的眼前了。

环境

  • Debian8 × 64位
  • 没啥其他的了

搭建

于是本次教程开始了。

设置NET转发

vi /etc/sysctl.conf #编辑文件
net.ipv4.ip_forward=1  #找到这行,然后去除前面的#注释即可
sysctl -p #执行并生效

安装

请直接参考https://www.wireguard.com/install/
这里为了避免大家跑一趟,如果你也用的是Debian8系统,那就看下面的操作。

# 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 update
# apt install wireguard-dkms wireguard-tools

(注意:前面的#不要带进去 这里只是让你好辨别命令行)

生成KEY

wg genkey | tee privatekey | wg pubkey > publickey

查看私钥

cat privatekey 

查看公钥

cat publickey

服务端配置文件

vi /etc/wireguard/wg0.conf

[Interface]
    Address = 207.246.95.191/24 #你的服务器IP/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 = 服务器私钥

    [Peer]
    PublicKey = 客户端公钥
    AllowedIPs = 10.0.0.1/24 #这个暂不需修改(这步我也没琢磨透,后续会更新上)

启动

wg-quick up wg0

使用

安卓

由于博主没有安卓手机,所以在此无法贴出教程。
只能贴下链接

WireGuardGoogle商店的东西,请自备梯子与账号

苹果

由于软件还在内测,还没有上架,只能耐心等待了

1.png

2.png

在Centos7中可能出现的问题

在经过vi /etc/sysctl.conf后可能

需要再在 

/usr/lib/sysctl.d/50-default.conf

 文件里加入

net.ipv4.ip_forward = 1 

解决报错

modprobe: FATAL: Module wireguard not found的报错解决

原因:缺少kernel-devel 具体安装方法请百度或者谷歌,如果你是用本文的Debian8环境请运行如下命令

apt-get install linux-headers-`uname -r`
Last Modified: February 27, 2018
Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

18 Comments
  1. 称呼 称呼

    抱歉,按步骤来无法实现,最后启动时会显示:
    Warning: `/etc/wireguard/wg0.conf' is world accessible
    [#] ip link add wg0 type wireguard
    RTNETLINK answers: Operation not supported
    Unable to get device: Protocol not supported

    1. @称呼擅用Google,百毒,以及翻译。
      `警告:` / etc / wireguard / wg0会是全球访问。
      [ # ] IP链接添加wg0型wireguard
      rtnetlink答案:不支持操作
      无法获取设备:不支持协议`

      请重新换系统使用,最好是KVM框架的

    2. 称呼 称呼

      @空白网络谢谢作者的指导,我用的是ramnode的VPS,KVM框架,我换了一个搬瓦工的VPS,同样是KVM架构。
      前面的步骤都能进行。在进行服务配置时,在/etc/wireguard/目录下无wg0.conf文件。
      我的配置文件为:
      [Interface]
      Address = .../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 =aJXCYSvoOy3XralEhPGh0AXXRIb1QS1cAIoz+PEkIHo=

      [Peer]
      PublicKey =RkOMdMNWmoJrQ86rUUWC3el0mGX++18r+Jdg2DE3Ygs=
      AllowedIPs = 10.0.0.1/24
      最后在启动时,又报相同错误。我总觉得是不是哪里少了点什么?

    3. @称呼感谢你参考小站的文章,由于本人对WireGuard研究的并不是很深透,通过了解,首先你下需要进入/etc/wireguard此目录输入ls查看是否有wg0.conf文件,如果没有,看看是否输入了 vi /etc/wireguard/wg0.conf这一步 ,如果也输入了这一步却还是没有,那应该是你使用vi/vim编辑器出现了错误步骤,我给出如下建议:
      1.你可以选择百度vi/vim编辑器的使用
      2.你可以通过winscp或其他SFTP软件,找到/etc/wireguard,在本地电脑上建立wg0.conf文件并用Nopetad将你的配置保存其中,然后上传至/etc/wireguard目录。

      最后一步:重启reboot你的VPS 再输入wg-quick up wg0启动

    4. 称呼 称呼

      @空白网络老铁如此耐心讲解我着实很感动,WireGuard作为一个新的爬墙工具相关资料很少,中文的就更少了。这需要我们不断的完善和补充。老铁抛砖引玉为WireGuard应用起了一个很好的表率作用。我也是在Li guangming 大神开发新APP时才知道这种翻墙新方法。所以我也希望大神能够出一篇指导资料方便我们学习应用。如果您有相关更好的资料还望第一时间提醒在下。不胜感激。

    5. @称呼WireGuard还在不断完善的路上,虽然我的主打的不是WireGuard,但是在使用路上,多一种方式多一种自由,日后还会继续关注,也期待你在日后也能继续关注本站,不胜感激。

    6. 称呼 称呼

      @空白网络哈哈,太客气了。我一直对于学习新方法非常感兴趣。以后多多交流。

    7. @称呼已更新,请看最后步骤内容

    8. 昵称 昵称

      @空白网络好的。我下来试试。

  2. fish fish

    hi.

    在ubuntu 16.04系统上,成功安装了wireguard:
    root@server:/etc/wireguard# wg show
    interface: wg0
    public key: my-public-key
    private key: (hidden)
    listening port: my-port
    root@server:/etc/wireguard#

    不过,我的客户机器是mac.在mac上,没有ip命令。那么在mac上,如何添加虚拟网卡 wg0 并设置 IP 和路由??
    (参考https://steemit.com/cn/@curl/ubuntu-vpn-wireguard)
    谢谢回复

  3. 肥猫 肥猫

    有问题啊,软件更新就过不了
    root@instance-3:~# apt update
    Hit:1 http://asia-east1.gce.archive.ubuntu.com/ubuntu artful InRelease
    Hit:2 http://asia-east1.gce.archive.ubuntu.com/ubuntu artful-updates InRelease
    Hit:3 http://asia-east1.gce.archive.ubuntu.com/ubuntu artful-backports InRelease
    Get:4 http://deb.debian.org/debian unstable InRelease [241 kB]
    Hit:5 https://download.docker.com/linux/ubuntu artful InRelease
    Err:4 http://deb.debian.org/debian unstable InRelease
    The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
    Hit:6 http://archive.canonical.com/ubuntu artful InRelease
    Hit:7 http://security.ubuntu.com/ubuntu artful-security InRelease
    Reading package lists... Done
    W: GPG error: http://deb.debian.org/debian unstable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
    E: The repository 'http://deb.debian.org/debian unstable InRelease' is not signed.
    N: Updating from such a repository can't be done securely, and is therefore disabled by default.
    N: See apt-secure(8) manpage for repository creation and user configuration details.

    1. 肥猫 肥猫

      @肥猫问题解决
      apt-key adv --recv-keys --keyserver keyserver.Ubuntu.com 8B48AD6246925553
      apt-key adv --recv-keys --keyserver keyserver.Ubuntu.com 7638D0442B90D010
      把上面提到的有问题的key这样执行一下,就可以了

    2. @肥猫我在使用的过程中用的是纯系统,也就是不能更换内核不能上BBR,所以请核查一下是否这些都弄过

  4. t123yh t123yh

    AllowedIPs 配置使用 <IP 地址>/<掩码> 来表示。在匹配一个 IP 是否属于当前 IP 段的时候,只使用<掩码>位来比较。例如,如果指定掩码为 24,则在判断一个 IP 是否属于当前地址段的时候,只会比较前 24 bit 的信息(即前三个数 10.0.0,每个数为 8 个字节)。如果设置为 10.0.0.1/24,那么只有 10.0.0.x 段的 IP 才属于 AllowedIPs。如果设置为 10.0.0.1/32,那么只有 10.0.0.1 才属于 AllowedIPs。如果设置为 10.0.0.1/16,那么 10.0.x.x 属于。在掩码之后的位都是无意义的,也就是说,10.0.0.1/24 和 10.0.0.n/24 (n 为 0-255 间的任意数字)等价,10.0.0.1/16 和 10.0.n.m/16 都是等价的。

  5. sudo wg-quick up wg0
    Warning: `/etc/wireguard/wg0.conf' is world accessible
    [#] ip link add wg0 type wireguard
    [#] wg setconf wg0 /dev/fd/63
    [#] ip address add 172.96.123.123/24 dev wg0
    [#] ip link set mtu 1420 dev wg0
    [#] ip link set wg0 up
    [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    我也是这个问题。。。。头疼。。。

  6. 李

    博主,ubuntu系统去哪里替换配置文件,为什么在目录里找不到?

    1. @李ubuntu系统我不太熟悉嘞... 你可以尝试一下去官网找 或者用which命令

  7. 欢迎交流,我写了WireGuard一键安装教程图文版
    https://since1989.org/wireguard/centos-ubuntu-linux-script-install.html 另外请问楼主交换友链吗?