Wireguard进Linux内核已经有不短的时间了,这东西的好处显而易见的,性能和易用性比OpenVPN不知道高到哪里去了,从openwrt,梅林到各式各样的发行版安卓iOS都有相应的服务端和客户端使用更方便,最近在知乎上看见了个脚本,写一篇文章弄个教程到时候自己部署的时候好方便查找资料。
虽然Linux系统开销小,不过都马上全面小康了服务端怎么着都要512M起步吧,当然路由器这种嵌入式设备没办法。我自己演示用的主机是双核1G的小机器,人数不多的话跑Wireguard绰绰有余了。
服务端部署
因为我用的Google云没root权限所以只能用sudo,虽然脚本作者说要root但是用起来没问题,运行下面命令下载脚本然后赋予执行权限。
sudo wget --no-check-certificate -O /opt/wireguard.sh https://raw.githubusercontent.com/teddysun/across/master/wireguard.sh
sudo chmod 755 /opt/wireguard.sh
由于WireGuard主要部件被集成在内核里,所以需要比较新的内核才能使用,推荐使用较新版本的发行版,比如RHEL8和Debian10,CentOS7换内核也很方便,不过有条件为啥不用更新的8呢。
脚本下载好之后我选择从仓库安装,除非你的linux版本比较稀奇否则还是用包管理好,可以及时升级软件版本。
sudo /opt/wireguard.sh -r
安装完成的提示如下
安装完成后执行下面命令查看客户端配置文件位置,一般应该是在/etc/wireguard/下面
sudo /opt/wireguard.sh -l
然后用cat命令看看服务端端口是啥,在安全组或者系统防火墙中打开端口。
sudo cat /etc/wireguard/wg0_client
配置文件直接复制下来保存成wg0.conf到时候上传到客户端上,wireguard每一个配置文件对应一个客户端,所以有多客户端的话要生成相应数量的配置文件,用如下命令即可
sudo /opt/wireguard.sh -a
客户端设置
客户端的安装直接去官方找就行了,我客户端系统是RHEL8,就按照RHEL8安装。
https://www.wireguard.com/install/
安装完成后把生成的客户端配置文件放到/etc/wireguard/上,配置文件名保持为wg0.conf,然后运行
wg-quick up wg0
然后ping一下Google,能上就说明连上去了。
停止通道运行
wg-quick down wg0
开机自起
systemctl enable [email protected]
GNU/Linux系统下的客户端使用方法都差不多,同样的方法我在主流的红帽和Debian系系统都操作成功。
服务端脚本变量
高级需求使用:
VPN_SERVER_PUB_IPV4,定义服务器公网 IPv4,如果你的服务器端存在多个可用公网 IPv4,指定此变量的值。
VPN_SERVER_PUB_IPV6,定义服务器公网 IPv6,如果你的服务器端存在多个可用公网 IPv6,指定此变量的值。
VPN_SERVER_PUB_NIC,定义服务器默认网卡名称,如果你的服务器有多个可用网卡,指定此变量的值。
VPN_SERVER_WG_NIC,定义 WireGuard 网卡名,默认为 wg0,这里一般不推荐指定此变量的值。
VPN_SERVER_WG_IPV4,定义 WireGuard 服务端的内网 IPv4,默认为 10.88.88.1,这里一般不推荐指定此变量的值。
VPN_SERVER_WG_IPV6,定义 WireGuard 服务端的内网 IPv6,默认为 fd88:88:88::1,这里一般不推荐指定此变量的值。
VPN_SERVER_WG_PORT,定义器 WireGuard 服务端的监听端口,默认为从 1024 到 20480 随机生成,如果你想自定义端口,指定此变量的值。
VPN_CLIENT_WG_IPV4,定义 WireGuard 默认客户端的内网 IPv4,默认为 10.88.88.2,这里一般不推荐指定此变量的值。
VPN_CLIENT_WG_IPV6,定义 WireGuard 默认客户端的内网 IPv6,默认为 fd88:88:88::2,这里一般不推荐指定此变量的值。
VPN_CLIENT_DNS_1,定义 WireGuard 默认客户端的 DNS,默认为 1.1.1.1,如果你想自定义为别的 DNS,指定此变量的值。
VPN_CLIENT_DNS_2,定义 WireGuard 默认客户端的 DNS,默认为 8.8.8.8,如果你想自定义为别的 DNS,指定此变量的值。
参考资料
https://zhuanlan.zhihu.com/p/84615811
https://www.lixh.cn/archives/2134.html
在Openwrt上部署Wireguard服务端
https://www.right.com.cn/forum/thread-1335402-2-1.html