技术交流QQ群:①185473046   ②190706903   ③203744115   网站地图
登录

下次自动登录
现在的位置: 首页Linux>正文
Linux下安装配置WireGuard
2026年04月14日 Linux 暂无评论 ⁄ 被围观 31次+

简单介绍:

WireGuard 是新一代的虚拟专用网内核模块,它以代码极简、性能极高、配置简单著称。

它被直接集成在 Linux 内核中(5.6 版本以上),因此运行效率非常高,非常适合用于异地组网、内网穿透等使用场景。

操作系统:

Rocky Linux 10.1

WireGuard 已经内置于新版内核中,Rocky Linux 10 默认使用的是较新的内核(通常是 6.x 版本),而 WireGuard 在 Linux 内核 5.6 版本之后就已经正式合并到主线内核了。

安装配置:

1、关闭SELINUX

vi /etc/selinux/config

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存退出

setenforce 0 #使配置立即生效

getenforce #查看 SELinux 当前运行模式

2、防火墙端口配置

Rocky Linux 10.1默认使用的是firewall作为防火墙

firewall-cmd --list-all #显示所有规则(含服务、端口、区域)

systemctl status firewalld #检查 firewalld 状态

WireGuard 服务的默认监听端口是UDP 51820

#开放端口

firewall-cmd --permanent --add-port=51820/udp

firewall-cmd --reload #重新加载防火墙配置

firewall-cmd --list-all #显示所有规则

3 开启IPV4流量转发功能

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

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

sysctl -p

4、安装wireguard

yum install wireguard-tools

modprobe wireguard #手动加载模块,如果没有报错(直接返回命令行),说明模块已存在且加载成功。

5、生成服务端密钥对

#创建一个目录用于存放生成的密钥对

mkdir -p /etc/wireguard/cert

cd /etc/wireguard/cert

# 生成服务端私钥server.key

wg genkey > server.key

# 使用上一步的服务端私钥生成公钥server.key.pub

wg pubkey < server.key >server.key.pub

# 查看生成的密钥对

[root@localhost cert]# cat server.key server.key.pub

uPdVDbrCYfU9l4AxVhdxEYiiDj6Ourut6x2hFG6+rlU=

21BHMnZyC/qLnpN/5eepey6VsRfCpMJpDgt0vwmehDM=

6、生成客户端的密钥对

# 客户端1私钥

wg genkey > client1.key

# 客户端1公钥

wg genkey < client1.key > client1.key.pub

# 查看生成的密钥对

cat client1.key client1.key.pub

[root@localhost cert]# cat client1.key client1.key.pub

iDj9Jq/zMs3L5QKEZOJytGalyTOjk8KWcjqkohj3VFw=

kNNmyu3ZYDirSBIWT2bB0fHHsb7NiPKt7FkDeUwJ7Gs=

[root@localhost cert]#

# 客户端2私钥

wg genkey > client2.key

# 客户端2公钥

wg genkey < client2.key > client2.key.pub

# 查看生成的密钥对

cat client2.key client2.key.pub

[root@localhost cert]# cat client2.key client2.key.pub

yDbxZkSWZhNi3M0hAuGLCIcse+lI+hoRlZ6eAwkcT0Y=

4NDqtOWzNFjmP8eu8htyWIXU954H1rA+nRY4yMCfzm0=

7、配置服务端

vi /etc/wireguard/wg0.conf

[Interface]

PrivateKey = uPdVDbrCYfU9l4AxVhdxEYiiDj6Ourut6x2hFG6+rlU= #服务端私钥server.key

Address = 10.0.188.1/32 #设置本机虚拟局域网IP,这个自己设置即可,不要与现有网段冲突就可以

#使用 %i 作为接口名占位符,确保 FORWARD 和 NAT 规则都正确配置

#注意ens160为本机网卡名称

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

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

ListenPort = 51820 #注意该端口是UDP端口

MTU = 1420

[Peer]

PublicKey = kNNmyu3ZYDirSBIWT2bB0fHHsb7NiPKt7FkDeUwJ7Gs= #client1的公钥client1.key.pub,后面需要修改为客户端生成的公钥

