[公告] 新增大杀器番墙 https://dashaqi.cf/2017/10/13/easy-deploy-dashaqi-fanqiang-gfw-press/
Blog

WireGuard新手教程全集,使用 WireGuard翻墙就是如此简单, WireGuard一键搭建和优化详细图文教程

搭建 WireGuard,这篇文章就够了!最详细的 WireGuard教程,一键搞定繁琐的 WireGuard配置, WireGuard 安装部署图文教程送上

前言

此教程面向小小白萌新,从购买 VPS 到使用 SSH 登录并安装和配置WireGuard,尽量详细一些,老鸟请自行飞过。

此教程使用 Windows 系统,如果你是 Mac 用户,需要先自行解决 SSH 的登录使用问题,其实也很简单的啦,自己网上去搜索 Mac SSH登录 。

简介

来看这篇文章的萌新都是肯定知道 WireGuard 是用来干嘛的了,我也懒得再长篇细说了,

显然,这篇文章不会像官方的文档或者白话文那样特殊性的展示肌肉。

而是可以直接让你上手使用 WireGuard,达到你所想要的需求,哪怕你一点经验都没有。

 

准备

一个 SSH 远程管理软件,使用 Xshell 5,这个是必须的。

打开链接后,便会自动下载了,如果没有自动下载,你自行选择 下载 即可,下载好了就安装它。

备注:如果 Xshell 5 提示升级,直接忽略即可,不要升级到 Xshell 6,新版本增加了某些使用限制

为了避免国内的流氓代理,请使用本人提供的 Xshell 5 程序 (官网原版,请放心使用)

购买一个VPS

选择合适的VPS套餐,VPS套餐来自:搬瓦工(Bandwagon Host)

推荐使用搬瓦工 6.25% 优惠码: BWH26FXH3HIQ

 

香港优化线路,推荐

CPU

内存

硬盘

流量

价格

链接

1 核

1024 MB

20 GB

100GB / 月

$99.99 / 年

1 核

2048 MB

40 GB

200GB / 月

$199.99 / 年

1 核

4096 MB

80 GB

300GB / 月

$39.99 / 月

2 核

8192 MB

160 GB

500GB / 月

$79.99 / 月

4 核

16384 MB

320 GB

1000GB / 月

$159.99 / 月

CN2 GIA 优化线路 – 推荐

CPU

内存

硬盘

流量

价格

链接

1 核

512 MB

10 GB

300GB / 月

$39.99 / 年

2 核

1024 MB

20 GB

1000GB / 月

$19.99 / 季

3 核

2048 MB

40 GB

2000GB / 月

$39.99 / 季

4 核

4096 MB

80 GB

3000GB / 月

$27.99 / 月

6 核

8GB

160 GB

5000GB / 月

$55.99 / 月

8 核

16GB

320 GB

8000GB / 月

$109.99 / 月

CN2 优化线路

CPU

内存

硬盘

流量

价格

链接

1 核

512 MB

10 GB

500GB / 月

$29.99 / 年

1 核

1024 MB

20 GB

1000GB / 月

$49.99 / 年

1 核

2048 MB

40 GB

2000GB / 月

$99.99 / 年

2 核

4096 MB

80 GB

3000GB / 月

$19.99 / 月

2 核

8 GB

160 GB

5000GB / 月

$39.99 / 月

3 核

16 GB

320 GB

8000GB / 月

$79.99 / 月

普通优化线路

CPU

内存

硬盘

流量

价格

链接

1 核

512 MB

10 GB

1000GB / 月

$19.99 / 年

1 核

1024 MB

20 GB

2000GB / 月

$39.99 / 年

其他 – 这个套餐可换机房

CPU

内存

硬盘

流量

价格

链接

1 核

512 MB

10 GB

500GB / 月

$19.99 / 年

2 核

1024 MB

20 GB

1 TB / 月

$49.99 / 年

3 核

2 GB

40 GB

2 TB / 月

$99.99 / 年

4 核

4 GB

80 GB

3 TB / 月

$19.99 / 月

5 核

8 GB

160 GB

4 TB / 月

$39.99 / 月

6 核

