vpn软件都那么多了,为啥还要说WireGuard这个家伙? 原因很简单,就是因为WireGuard被Linux之父Linus称赞为艺术品,要知道Linus大神平常都是已喷人而著称的,能得到它的赞美,可想而知WireGuard有多么的优秀〔666〕 WireGuard真正实现了极简主义,它设计精巧,核心代码仅四千多行,wireguard相对于OpenV来说,配置起来更加简单,运行速度也更快,嗖嗖的〔鼓掌〕 话说到这里,突然想到一个极简主义的八卦,不知道各位晓不晓得号称日本第一的niulangnameRoland,痴迷简约的它随便聊聊天都能月薪千万,真是羡慕旁人啊。。。,算了不聊这个还是继续说IT吧。 关于原理 无奈,还是得说点枯燥的 WireGuard使用的交换密钥算法是ECDH,它是DH算法的一个变种,即协商安全信道的双方,持有一个私密的随机数,然后交换公开的随机数,通过同余算法两端独立计算出相同的密钥,从而达到不传输密钥就可以协商出相同密钥的方式,赞一个〔鼓掌〕〔给力〕 如何理解这个算法是个令人头疼的问题,为了大家的健康,适度给个示意图意思一下就行了 咋使用呢 有了Linus大神的强烈要求,WireGuard当然被顺利的合并到Linuxkernel,但可惜只有5。6以上版本的内核才能使用到它 老系统咬咬牙也能用,只要你敢升级一下内核〔惊呆〕,为了给大家演示一下,我也只能咬牙了 (CentOS7,Kernel5。8,及同版本kerneldevel、kernelheaders) 好了,为了契合主题,一切已简约为主,安装也正当的选择了YUMcurloetcyum。repos。djdosswireguardepel7。repohttps:copr。fedorainfracloud。orgcoprsjdosswireguardrepoepel7jdosswireguardepel7。repoyuminstallywireguarddkmswireguardtools 服务器、客户端请自觉各自密钥配对:cdetcwireguardwggenkeyteeprivatekeywgpubkeypublickey 服务端就这一个配置:vimetcwireguardwg0。conf〔Interface〕PrivateKeyoJACAbXZUmxhb6mut5Bs0jX7kLqM0ExUKhGchptWAAddress10。0。0。124PostUpiptablesAFORWARDiwg0jACCEPT;iptablesAFORWARDowg0jACCEPT;iptablestnatAPOSTROUTINGoens192jMASQUERADEPostDowniptablesDFORWARDiwg0jACCEPT;iptablesDFORWARDowg0jACCEPT;iptablestnatDPOSTROUTINGoens192jMASQUERADEListenPort12345DNS8。8。8。8MTU1420〔Peer〕PublicKeyozlJP0WG4AEjbPIfpZnYgS3Ad3ooKFXvG6ZMhS73jUAllowedIPs10。0。0。224 客户端也就这一个配置:vimetcwireguardwg0。conf〔Interface〕PrivateKeyGPBy2mFBVI0CXJqOebpOM987GgMd2kcjofux3kANOX8Address10。0。0。224DNS8。8。8。8MTU1420〔Peer〕PublicKeyVBA5J9Cvefy9GNaJlMdEij4mF4sPjwy1f1qcNJtlDwEndpoint192。168。1。119:12345AllowedIPs0。0。0。00,::00PersistentKeepalive25 注: PrivateKey请输入自个本机的,PublicKey请输入人家(对端)公开的 Address请输入同一个地址段的俩地址,说这个可能有点啰嗦了 iptables选好自己的网卡ens192,当然这里用Linuxfirewalld也可以,如果你看过我的firewalld文章〔耶〕 两边启,完事了,你说快不快 wgquickupwg0〔rootserverwireguard〕wgquickupwg0〔〕iplinkaddwg0typewireguard〔〕wgsetconfwg0devfd63Warning:AllowedIPhasnonzerohostpart:10。0。0。224〔〕ip4addressadd10。0。0。124devwg0〔〕iplinksetmtu1420updevwg0〔〕mount8。8。8。8etcresolv。conf〔〕iptablesAFORWARDiwg0jACCEPT;iptablesAFORWARDowg0jACCEPT;iptablestnatAPOSTROUTINGoens192jMASQUERADE〔rootserverwireguard〕 Server端配置 Client端配置 连接状态 ping检测 各位喜欢的话就给关注、点个赞吧〔耶〕