你的位置:首页 > 互联网IT

WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管理

系统:Centos 8

软件:WireGuard,wg

功能:组网,局域网,网络,vpn,代理上网

Windows客户端下载0.5.3:https://zgdl.lanzouw.com/it4Xe2eig7qj

Windows客户端下载老版本0.1.1:https://zgdl.lanzouw.com/iKSA82dzzxgf

https://download.wireguard.com/windows-client/wireguard-amd64-0.1.1.msi

android客户端下载:https://zgdl.lanzouw.com/i3HIg2eig81a

安卓客户端下载:https://zgdl.lanzouw.com/i0exz2e00irc

其它系统客户端下载:https://www.wireguard.com/install/

必应搜索:《wireguard centos 8》


WireGuard项目下载地址:https://www.wireguard.com/install/

WireGuard项目地址:https://github.com/WireGuard

https://www.wireguard.com/


WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管 互联网IT 第1张

准备工具:

Centos 8服务器 一台(公网IP)系统版本:CentOS Linux release 8.2.2004 (Core) 


CentOS 7/8关闭防火墙

查看防火墙状态:systemctl status firewalld.service

关闭运行的防火墙:systemctl stop firewalld.service

禁止防火墙自动启动服务器:systemctl disable firewalld.service


WireGuard 快速安装教程

参考文章:https://blog.csdn.net/wq1205750492/article/details/124758941

安装前说明:

WireGuard 的安装和使用条件非常苛刻,对内核版本要求极高,不仅如此,在不同的系统中,内核,内核源码包,内核头文件必须存在且这三者版本要一致。

所以一般不建议在生成环境中安装,除非你对自己的操作很有把握。Red Hat、CentOS、Fedora 等系统的内核,内核源码包,内核头文件包名分别为 kernel、kernel-devel、kernel-headers,Debian、Ubuntu 等系统的内核,内核源码包,内核头文件包名分别为 kernel、linux-headers。

如果这三者任一条件不满足的话,则不管是从代码编译安装还是从 repository 直接安装,也只是安装了 wireguard-tools 而已。

而 WireGuard 真正工作的部分,是 wireguard-dkms,也就是动态内核模块支持(DKMS),是它将 WireGuard 编译到系统内核中。

因此,在某些 VPS 商家,是需要你先自主更换系统内核,并事先将这三者安装好,才有可能不会出现编译或安装失败。


一、升级内核

对于 Ubuntu 等 apt 系的发行版来说,不需要升级内核即可安装 WireGuard,可以略过此步骤。

如果你使用的是 CentOS 等 rpm 系的发行版,必须要升级内核,步骤如下:


1.载入公钥

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org


2.升级安装 elrepo

# centos7

yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm


# centos8

yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm


3.载入 elrepo-kernel 元数据

yum --disablerepo=\* --enablerepo=elrepo-kernel repolist


4.安装最新版本的内核

yum --disablerepo=\* --enablerepo=elrepo-kernel install  kernel-ml  -y


5.删除旧版本工具包

yum remove kernel-tools-libs kernel-tools kernel-devel kernel-headers -y


6.安装新版本工具包

yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml-tools kernel-ml-devel kernel-ml-headers -y


7.查看内核插入顺序

centos7命令


grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2


CentOS Linux (5.17.7-1.el7.elrepo.x86_64) 7 (Core)

CentOS Linux (3.10.0-1160.31.1.el7.x86_64) 7 (Core)

CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)

CentOS Linux (0-rescue-20210623111207095151419199170789) 7 (Core)

[root@duandian yum.repos.d]# 


centos8命令


grubby --info=ALL |grep title


title="Red Hat Enterprise Linux (5.17.7-1.el8.elrepo.x86_64) 8.5 (Ootpa)"

title="Red Hat Enterprise Linux (0-rescue-4cb651785e634a439e0ba4d0a9408d82) 8.5 (Ootpa)"

title="Red Hat Enterprise Linux (4.18.0-348.12.2.el8_5.x86_64) 8.5 (Ootpa)"