16 GB

320 GB

5 TB / 月

$79.99 / 月

 

选择哪个套餐?如果你不知道选择哪个套餐

下面这是最常见的购买套餐

备注

CPU

内存

硬盘

流量

价格

链接

其他

1 核

512 MB

10 GB

500GB / 月

$19.99 / 年

CN2

1 核

512 MB

10 GB

500GB / 月

$29.99 / 年

GIA

2 核

1024 MB

20 GB

1000GB / 月

$19.99 / 季

GIA

1 核

512 MB

10 GB

300GB / 月

$39.99 / 年

香港

1 核

4096 MB

80 GB

300GB / 月

$39.99 / 月

香港

2 核

8192 MB

160 GB

500GB / 月

$79.99 / 月

 

没有找到合适的套餐?你可以前往官网详细查看:快速通道链接

 

哪个套餐好?

一般来说,推荐购买香港优化线路 或 CN2 GIA 优化线路,或者哪个便宜选择那个,当然如果你使用量比较多或者想要分享给同学和朋友一起用的话,选择合适的套餐即可。又或者你土豪的话,选择最贵的也行。

香港优化线路的VPS的速度最快。 但价格贵,流量相对少一些……

注意,记住一分钱一分货。

如果出现 out of stock 这样的提示,那就是这个套餐卖完了,先选择其他套餐即可,等后面有货了再变更套餐。

购买

在上面表格中选择想要购买的套餐,然后点击购买即可。

将套餐添加到购物车

Add to Cart

说明一下,在Billing Cycle选项那里选择:$xxxx USD Annually,按年付的意思

推荐按年付,比按月付最高可省55%的钱

Location 选择: HK – Hong Kong xxxxx (如果你购买的是香港线路的话)

否则选择: US – Los Angeles xxxxx

然后点击Add To Cart

结算

推荐使用搬瓦工 6.25% 优惠码:BWH26FXH3HIQ

这个优惠码是搬瓦工目前最高优惠的优惠码

输入优惠码之后点击 Validate Code >>

输入优惠码

然后点击Checkout

如下图所示:已经使用搬瓦工优惠码

Checkout

然后会提示你注册账号 (如果你没账号或者还没登录)

请按照下面图片提示来填写~

Checkout now

要注意的是,Country 选项记得选择China,Payment Method 选择Alipay

不要忘了勾上 I have read and agree to the Terms of Service

然后Complete Order

付款

点击Pay now

之后便会跳转到支付宝付款界面,完成付款即可

Pay now

获取VPS信息

确保你已经成功付款之后

再点击网页中的 KiwiVM Control Panel

这是首次登录的界面,稍等一会,等待资源分配即可。

Task in progress

等待两三分钟,刷新一下。

这是已经在运行的界面,请记下IP address然后点击stop

停止VPS

当出现:Great Success!Virtual server will stop in a few seconds.

证明VPS已经停止了,我们需要重装一个系统。点击左边的Install new OS

之后选择centos-7-x86_64-bbr

再勾上:I agree that all existing data on my VPS will be lost.

然后点击Reload

(注意:如果你下面的列表里实在找不到centos-7-x86_64-bbr

那么请选择 centos-7-x86_64 )

Install new OS

安装此系统之后便会自动启用 BBR 优化加速。

当点击Reload之后,稍等片刻将会出现下图所示的界面,

请务必记下: You will need a new root password to access your VPS:xxxx

还有:New SSH Port:

一个是root密码,一个是SSH端口,

例如我的root密码是:xM529uLLeeTB,SSH端口是:26654

Reload

OK,这时我们已经获取到VPS的信息了。

登录VPS

打开Xshell 5,新建一个会话。

主机写上你的VPS IP地址,端口写上SSH端口。

new

之后点击 用户身份验证,用户名:root,密码:你的root 密码。然后点击确定

user-and-passwd

之后选择连接。

连接

然后会提示SSH安全警告,选择,接受并保存。

SSH 安全警告

这是登录成功后的界面

登陆成功

 
 

WireGuard客户端

下载安装

目前(2018-10-18) Windows 的客户端只有一个第三方的 TunSafe ,开源,好用。

