基于wg的Debian服务端和Windows客户端的配置

基本原理

虽然说wg两端是对等节点,也就是Peer1和Peer2的关系。但总要有一个Peer是用户在用的,也就是需求发起方,也就是客户端(Client)。
这样,服务端和客户端的配置是有所不同的,而且受公钥分享的机制所制约,配置过程也是交错进行的。
说白了就是不直观,有点绕,得忍耐,还容易错,需要反复确认。

核心流程如下

服务器要安装wg软件
服务器要生成公钥和私钥
服务器要编写conf文件
conf文件里要包括NAT设置
服务器要设置ip_forward(本教程不包含)
客户端安装wg软件
客户端添加tunnel(同时也生成了客户公钥和私钥)
客户端编辑conf
再次编辑服务端conf添加客户端公钥和地址
测试

开始

服务端

先切到root
sudo su -
安装wg
apt install wireguard -y

创建公钥和私钥文件

cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey

这样在/etc/wireguard下面就会产生2个文件

看看本机的网卡(们)
ifconfig

出来一堆东西,这里需要经验才能判断那个是外网出口的网卡,如果这个地方实在搞不定可以约我一对一

我这里是ens4
创建wg0.conf文件
vi wg0.conf
用vi相关知识编写文件内容如下

[Interface]
Address = 192.168.201.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens4 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens4 -j MASQUERADE
ListenPort = 这里写一个小于65535大于1024的端口
PrivateKey = 这里替换成文件中的

客户端

windows客户端安装wg,官网下载即可
左下角新建隧道-新建空隧道

在这里插入图片描述
填写名称,例如debian
填写interface和Peer配置
Interface就是指自己,也就是当前Windows客户端
Peer就是指对方,也就是服务端

[Interface]
PrivateKey = 界面打开时候就确定了
Address = 192.168.201.3/32
DNS = 114.114.114.114

[Peer]
PublicKey = 服务端的公钥,在/etc/wireguard文件夹里
AllowedIPs = 0.0.0.0/0
Endpoint = 服务器IP:5283

回到服务端

修改服务端配置文件,添加客户端信息

[Peer]
PublicKey = 客户端的公钥,在新建隧道那个窗口里
AllowedIPs = 192.168.201.3/32

启动wg

wg-quick up wg0

看看状态

wg show

在这里插入图片描述
现在我们理一下:

服务端开了一个虚拟端口wg0
虚拟端口可以理解成网卡,地址是192.168.201.1
子网掩码是24,关于子网掩码本文不讨论

服务端有一个网卡叫ens4
还有一个网卡叫wg0
有个服务叫wg
监听了ens4网卡得5283端口
并且服务端有一对公钥和私钥,公钥已经配置在windows客户端的配置文件里了,私钥自己保留,配置在服务端自己的配置文件里。
配置文件里配置了NAT设置,为了转发wg0的流量到ens4,NAT配置细节不讨论

客户端也开了一个虚拟端口叫debian,
客户端也有一套公钥和私钥
客户端配置了这个debian网卡的地址192.168.201.3
子网掩码32
还配置了一个DNS
客户端得知道连谁,连谁配置在[Peer]里
所以[Peer]配置了服务器的地址,也叫endpoint,包括IP和端口
还有AllowIPs,这里是0.0.0.0/0,我目前在这个地方解释力匮乏,下面引用一句自己说的话:

有一种东西叫理解不完整,理解不完整的不讲 ——《同理说》

我们继续,因为有了客户端的公钥和IP
在服务端的[Peer]里又配置了客户端的信息
也就是公钥和AllowIPs,因为我读了官方文档,这个可以理解,就是如果服务器发现,也就是wg服务发现,有个数据包的目标是192.168.201.3,那么就允许往这个Peer上发。

测试

服务端的服务已经启动了,所以现在要做的就是用客户端链接服务端。
连之前ping一下192.168.201.1
连之后再ping一下192.168.201.1
然后再试试tracert指令测试一个IP看看怎么个路径
再开以IP为地址的网站
再开一个以域名为地址网站

如果哪个环节有问题,就要排查了。
这个地方是经验密集型工作,只能具体问题具体分析了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值