当前位置:首页>Linux>Linux下安装配置WireGuard

Linux下安装配置WireGuard

  • 2026-09-08 03:26:14
Linux下安装配置WireGuard
简单介绍:
WireGuard 是新一代的虚拟专用网内核模块,它以代码极简、性能极高、配置简单著称。它被直接集成在 Linux 内核中(5.6 版本以上),因此运行效率非常高,非常适合用于异地组网、内网穿透等使用场景。
操作系统:
Rocky Linux 10.1WireGuard 已经内置于新版内核中,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/udpfirewall-cmd --reload #重新加载防火墙配置firewall-cmd --list-all #显示所有规则
3 开启IPV4流量转发功能
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confecho "net.ipv4.conf.all.proxy_arp = 1" >> /etc/sysctl.confsysctl -p
4、安装wireguard
yum  install wireguard-toolsmodprobe wireguard  #手动加载模块,如果没有报错(直接返回命令行),说明模块已存在且加载成功。
5、生成服务端密钥对
#创建一个目录用于存放生成的密钥对mkdir -p /etc/wireguard/certcd /etc/wireguard/cert# 生成服务端私钥server.keywg genkey > server.key# 使用上一步的服务端私钥生成公钥server.key.pubwg pubkey < server.key >server.key.pub# 查看生成的密钥对[root@localhost cert]# cat server.key server.key.pubuPdVDbrCYfU9l4AxVhdxEYiiDj6Ourut6x2hFG6+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.pubiDj9Jq/zMs3L5QKEZOJytGalyTOjk8KWcjqkohj3VFw=kNNmyu3ZYDirSBIWT2bB0fHHsb7NiPKt7FkDeUwJ7Gs=
# 客户端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.pubyDbxZkSWZhNi3M0hAuGLCIcse+lI+hoRlZ6eAwkcT0Y=4NDqtOWzNFjmP8eu8htyWIXU954H1rA+nRY4yMCfzm0=
7、配置服务端
vi /etc/wireguard/wg0.conf[Interface]PrivateKey = uPdVDbrCYfU9l4AxVhdxEYiiDj6Ourut6x2hFG6+rlU= #服务端私钥server.keyAddress = 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 MASQUERADEPostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens160 -j MASQUERADEListenPort = 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.keyAddress = 10.0.188.2/32  #此处为peer规定的客户端IPMTU = 1420DNS = 8.8.8.8, 8.8.4.4[Peer]PublicKey = y+3tI6KJ+zede+uwr8LQnCZ3jR+AjdsnkXu8q2ows2A=  #此处为server的公钥server.key.pubAllowedIPs = 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
#####################################

最新文章

随机文章