下载地址为:https://tunsafe.com/download

下载后安装,并启动,即可看到主界面:
post_10_ui

生成密钥对(Key Pair)

在开始前,我们需要先创建至少2个密钥对(公钥和私钥)。

在TunSafe软件的界面中,点击 File 菜单,再点击 Generate Key Pair ,即可出现公钥私钥生成界面。
post_10_gkp

通过点击 Randomize 按钮,软件会生成一对密钥,其中Private Key为私钥,Public Key为公钥,为了方便配置服务端和客户端,我们需要生成至少两对密钥。

新开一个记事本,将生成的公钥和私钥保存下来,建议参考下列格式记录清楚,稍后配置时需要使用。
post_10_keys

注意:出于安全考虑,不要照搬本教程的公钥和私钥。密钥对必须对应,不能将第一次生成的公钥和第二次生成的私钥组合起来使用。

以上就完成了密钥对的生成,下面开始配置客户端的配置文件。

创建(编辑)客户端配置文件

通过点击 TunSafe 主界面右侧的 Edit Config 按钮,可以打开编辑文件进行编辑。

文件中有很多注释内容,本例将简单进行概述:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[Interface]
# [Interface] 以下为本机(客户端)的配置情况。
PrivateKey = +ERZhs7mDpIXjcnabVl+WytG80xjKCUEWlFsQrKtaUc=
# 此行为客户端私钥(Private Key),请在生成的密钥对中选取客户端的私钥并粘贴进来。
ListenPort = 9876
# 此行为指定监听的端口,也作为发送(源)端口,可自行修改,不要求和服务器一致。
DNS = 8.8.8.8
# 此行为设定连接后客户端所使用的DNS服务器。
Address = 10.0.2.1/24
# 此行为设定客户端连接后所使用的IP地址,可以维持默认,也可以自行指定,但是需要和服务端配置在同一网段(如都在 10.0.2.0/24网段),不然会被丢弃。
# BlockInternet = route, firewall
# 此行为TunSafe的专有选项,意思为是否要屏蔽所有不安全的互联网流量,建议维持默认关闭(注释, # )的状态。
[Peer]
# [Peer] 以下为连接服务器的配置。
PublicKey = R8m0mgZWEH1b+synpBYyqSTOuEsw1gU46u457IzsohA=
# 此行为服务器的公钥,请在生成的密钥对中选取服务端的公钥并粘贴进来。
# PresharedKey = SNz4BYc61amtDhzxNCxgYgdV9rPU+WiC8woX47Xf/2Y=
# 此行为预共享密钥,对于一般安全要求,无需指定。
AllowedIPs = 0.0.0.0/0
# 此行为指定允许数据包发送的IP范围,如果要允许发送至所有IP的数据包,设置为 0.0.0.0/0 即可。
Endpoint = 123.45.67.89:9876
# 此行为指定你的服务端的IP和端口,如果已知服务器的IP和端口,可以先填写进去。
PersistentKeepalive = 25
# 此行为定期发送“保持活动”的数据包,维持默认的 25 (秒)即可。

以上为客户端配置文件的设置,修改完毕后保存退出即可。

WireGuard服务端:

下载与安装

请先确保VPS已经更新到最新系统(含内核),建议使用 apt-get update 和 apt-get dist-upgrade 进行更新。

在服务端上获取 WireGuard 有两种方式,第一种可以修改 apt-get 所使用的 source.list ,增加 unstable 源分支,具体操作详见: https://www.wireguard.com/install/ 。

另一种,可以从 Debian 源仓库直接下载到最新的内核组件工具包,下载后使用 dpkg -i 命令安装即可。

备注: WireGuard 服务端需要依赖动态内核模块支持框架(Dynamic Kernel Module Support Framework ,DKMS),请确保已经安装。

系统环境配置

安装结束后,首先我们需要允许IP转发,通过执行 sysctl -a |grep net.ipv4.ip_forward 命令,检查 net.ipv4.ip_forward 参数是否为1,如果不为1,则需要修改 /etc/sysctl.conf 文件,找到 net.ipv4.ip_forward 修改为1,或者新增一行 net.ipv4.ip_forward = 1 ,保存退出后使用 sysctl -p 命令使设置立刻生效。