AllowedIPs = 10.0.188.2/32 #客户端所使用的IP

[Peer]

PublicKey = 4NDqtOWzNFjmP8eu8htyWIXU954H1rA+nRY4yMCfzm0= #client2的公钥client2.key.pub,后面需要修改为客户端生成的公钥

AllowedIPs = 10.0.188.3/32

:wq! #保存退出

wg-quick up wg0 # 启动命令

wg show #查看连接状态

ip a #可以看到服务器多了一个wg0网卡

wg-quick down wg0 #停止命令

8、客户端连接:

客户端下载地址:https://www.wireguard.com/install/

Windows客户端:

https://download.wireguard.com/windows-client/

https://download.wireguard.com/windows-client/wireguard-installer.exe

客户端安装完成后,新建隧道-新建空隧道

名称:client1

[Interface]

PrivateKey = iDj9Jq/zMs3L5QKEZOJytGalyTOjk8KWcjqkohj3VFw= #此处为client1的私钥client1.key

Address = 10.0.188.10/32 #此处为peer规定的客户端IP

MTU = 1420

DNS = 8.8.8.8, 8.8.4.4

[Peer]

PublicKey = y+3tI6KJ+zede+uwr8LQnCZ3jR+AjdsnkXu8q2ows2A= #此处为server的公钥server.key.pub

AllowedIPs = 0.0.0.0/1, 128.0.0.0/1, ::/1, 8000::/1 #此处为允许的服务器IP,接管所有流量

#AllowedIPs = 10.189.189.0/24 #改为仅内网/特定IP,假设你只想访问服务器内网

Endpoint = 192.168.21.11:51820 #服务端地址:公网IP:端口

PersistentKeepalive = 25 #保持心跳

#这里是win客户端,点击创建新隧道之后win客户端会自动创建公钥与私钥

#编辑配置文件vi /etc/wireguard/wg0.conf,替换client1的公钥client1.key.pub为客户端自动生成的公钥:J800QHjvsiaFoiTp0cjuLu3jratU+iZnKhECkLR6T34=

客户端的公钥必须要和服务器配置文件里面的公钥一致

wg-quick down wg0 #停止命令

wg-quick up wg0 # 启动命令

systemctl enable wg-quick@wg0 #设置开机启动wireguard

win客户端连接成功之后验证ping 服务端的ip地址10.0.188.1要能ping通

以后每次有客户端(无论是 Windows、手机还是 Linux)重装系统或重新生成密钥,都需要复制客户端生成的新公钥。

粘贴到服务端的 wg0.conf 中,覆盖旧的 PublicKey。

执行 wg-quick down wg0 和 wg-quick up wg0 重启服务,不需要修改 IP 或其他设置,只要公钥对上了,连接就能恢复。

Linux下安装配置WireGuard完成。

扩展阅读:离线安装WireGuard

#####################################

dnf install -y dnf-utils #安装工具包

mkdir -p /tmp/fake #创建临时目录

mkdir -p /root/yum-rpm-full-x86 #创建存储目录

dnf install --installroot=/tmp/fake --releasever=10 --downloadonly --downloaddir=/root/yum-rpm-full-x86 \

wireguard-tools \

-y

执行完成之后,所有的包都在/root/yum-rpm-full-x86目录,把这个目录打包yum-rpm-full-x86.tar.gz拷贝到需要安装的服务器上

#解压

tar -zxvf yum-rpm-full-x86.tar.gz

cd yum-rpm-full-x86

#只安装本地没有的包(跳过冲突),临时禁用所有已配置的远程仓库,只从本地目录安装

yum localinstall ./*.rpm -y --nogpgcheck --disablerepo="*" --skip-broken

#####################################

     
» 转载请注明来源:系统运维 » Linux下安装配置WireGuard

  系统运维技术交流QQ群:①185473046 系统运维技术交流□Ⅰ ②190706903 系统运维技术交流™Ⅱ ③203744115 系统运维技术交流™Ⅲ

给我留言

您必须 [ 登录 ] 才能发表留言!



Copyright© 2011-2026 系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接
陕ICP备11001040号-3