WireGuard是一个极简而快速的加密V*N实现,以Linux内核模块的形式运行,比起传统的 IPSec、OpenV*N 等,效率更高、搭建更便捷,通过UDP协议进行数据传输,即使IP被墙也能使用。通过在两台服务器之间组建WireGuard隧道,变成伪 IPLC专线,这种利用软件手段实现的也叫做MPLS专线。
安装WireGuard
根据官网命令进行常规安装即可,这里采用的是centos系统;文章源自技术白-https://jishubai.com/112.html
yum update -y && yum install curl -y reboot # unless there were no updates curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo yum install epel-release -y yum install wireguard-dkms wireguard-tools -y
注意:因为Wireguard对内核的版本有要求,部分操作也需要自定义内核做支持,所以部分bbr内核不支持自定义的是没法安装了。利用yum安装的时候会把内核升级到最低版本要求(如果比最低版本低的话),所以常规安装后不需要再去特定调整内核,但是不要在日后的软件安装中进行内核的更换就好了。文章源自技术白-https://jishubai.com/112.html
生成公钥和私钥
进入到Wireguard默认配置目录,通常为/etc/wireguard目录,由于Wireguard通信需要依靠公钥和私钥进行相互鉴权,所以我们需要在服务器上生成公钥和私钥文件,执行下列命令:文章源自技术白-https://jishubai.com/112.html
cd /etc/wireguard wg genkey | tee privatekey | wg pubkey > publickey chmod 777 -R /etc/wireguard
配置服务端/客户端
这里的服务端和客户端是对等的,服务器既可叫客户端也可叫服务端(意思就是可以相互连接),我们这里为了区分定义为:国内机为客户端,国外机为服务端;文章源自技术白-https://jishubai.com/112.html
1、在服务端和客户端的/etc/wireguard目录下分别创建一个名称为wg0.conf的文件,直接命令行输入下列命令:文章源自技术白-https://jishubai.com/112.html
vi wg0.conf
2、在服务端也就是国外机的wg0.conf文件输入以下内容,在命令行输入cat privatekey和cat publickey命令可分别查看内容,##号及后面为注释内容,不用复制粘贴这个内容;文章源自技术白-https://jishubai.com/112.html
[Interface] Address = 192.168.1.1/24 ##这里是自定义的服务端内网IP ListenPort = 51820 PrivateKey = < 这里填写 服务端 上 privatekey 的内容 > DNS = 8.8.8.8 MTU = 1420 # Client [Peer] PublicKey = < 这里填写 客户端 上 publickey 的内容 > AllowedIPs = 192.168.1.2/24
3、在客户端的也就是国内机的wg0.conf文件内容如下:文章源自技术白-https://jishubai.com/112.html
[Interface] PrivateKey = < 这里填写 客户端 上 privatekey 的内容 > Address = 192.168.1.2/24 DNS = 8.8.8.8 MTU = 1420 # Server [Peer] PublicKey = < 这里填写 服务端 上 publickey 的内容 > Endpoint = <填写服务端公网IP>:51820 AllowedIPs = 192.168.1.1/24 PersistentKeepalive = 25
4、最后在两台服务器上分别输入下方启动命令启动服务:文章源自技术白-https://jishubai.com/112.html
wg-quick up wg0 ##启动wg0虚拟网卡 wg-quick down wg0 ##关闭wg0网络 wg ##查看当前的运行情况
5、输入wg命令可以查看到隧道已建立,可以互相在服务器上ping对方的内网IP查看是否有延时数据,比如在192.168.1.1服务器上输入:ping 192.168.1.2文章源自技术白-https://jishubai.com/112.html
隧道中转:此时在国内机做好内网端口转发到国外机上面,然后在国外服务器中,搭建各类服务或转发流量到其它机器,通过国内机公网IP连接,流量就会通过WG内网隧道传输。文章源自技术白-https://jishubai.com/112.html
WireGuard Easy面板
手搓WireGuard进行搭建和组网是比较麻烦的,这里提供下wg-easy面板的搭建代码,具有网页前端管理;
安装Docker
如果您还没有安装 Docker,请运行以下命令进行安装:
wget -qO- get.docker.com | bash systemctl start docker systemctl enable docker
配置wg-easy
docker run -d \ --name=wg-easy \ -e WG_HOST=YOUR_SERVER_IP \ -e PASSWORD=YOUR_ADMIN_PASSWORD \ -e WG_DEFAULT_ADDRESS=10.8.0.x \ -e WG_ALLOWED_IPS=10.8.0.0/24 \ -e WG_PERSISTENT_KEEPALIVE=25 \ -v ~/.wg-easy:/etc/wireguard \ -p 51820:51820/udp \ -p 51821:51821/tcp \ --cap-add=NET_ADMIN \ --cap-add=SYS_MODULE \ --sysctl="net.ipv4.conf.all.src_valid_mark=1" \ --sysctl="net.ipv4.ip_forward=1" \ --restart unless-stopped \ weejewel/wg-easy
?替换YOUR_SERVER_IP为您的 WAN IP(公网IP)或动态 DNS 主机名,注意保留后面的空格。
?替换YOUR_ADMIN_PASSWORD为登录 Web UI 的密码,注意保留后面的空格。
?如需要科学上网,替换10.8.0.0/24为0.0.0.0/0,注意保留后面的空格。
现在可在浏览器上使用 Web UI http://YOUR_SERVER_IP:51821。
- 本站TG群组:skill_blog 联系博主:nbskill (微信协助) 苹果ID号:曙光商店