超牛逼!下一代内核级虚拟组网神器来了
点
vpn 软件都那么多了,为啥还要说 WireGuard 这个家伙?
话说到这里,突然想到一个极简主义的八卦,不知道各位晓不晓得号称日本第一的niu lang name Roland ,痴迷简约的它随便聊聊天都能月薪千万,真是羡慕旁人啊...,算了不聊这个还是继续说IT吧。
关于原理
无奈,还是得说点枯燥的
WireGuard 使用的交换密钥算法是ECDH,它是DH算法的一个变种,即协商安全信道的双方,持有一个私密的随机数,然后交换公开的随机数,通过同余算法两端独立计算出相同的密钥,从而达到不传输密钥就可以协商出相同密钥的方式,赞一个
如何理解这个算法是个令人头疼的问题,为了大家的健康,适度给个示意图意思一下就行了~
咋使用呢
有了 Linus 大神的强烈要求,WireGuard当然被顺利的合并到Linux kernel,但可惜只有5.6以上版本的内核才能使用到它
老系统咬咬牙也能用,只要你敢升级一下内核,为了给大家演示一下,我也只能咬牙了 (CentOS7,Kernel 5.8,及同版本kernel-devel、kernel-headers )
好了,为了契合主题,一切已简约为主,安装也正当的选择了YUM
$ curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
$ yum install -y wireguard-dkms wireguard-tools
服务器、客户端请自觉 各自 密钥配对:
$ cd /etc/wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey
服务端就这一个配置:
$ vim /etc/wireguard/wg0.conf
[Interface]
PrivateKey = oJACAbXZU/mxh+b6mut5Bs0jX7kLqM0ExUKhGchptWA=
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens192 -j MASQUERADE
ListenPort = 12345
DNS = 8.8.8.8
MTU = 1420
[Peer]
PublicKey = ozlJP0WG4AE+jbPIfpZnYgS3Ad3ooKFXvG6ZMhS73jU=
AllowedIPs = 10.0.0.2/24
客户端也就这一个配置:
$ vim /etc/wireguard/wg0.conf
[Interface]
PrivateKey = GPBy2mFBVI0CXJqOebpOM987GgMd2kcjofux3kANOX8=
Address = 10.0.0.2/24
DNS = 8.8.8.8
MTU = 1420
[Peer]
PublicKey = VBA5J9Cvefy9GNaJlM/dEij4mF4sPjwy1f1qcNJtlDw=
Endpoint = 192.168.1.119:12345
AllowedIPs = 0.0.0.0/0, ::0/0
PersistentKeepalive = 25
注:
PrivateKey 请输入自个本机的,PublicKey 请输入人家(对端)公开的 Address 请输入同一个地址段的俩地址,说这个可能有点啰嗦了 iptables 选好自己的网卡ens192,当然这里用Linux firewalld也可以
两边启动,完事了,你说快不快~
[root@server wireguard]# wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
Warning: AllowedIP has nonzero host part: 10.0.0.2/24
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] mount `8.8.8.8' /etc/resolv.conf
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE
[root@server wireguard]#
Server端配置
Client端配置
连接状态
来源:toutiao.com/article/7173202379393778188
开工第一天!就把 Zabbix 换成了 Prometheus
转发 关注
点亮下方“在看”图标
更多人看到