title="Red Hat Enterprise Linux (0-rescue-ffffffffffffffffffffffffffffffff) 8.5 (Ootpa)"


默认新内核是从头插入,默认启动顺序也是从 0 开始。


8.查看当前实际启动顺序

centos7命令


grub2-editenv list


saved_entry=CentOS Linux (3.10.0-1160.31.1.el7.x86_64) 7 (Core)


centos8 命令


grubby --default-kernel

#grubby --default-title


/boot/vmlinuz-6.11.6-1.el8.elrepo.x86_64

WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管 互联网IT 第2张


9.设置默认启动

centos7 命令


grub2-set-default 'CentOS Linux (5.17.7-1.el7.elrepo.x86_64) 7 (Core)'


centos8 命令


这里特别说明:grubby --set-default 上面命令返回的文件地址,修改地址 


grubby --set-default /boot/vmlinuz-6.11.6-1.el8.elrepo.x86_64

WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管 互联网IT 第3张


10.重启检查

reboot

uname -r




二、安装 WireGuard

官方文档: Installation - WireGuard

https://www.wireguard.com/install/#installation


1.yum安装

centos7 安装


sudo yum install epel-release elrepo-release

sudo yum install yum-plugin-elrepo

sudo yum install kmod-wireguard wireguard-tools


centos8 安装


sudo yum install elrepo-release epel-release

sudo yum install kmod-wireguard wireguard-tools


------------------------------------------------------------------


2.脚本一键安装

从源码编译安装 WireGuard,只需一条命令即可。


本地安装

wget --no-check-certificate -O /opt/wireguard.sh https://www.zhuguodong.com/xiazai/linux/wireguard.sh

原本安装

wget --no-check-certificate -O /opt/wireguard.sh https://raw.githubusercontent.com/teddysun/across/master/wireguard.sh


chmod 755 /opt/wireguard.sh


从代码编译安装 WireGuard

/opt/wireguard.sh -s


从 repository 直接安装 WireGuard

/opt/wireguard.sh -r


关于该脚本需要说明几点:


支持两种安装方式:既支持从源代码编译安装,也支持从包管理器直接安装。

脚本会创建默认的 wg0 设备,以及 wg0 的客户端配置,并生成客户端配置对应的二维码 png 图片。

脚本会修改本机防火墙设置,如果未启用防火墙,则会出现警告提示,需要手动去设置。

脚本会从 1024 到 20480 随机生成监听端口。

脚本支持新增,删除,列出客户端功能。

脚本支持查看已安装的 WireGuard 的版本号。

脚本支持从代码编译安装的方式升级 WireGuard 到当前最新版本。



如果你想自己生成配置文件,请直接将配置文件目录清空:

