查看原文
其他

超牛逼!下一代内核级虚拟组网神器来了

点击关注👉 民工哥技术之路 2023-08-12

关注公众号,回复“1024”获取2TB学习资源!

vpn 软件都那么多了,为啥还要说 WireGuard 这个家伙?原因很简单,就是因为 WireGuard 被 Linux 之父 Linus称赞为“艺术品”,要知道Linus大神平常都是已喷人而著称的,能得到它的赞美,可想而知 WireGuard 有多么的优秀!!!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也可以

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

[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

Linux 6.0 生命周期结束!再见!

请立即修改密码!!!

比亚迪开始追查员工学历。。。

不想去互联网大厂卷?这些小而美公司不香吗?

微软确认裁员1万人,遣散费约54亿元,人均获赔54万

Nginx一网打尽:动静分离、跨域、高可用、性能优化

转发 关注

点亮下方“在看”图标

更多人看到

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存