组网神器WireGuard安装与配置(转载)
组网神器WireGuard安装与配置
文章来源
组网神器WireGuard安装与配置教程(超详细)_wirguard-CSDN博客
wireguard服务器配置_resolvconf: command not found-CSDN博客
前言
本文95%以上的内容为组网神器WireGuard安装与配置教程(超详细)_wirguard-CSDN博客中的内容,主要用作个人使用。
十分感谢杨林伟-CSDN博客。
我在配置中遇到的问题
如果遇到报错/usr/bin/wg-quick: line 32: resolvconf: command not found
请执行命令
sudo apt install openresolv |
引言
wireguard官网地址:https://www.wireguard.com
wireguard是什么?维基百科是这样描述的:
- WireGuard是一种实现加密虚拟专用网络(VPN) 的通信协议和免费开源软件,其设计目标是易于使用、高速性能和低攻击面;
- 它旨在比IPsec和OpenVPN这两种常见的隧道协议具有更好的性能和更强大的功能;
- WireGuard 协议通过UDP传递流量。
通过描述,我们知道了wireguard其实就是一个FAST(速度快)、MODERN(流行)、SECURE (安全)的VPN TUNNEL(VPN隧道)。
ok,那么如何安装呢?本文来讲解下:
安装教程
注意:本文讲解的安装教程是wireguard能在外网的条件下使用的,内网间的调试就不讲解了,区别只是互联网的不稳定性或防火墙等因素。
安装视频与教程:
前提条件
如果在外网的情况下使用wireguard,安装之前需要满足以下条件:
- 需要有公网的ip地址(这些地址可以直接在腾讯云、阿里云等厂商购买);
- 如果
Linux
内核版本<5.6,可能需要首先更新内核(本文不介绍内核升级教程); - 不同的系统中,内核,内核源码包,内核头文件必须存在且这三者版本要一致(例如:
Red Hat、CentOS、Fedora
等系统的内核源码包,内核头文件包名分别为kernel、kernel-devel、kernel-headers
;Debian、Ubuntu
等系统的内核源码包,内核头文件包名分别为kernel、linux-headers
)。
wireguard安装
安装的总体流程如下:
- step1: 安装wireguard
- step2: 服务端生成秘钥对
- step3: 配置文件生成(服务端与客户端)
- step4: 启动(服务端与客户端)
- step5: 测试
步骤一: 安装wireguard
使用命令安装:
sudo apt-get install wireguard |
步骤二: 服务端生成秘钥对
① 开启ipv4流量转发:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf |
② 创建并进入WireGuard文件夹:
mkdir -p /etc/wireguard && chmod 0777 /etc/wireguard |
③ 生成服务器和客户端密钥对:
wg genkey | tee server_privatekey | wg pubkey > server_publickey |
步骤三: 配置文件生成
服务端配置文件生成
生成的配置文件路径:/etc/wireguard/wg0.conf,命令如下:
echo " |
注意:
- 如果名字不是
eth0
, 以下PostUp
和PostDown
处里面的eth0
替换成自己服务器显示的名字; ListenPort
为端口号,可以自己设置想使用的数字;- 以上内容一次性粘贴执行,不要分行执行
还需要设置开机启动:
systemctl enable wg-quick@wg0 |
客户端配置文件生成
生成的配置文件路径:/etc/wireguard/client.conf,命令如下:
echo " |
步骤四: 启动
服务端启动
启动或停止wireguard服务端的命令如下:
# 启动WireGuard |
查看wireguard服务端运行状态命令:
wg |
客户端启动
启动或停止wireguard客户端的命令如下:
# 启动WireGuard |
查看wireguard客户端运行状态命令:
wg |
还可以在客户端配置路由:
ip route add 103.52.188.136 via 192.168.1.2 |
当然,最简单的方式就是直接导入2.2.3.2 生成客户端的配置文件(/etc/wireguard/client.conf
),不过要下载wireguard客户端:
步骤五: 测试
多台机器互ping即可:
ping 10.0.8.1 |
服务器也可以安装tcpdump
来监听网络接口的数据包:
apt -y install tcpdump |
其它
至此,wireguard安装成功了!下面的内容,有兴趣的也可以继续阅读。
命令
可以通过添加一个新接口ip-link(8)
,它应该自动处理模块加载(非 Linux
用户将改为编写wireguard-go wg0.
):
ip link add dev wg0 type wireguard |
一个 IP
地址和对等体可以被分配ifconfig(8)
或ip-address(8)
:
ip address add dev wg0 192.168.2.1/24 |
或者,如果总共只有两个对等点,则可能更需要这样的操作:
ip address add dev wg0 192.168.2.1 peer 192.168.2.2 |
该接口可以使用包含的wg(8)
实用程序配置密钥和对等端点:
wg setconf wg0 myconfig.conf |
或者
wg set wg0 listen-port 51820 private-key /path/to/private-key peer ABCDEF... allowed-ips 192.168.88.0/24 endpoint 209.202.254.14:8172 |
最后,可以使用 ifconfig(8)
或激活接口ip-link(8)
:
ip link set up dev wg0 |
还有wg show
和wg showconf
命令,用于查看当前配置。
调用wg
不带参数默认为wg show所有WireGuard接口。
密钥生成
WireGuard 需要 base64
编码的公钥和私钥。这些可以使用该wg(8)
实用程序生成:
$ umask 077 |
这将privatekey
在包含新私钥的stdout
上创建。
然后,您可以从您的私钥派生您的公钥:
$ wg pubkey < privatekey > publickey |
这privatekey
将从标准输入读取并将相应的公钥写入publickey
标准输出。
当然,您可以一次完成所有这些:
$ wg genkey | tee privatekey | wg pubkey > publickey |
结束
最后,再次感谢杨林伟-CSDN博客。
十分希望你可以去原文章中阅读原文组网神器WireGuard安装与配置教程(超详细)_wirguard-CSDN博客