创建服务端配置文件

下面,我们可以开始创建服务端的配置文件了,使用编辑器新建一个位于 /etc/wireguard/ 目录下的配置文件,本例中为 /etc/wireguard/wg0.conf :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[Interface]
# [Interface] 以下为本机(服务器)参数指定。
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 此行为定义启动该配置文件后,所执行的命令,该iptables命令用于创建一条转发规则。注意:如果服务器的网卡不叫 eth0 ,请注意修改,详见末尾疑难解答。
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# 此行为定义停止该配置文件后,所执行的命令,该iptables命令用于删除所创建的转发规则。注意:如果服务器的网卡不叫 eth0 ,请注意修改,详见末尾疑难解答。
ListenPort = 9876
# 此行为定义服务端所监听的端口。
PrivateKey = +LAP1sZG1T6ljf6SQ/f2XOOiUyFzn5UrY8gd/tyJK2I=
# 此行为服务器的私钥,请在生成的密钥对中选取服务端的私钥并粘贴进来。
[Peer]
# [Peer] 以下为接入客户端的设定。
PublicKey = /09mvABMFRs3fONigHcMlyK9rbnAj87ELDTA7tLmzDI=
# 此行为客户端的公钥,请在生成的密钥对中选取客户端的公钥并粘贴进来。
AllowedIPs = 10.0.2.0/24
# 此行为允许客户端所使用的IP地址范围,需要和客户端所设置的IP地址位于同一网段,如客户端的IP为 10.0.2.1/24 ,那么这里可以设置为 10.0.2.0/24 ;如果客户端为 172.16.0.1/24 ,那么这里则需要设置为 172.16.0.0/24 。

完成设置后保存并退出,回到命令行后执行:wg-quick up wg0 即可基于我们刚写好的配置文件(wg0.conf)启动服务端。

备注:如果需要每次开机自动启动服务端的 WireGuared ,可执行:systemctl enable [email protected] 命令,其中 wg0 为配置文件的文件名(不含扩展名)。

开始连接

回到客户端,点击 TunSafe 软件的 Connect 按钮,如果没有任何错误,且提示 Connected ,则说明连接成功。
post_10_connected

对于Android 和 iOS 及其他平台客户端请自行谷歌搜索下载使用.

疑难解答

※连接不上,始终在重试。

请检查客户端的服务器IP、端口,服务器和客户端的密钥对配置是否正确,有必要请重新配置一次服务器和客户端的密钥对,另外也可能是由服务端的网络防火墙屏蔽,请检查 iptables 或 ufw 等策略是否正确。

如果配置无误,有一定可能性是由于线路不稳定(UDP丢包)或者你所在运营商(含客户端、服务端)的网络屏蔽了UDP协议。

※连接上了,但是无法上网。

请确保客户端配置文件中指定的IP地址(Address)在服务端配置文件中指定的IP地址(AllowedIPs)范围内,如客户端 [Interface] 下的 Address 设置的是 10.0.2.1/24,那么服务端 [Peer] 下的 AllowedIPs 则需要设置为 10.0.2.0/24 。

如果确认IP范围无误,请使用 sysctl -a |grep net.ipv4.ip_forward 命令检查 net.ipv4.ip_forward 是否为 1 ,如果不是,请检查是否正确编辑了 /etc/sysctl.conf 文件,或者 sysctl 是否已经生效。

如果 net.ipv4.ip_forward 确认为1,请使用 ifconfig 或 ip addr 命令检查设置了公网IPv4或IPv6的网卡是否叫 eth0 ,如果不是 eth0 ,请重新编辑服务器端的配置文件,将 PostUp 和 PostDown 参数中的 eth0 部分修改为你的网卡名,某些网卡可能叫 enoXX 、 ensXX 、 enpXsXX ,请以你的系统为准。

如果你的服务器同时部署了自定义的防火墙策略,请确保 PostUp 所添加的 iptables 策略位于 FORWARD 链的顶部。

参考链接

没有评论

Leave a Reply