WireGuard安装配置教程
大家都知道,最近管家对梯子管理的太严格,准备去浏览一下国外的技术,经常出现梯子折掉的情况,还好有一个朋友LK给我推荐WireGuard,所以准备重新支起梯子。WireGuard是一个通过UDP协议,实现端对端的连接,更加安全的保护梯子,具体的优点大家自己查询吧,我只说一个字“很快”能比正常的速度快上1/3,那我们开始吧。
一、环境介绍
服务器:Ubuntu16.04 x64
客户端:Windows7
虽然写了服务器、客户端,但需要大家知道的是,WireGuard并没有强调服务器与客户端的,只在于是谁连接了谁,我们这里使用Windows7连接Ubuntu,所以这里标明Ubuntu为服务器,Windows7为客户端。
二、Windows7下Tunsafe安装及密钥生成
我们所使用的客户端是Windows7,可以使用Tunsafe客户端,下载地址:“https://tunsafe.com”。软件安装过程就略过,软件打开后界面如下:
可以使用客户端工具来生成公钥与么钥。点击客户端“File”菜单,选择“Generate Key Pair…”项,点击“Randomize”按钮来生成客房端公钥与私钥,如下图所示。
客户端私钥:aL541p6k4ys1jhhWV+dFIK4MSogdMoGWnoJCW40PeW0=
客户端公钥:WWwXgCaptYXGsjRSjRRRiP3zYkkRthECHUPadqh7LTM=
三、Ubuntu下WireGuard安装
1、安装WireGuard
WireGuard官网已经给出了安装教程,大家可以作为参考,网址为:“https://www.wireguard.com/install/”。
1 | add-apt-repository ppa:wireguard/wireguard |
2、生成服务器端密钥
在安装成功后,在/etc目录下,就会创建wireguard文件夹。接下来进入到目录下,生成服务器端密钥。
1 | cd /etc/wireguard/ |
生成完成后,就可以看到当前路径下有“server_private_key”及“server_public_key”2个文件。
3、创建服务器配置文件
在/etc/wireguard/下创建wg0.conf文件。
1 | vi /etc/wireguard/wg0.conf |
文件内容为:
1 | [Interface] |
刚刚建立的wg0.conf主要是为了wg0这个虚拟网卡的配置文件,其中,
[Interface]:服务器端配置开始标志
Address:为服务器本机IP地址
SaveConfig:为true时,有客户端连接时,保存状态信息,自动保存到wg0.conf文件
PrivateKey:为服务器的私钥
ListenPort:为服务器监听的端口号51820
[Peer]:客户端开始标志,(多个客户端,会有多个配置连接)
PublicKey:为客户端的公钥,这个需要客户端生成,客户端生成完成后,需要填写
AllowedIPs:允许客户端连接的地址
服务器配置文件完整截图如下:
4、允许IP转发
在服务器中,要加入IP转发,要不然会出现客户端不能上网,修改/etc/sysctl.conf文件。
1 | vi /etc/sysctl.conf |
将配置文件中“net.ipv4.ip_forward=1”前面的“#”号去掉。
修改完成后,保存后,重新启动服务器,或者直接用使用如下命令操作。
1 | sysctl -p |
5、修改防火墙规则
设置iptables列表的内容,需要配置接受的协议及端口号,数据转发也需要它的支持。
1 | iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT |
这里特别需要说明的是,最后一行中的“ens3”为服务器本地网卡的名称,这个需要根据你自己的网卡名称而定。配置完成后,将其保存起来。
1 | apt-get install iptables-persistent |
6、DNS服务器配置
这一步可以配置,也可以不用配置,主要是因为使用公共DNS,存在泄漏IP地址的情况,所以我们自己建立DNS,让我们隐藏在VPS后面,从而加强我们的安全,下面的语句要逐条执行。
1 | apt-get install unbound unbound-host |
接下来配置unbound。
1 | vi /etc/unbound/unbound.conf.d/root-auto-trust-anchor-file.conf |
将原有内容注释后,修改配置文件内容如下:
1 | server: |
配置完后,开启服务,并设置为开机自启动。
1 | chown -R unbound:unbound /var/lib/unbound |
7、启动虚拟网卡
接下设置一下网卡的配置文件,以及开启网卡,并设置为服务,开机自启动。
1 | chown -v root:root /etc/wireguard/wg0.conf |
四、Windows7下客户端的配置
软件打开后界面如下:
接下来点击“File”菜单,选择“Edit Config File”项或界面中的“Edit Config”按钮,在弹出的配置文件,删除所有内容,修改如下:
1 | [Interface] |
1 | [Interface] |
接下来,说明一下配置文件各项的内容:
[Interface]:客户端配置开始部分
Address:客户端IP地址(也就是本机地址)
PrivateKey:客户端私钥(服务端生成的client_private_key文件)
DNS:服务器IP地址作为DNS
[Peer]:服务器端的配置信息
PublicKey:服务器的公钥(服务端生成的server_public_key文件)
Endpoint:服务器的IP地址及端口号
AllowedIPs:0.0.0.0/0为允许所有IP地址通讯,如果单个IP地址,可以写多个用逗号隔开,默认写客户端的IP地址
PersistentKeepalive:用来保持连接检查的,每过25s会自动检查连通性,如果IP有变化,也是通过这个自动更新endpoint
我们点击界面上的“Connect”即可以连接到服务器,如下图所示。
此时我们再测试一下是否可以正常访问Google,如下图所示。
特别说明一下,如果我们对服务器配置文件做修改,需要先关闭网卡后,再进行配置文件的修改,修改完成后,开启网卡,以下这两个命令主要是用来关闭或启动网卡的方法。
1 | # 关闭虚拟网卡 |
附加说明,如果你还是连接不上,你可以把服务器重新启动一下。