rm -rf /etc/wireguard/*


-----------------------------------------------------------------


2.生成密钥对

cd /etc/wireguard  # 如果目录不存在请手动创建:mkdir /etc/wireguard


# 开始生成 密匙对(公匙+私匙)。


wg genkey | tee privatekey-server | wg pubkey > publickey-server # 生成服务端密钥对


wg genkey | tee privatekey-client | wg pubkey > publickey-client # 生成客户端密钥对


WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管 互联网IT 第4张

3.配置服务端文件

vim /etc/wireguard/wg0.conf输入以下内容:


[Interface]

Address = 10.0.0.1/24

ListenPort = 7001

PrivateKey = 6Me5Fx68rerNuvZa4jkRME7WklKe1HCz37TC/sADCEs=


PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE


[Peer]

PublicKey = BaKJe/Y4kYoyRN43AjAclAPu18XLz156eqiCJckW7AU=

AllowedIPs = 10.0.0.2/32

PresharedKey = TUuIqGhdUZZEu/gPotK3LowldAHlxDNoFR3eMl4UP7k=

PersistentKeepalive = 25


[Peer]

PublicKey = 9JfJ1sCw96nI5eHQkwtWwT2nnqyqtoPSw9fZF6evf14=

AllowedIPs = 10.0.0.3/32

PresharedKey = TUuIqGhdUZZEu/gPotK3LowldAHlxDNoFR3eMl4UP7k=

PersistentKeepalive = 25


服务器端配置文件注释说明:

[Interface]

Address = 10.0.0.1/24        # 这里指的是使用 10.100.0.1,网段大小是 24 位

SaveConfig = true

ListenPort = 7001            # 监听的 UDP 端口

PrivateKey = 6Me5Fx68rerNuvZa4jkRME7WklKe1HCz37TC/sADCEs=            # < 这里填写 Server 上 privatekey 的内容 >

# 下面这两行规则允许访问服务器的内网,注意替换`eth0`,这二条是可以服务器代理上网,客户端上走服务器流量

PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE


# 下面这两行规则允许访问服务器的内网,注意替换`eth0`

PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE


# Client,可以有很多客户端 Peer

[Peer]

PublicKey = BaKJe/Y4kYoyRN43AjAclAPu18XLz156eqiCJckW7AU=           # < 这里填写 Client 上 publickey 的内容 >

AllowedIPs = 10.0.0.2/32                                           # 这个 Peer 只能是 10.0.0.2/32

PresharedKey = TUuIqGhdUZZEu/gPotK3LowldAHlxDNoFR3eMl4UP7k=        # 预共享密钥

PersistentKeepalive = 25                                           # 检查连接成活时间25S


# 第二个客户端配置,可以有很多客户端 Peer

[Peer]

PublicKey = 9JfJ1sCw96nI5eHQkwtWwT2nnqyqtoPSw9fZF6evf14=           # < 这里填写 Client 上 publickey 的内容 >

AllowedIPs = 10.0.0.3/32                                           # 这个 Peer 只能是 10.0.0.2/32

PresharedKey = TUuIqGhdUZZEu/gPotK3LowldAHlxDNoFR3eMl4UP7k=        # 预共享密钥

PersistentKeepalive = 25                                           # 检查连接成活时间25S


WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管 互联网IT 第5张


配置完基础参数后,,先保存设置

wg0.conf

/etc/wireguard/wg0.conf


wg-quick down wg0  #停止服务端


上传文件到/etc/wireguard/wg0.conf


wg-quick save wg0  #先保存设置,更新服务器端配置文件 


4.启停服务端

wg-quick up wg0    #启动服务端

wg-quick down wg0  #停止服务端

wg                 #查看节点列表

wg-quick save wg0  #重载配置文件,不影响已有连接.


查看信息

接口:


# 查看系统 VPN 接口信息

ip link show wg0


# 查看 VPN 接口详细信息

wg show all

wg show wg0

地址:


# 查看 VPN 接口地址

ip address show wg0

路由

# 查看系统路由表

ip route show table main

ip route show table local


# 获取到特定 IP 的路由

ip route get 192.0.2.3


----------------------------------------------------------------


5.配置客户端文件

新建文件:wg0_client.conf


[Interface]

PrivateKey = 2MKOWa4TH2DUFrCOnxX3qtti2v4TN7osurPxYkdykXk=

Address = 10.0.0.2/24

DNS = 1.1.1.1,8.8.8.8

MTU = 1420


[Peer]

PublicKey = T1NcYU4f8W4A8MiBcvtIuoZsE8H+4GE8r2acoOoXzAk=

PresharedKey = b3xyZaUIopH2MZw81gwZ8PV8IgnU9KQLhHtAZ4oWoCg=

AllowedIPs = 0.0.0.0/0

Endpoint = www.baidu.com:7001

PersistentKeepalive = 25


配置文件注释说明


[Interface]

PrivateKey = 2MKOWa4TH2DUFrCOnxX3qtti2v4TN7osurPxYkdykXk=          # 服务器端Key< 这里填写 Client 上 publickey 的内容 >

Address = 10.0.0.2/24                                              # 客户端 IP,与服务器配置文件一致

DNS = 114.114.114.114,8.8.8.8                                      # 连接后使用的 DNS, 如果要防止 DNS 泄露,建议使用内网的 DNS 服务器

MTU = 1420


[Peer]

PublicKey = T1NcYU4f8W4A8MiBcvtIuoZsE8H+4GE8r2acoOoXzAk=           # 与服务器端IP地址一致的key< 这里填写 Client 上 publickey 的内容 >

PresharedKey = b3xyZaUIopH2MZw81gwZ8PV8IgnU9KQLhHtAZ4oWoCg=        # 预共享密钥

AllowedIPs = 0.0.0.0/0                                             # 指定要访问的服务端网段10.0.0.1/24,或者设置0.0.0.0/0来进行全局代理,可以代理上外网(公网IP)

Endpoint = www.baidu.com:7001                                      # 服务器IP或者域名:端口 (UDP)

PersistentKeepalive = 25                                           # 检查连接成活时间25S


WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管 互联网IT 第6张


FAQ

1.无法访问服务端内网


# 开启内核转发功能


echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

echo "net.ipv4.conf.all.src_valid_mark=1" >> /etc/sysctl.conf


sysctl -p




安卓客户端,生成二维码扫描设置


打开二维码生成网站

https://cli.im/


复制配置文件生成

[Interface]

PrivateKey = 2MKOWa4TH2DUFrCOnxX3qtti2v4TN7osurPxYkdykXk=

Address = 10.0.0.2/24

DNS = 1.1.1.1,8.8.8.8

MTU = 1420


[Peer]

PublicKey = T1NcYU4f8W4A8MiBcvtIuoZsE8H+4GE8r2acoOoXzAk=

PresharedKey = b3xyZaUIopH2MZw81gwZ8PV8IgnU9KQLhHtAZ4oWoCg=

AllowedIPs = 0.0.0.0/0

Endpoint = www.baidu.com:7001

PersistentKeepalive = 25


WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管 互联网IT 第7张

二维码安卓客户端就可以扫描添加了

WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管 互联网IT 第8张

---------------------------------------------------------------------


WireGuard一键安装脚本 命令介绍


本地安装

wget --no-check-certificate -O /opt/wireguard.sh https://www.zhuguodong.com/xiazai/linux/wireguard.sh

原本安装

wget --no-check-certificate -O /opt/wireguard.sh https://raw.githubusercontent.com/teddysun/across/master/wireguard.sh


chmod 755 /opt/wireguard.sh


从代码编译安装 WireGuard

/opt/wireguard.sh -s

从 repository 直接安装 WireGuard

/opt/wireguard.sh -r

安装完成后,脚本提示如下

WireGuard VPN Server installation completed

WireGuard VPN default client file is below:

/etc/wireguard/wg0_client

WireGuard VPN default client QR Code is below:

/etc/wireguard/wg0_client.png

Download and scan this QR Code with your phone

Welcome to visit: https://teddysun.com/554.html

Enjoy it

卸载方法

/opt/wireguard.sh -n

其他使用选项

查看已安装 WireGuard 版本号


/opt/wireguard.sh -v

编译升级 WireGuard 到当前最新版本


/opt/wireguard.sh -u

新增 WireGuard 客户端配置


/opt/wireguard.sh -a

删除 WireGuard 客户端配置

注意:默认客户端 wg0 不允许删除


/opt/wireguard.sh -d

列出 WireGuard 客户端配置


/opt/wireguard.sh -l

高级用法

如果你在安装时,需要自定义自己想要的端口,那么可以 export 变量 VPN_SERVER_WG_PORT 的值,这样脚本就会读取这个变量值来定义监听端口,而不会自己随机生成。

比如你想自定义端口为 1234,那么具体做法就是,在执行从代码编译安装 WireGuard 或者从 repository 直接安装 WireGuard 之前,运行如下命令:


export VPN_SERVER_WG_PORT=1234

下面是一份脚本里用到的变量列表名(共计 11 个),以及它们具体代表什么含义的说明。

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,指定此变量的值。


--------------------------------------------------------------------------------


客户端配置

Windows客户端,导入dn.conf



配置文件

[Interface]

PrivateKey = 2MKOWa4TH2DUFrCOnxX3qtti2v4TN7osurPxYkdykXk=

Address = 10.0.0.2/24

DNS = 1.1.1.1,8.8.8.8

MTU = 1420


[Peer]

PublicKey = T1NcYU4f8W4A8MiBcvtIuoZsE8H+4GE8r2acoOoXzAk=

PresharedKey = b3xyZaUIopH2MZw81gwZ8PV8IgnU9KQLhHtAZ4oWoCg=

AllowedIPs = 0.0.0.0/0

Endpoint = www.baidu.com:7001

PersistentKeepalive = 25


配置文件注释说明


[Interface]

PrivateKey = SDrf+1g2UQ1VBhWaYlM1cWx/QpxveqOOgmhuuriIGEA=               (服务器key与客户端相同的key)

Address = 10.0.0.3/24                     (局域网IP)

DNS = 223.5.5.5,1.1.1.1,8.8.8.8           (DNS)

MTU = 1420


[Peer]

PublicKey = aKBSh37Kr3Vx6OiZnQMnX+Nm689/hgNjt6ytbUdbiws=                (服务器key与客户端相同的key)

PresharedKey = bXhDpmhVgKrU3UhZo+x17aY3Zt9HRdXWKoneqk2pdpc=             (服务器key与客户端相同的key)

AllowedIPs = 0.0.0.0/0,::/0              (10.0.0.0/24,192.168.10.0/32 指定要访问的服务端网段,或者设置0.0.0.0/0来进行全局代理.)

PersistentKeepalive = 25                  (存活检测时间25)

Endpoint = www.baidu.com:7001             (服务器或者IP:端口)


WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管 互联网IT 第9张


安卓客户端,扫我二维码

WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管 互联网IT 第10张


电脑与安卓就可以互相通信了

WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管 互联网IT 第11张


客户端配置文件设置成:0.0.0.0/0,::/0 VPN就可以代理上网了

AllowedIPs = 0.0.0.0/0,::/0              (10.0.0.0/24,192.168.10.0/32 指定要访问的服务端网段,或者设置0.0.0.0/0来进行全局代理.)

WireGuard,WireGuard安装,WireGuard部署与使用,WireGuard搭建,基于Centos 8的wireguard安装,WireGuard一键安装脚本,WireGuard网页管 互联网IT 第12张




参考来源:https://github.com/WireGuard

https://www.wireguard.com/

https://www.wireguard.com/install/

https://www.itwordsweb.net/archives/wireguard

https://blog.csdn.net/wq1205750492/article/details/124758941

https://www.cnblogs.com/lemonup/p/17804757.html

https://www.cnblogs.com/jonnyan/p/14110061.html

https://teddysun.com/554.html

https://www.cnblogs.com/milton/p/15339898.html

https://www.henrychang.ca/how-to-setup-wireguard-vpn-server-on-windows/

https://golb.hplar.ch/2019/07/wireguard-windows.html

https://mp.weixin.qq.com/s?__biz=MzU1MzY4NzQ1OA==&mid=2247486608&idx=1&sn=affd1ea0449ee10038229240d2254c4c&chksm=fbee4c5dcc99c54b824a6ea219f195c261c7cc006deca7b704ca8265d786b6744273100e8976&scene=21#wechat_redirect

https://www.skyone.host/2024/wireguard-configure

https://blog.csdn.net/qq_42761569/article/details/140101259

https://cloud.tsyidc.com/service/1109.html

https://github.com/Safe3/firefly?tab=readme-ov-file

https://github.com/Safe3/firefly/blob/main/README_CN.md

https://github.com/Safe3/firefly/releases

https://www.cnblogs.com/liuyajun2022/p/17926451.html

https://gitee.com/hawlly/wireguard?skip_mobile=true

https://www.cnblogs.com/boneking/p/17903650.html

https://www.runyf.cn/archives/438/


  • 发表评论
  • 查看评论
【暂无评论!】

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。