开源 WireGuard in Linux,极致简约而不简单

vpn软件都那么多了,为啥还要说 WireGuard 这个家伙?

原因很简单,就是因为 WireGuard 被 Linux 之父 Linus称赞为“艺术品”,要知道Linus大神平常都是已喷人而著称的,能得到它的赞美,可想而知 WireGuard 有多么的优秀[666]

WireGuard 真正实现了极简主义,它设计精巧,核心代码仅四千多行,wireguard相对于OpenV**来说,配置起来更加简单,运行速度也更快,嗖嗖的[鼓掌]

话说到这里,突然想到一个极简主义的八卦,不知道各位晓不晓得号称日本第一的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也可以,如果你看过我的firewalld文章[耶]


两边启,完事了,你说快不快~

$ wg-quick up wg0

[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端配置

连接状态

ping检测

各位喜欢的话就给 关注 、点个赞 吧 [耶]

展开阅读全文

页面更新:2024-04-02

标签:简约   随机数   密钥   大神   内核   极致   算法   客户端   主义   版本   简单   地址

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top