利用Wireguard搭建Home和Work之间的私有网络
利用Wireguard搭建公司到家的私有VPN网络
作为搞IT的我们。经常需要访问公司的云盘和其他内容。同时也需要在公司时访问家里的私有云盘数据和内部PC电脑的数据。
把这些数据全部映射到互联网上,是非常不安全的。如果采用常规的L2tp、PPTP等VPN方式。由于部署复杂,且不兼容手机。 如果采用专业VPN厂商的设备,又投入太高。不符合实际需求。
于是寻找到Wireguard。
本次以我家庭网络和公司网络作为参考。
一、什么是Wireguard
在官方的介绍上,Wireguard是一个Faster、Modern的VPN技术。我认为是Wireguard是一个快速、安全、对NAT穿越支持较好的VPN方式。
二、安装 Wireguard
wireguard支持常见的所有操作系统。包括Windows、Linux、MacOS、ISO、Android等; 安装方式如下:
Centos
$ yum update -y
$ reboot # unless there were no updates
$ sudo curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
$ sudo yum install epel-release
$ sudo yum install wireguard-dkms wireguard-tools
Ubuntu
$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt-get update
$ sudo apt-get install wireguard
Windows
X86_64: https://download.wireguard.com/windows-client/wireguard-amd64-0.0.20.msi
ISO
https://itunes.apple.com/us/app/wireguard/id1441195209?ls=1&mt=8
Android
https://play.google.com/store/apps/details?id=com.wireguard.android
三、配置Wireguard
Wireguard是基于端口、Key、shareKey三者来验证的。不采用固定形式。在运行后,需要在本段和远端生成PrivateKey和PublicKey。PublicKey共享给对端。PrivateKey来验证对端发过来的PublicKey是否是已知的和可信任的。
a.生成PrivateKey
wg genkey > privatekey
b.生成PublicKey根据生成的PrivateKey来生成对应的Publickey。
wg pubkey < privatekey > publickey
以上步骤,分别需要在本端和远端执行。
c.配置Virtual Interface信息部分配置参数描述
区域 | 项目 | 参数 | 备注 |
---|---|---|---|
local | PrivateKey | Local Private Key | 填写本端的PrivateKey |
local | ListenPort | Local Port | 填写本端监听的端口,如果处于NAT内网,可以留空不写 |
local | Address | Virtual IP Address | 虚拟接口的IP地址,两个 |
Remote | PublicKey | 对端的PublicKey | 对端公钥 |
Remote | Endpoint | 对端地址:port | 可以是域名、IP和端口 |
Remote | AllowedIPs | Allow IP Range | 允许通过的IP地址,支持IPv6 |
Remote | PersistentKeepalive | Keepalive | 连接保活 |
[Interface]
table = off `禁止自动生成路由`
Address = 172.23.150.81/30 `虚拟接口的IP地址`
Address = fd00:abcd:e:0001:0000:0000:0001:81/112 `虚拟接口的IPv6地址`
ListenPort = 60205 `本地监听端口,如果本地处于NAT内部,可以不写该参数`
PrivateKey = xxxxxxxxxxxxxxxxxxxx `本端的私钥(PrivateKey)`
[Peer]
PublicKey = yyyyyyyyyyyyyy `对端的公钥(PublicKey)`
AllowedIPs = 0.0.0.0/0,::/0 `允许通过的IP地址范围。0.0.0.0/0表示所有IP范围`
Endpoint = 114.114.114.114:60205 `对端IP地址和端口`
PersistentKeepalive = 30 `保活`
将上面配置文件放到/etc/wireguard/目录下。取名为xxxx.conf。然后wg-quick up xxxx
启动该接口即可。
四、连接测试
C:\Users\yangy>tracert 192.168.200.1
通过最多 30 个跃点跟踪到 192.168.200.1 的路由
1 6 ms 3 ms 3 ms gateway [192.168.77.253]
2 9 ms 9 ms 11 ms node.150.23.172.in-addr.arpa [172.23.150.46]
3 9 ms 8 ms 8 ms 192.168.200.1
跟踪完成。