延伸昨天OpenVPN,介绍另一个VPN点对点的连接技术"WireGuard"。在这四千多行的程序中完成了更安全的加密与更简易的配置,相较其他VPN方式又提升连接效能。
WireGuard在Linux 5.6版本并入核心,目前openwrt 21.02使用Linux kernel 5.4。不过都是基於linux的专案,因此使用与安装没有问题。且WireGuard已经可以在多个系统中运作,让实务应用与配置度更灵活。
WireGuard是由Jason A. Donenfeld开发的开放原始码VPN程序及协定[1],基於Linux核心实现,利用Curve25519进行金钥交换,ChaCha20用於加密,Poly1305用於资料认证,BLAKE2用於杂凑函式运算[1],支援IPv4和IPv6的第3层。[2]WireGuard旨在获得比IPsec和OpenVPN更好的效能[3]。
opkg update
opkg luci-proto-wireguard luci-app-wireguard luci-i18n-wireguard-zh-tw
mkdir /etc/wireguard
cd /etc/wireguard
umask 077
wg genkey | tee wg.key | wg pubkey > wg.pub
名称 | 说明 |
---|---|
wg.key | server 私钥 |
wg.pub | server 公钥 |
用cat指令复制与记下金钥
cat wg.key
cat wg.pub
回到luci介面设定(也可以使用命令介面)
/etc/init.d/network reload
建立新介面
防火墙规则
iptables -t nat -A POSTROUTING -s 192.168.20.1/24 -o eth0 -j MASQUERADE
开启防火墙port
建立客户端金钥
mkdir 01
cd 01
建立共享金钥,减少交握过程
wg genpsk > wgclient.psk
cat wgclient.psk
建立client端金钥
wg genkey | tee wgclient.key | wg pubkey > wgclient.pub
名称 | 说明 |
---|---|
wgclient.key | client 私钥 |
wgclient.pub | client 公钥 |
```
cat wgclient.key
cat wgclient.pub
```
![](https://i.imgur.com/iUUfxT2.png)
[Interface]
Address = 192.168.20.2
PrivateKey = wgclient.key值
DNS = 路由器IP
[Peer]
PublicKey = wg.pub值
AllowedIPs = 0.0.0.0 /0
PresharedKey = wgclient.psk值
如果启用下面这行,表示只有192.168.2.0/24, 192.168.100.0/24这两个IP走WireGuard
AllowedIPs = 192.168.2.0/24, 192.168.100.0/24
Endpoint = 实体IP:port(hotsname:port)
PersistentKeepalive = 25
先到WireGuard下载对应作业系统的软件
汇入档案并测试连线
tracert openwrt.org
traceroute openwrt.org
目前也还在翻车中,有看到已连线,但资讯封包流向可能不正确或是防火墙设定错误,所以一直在断线之中。
<<: 【第20天】训练模型-模型组合与辨识isnull(一)
>>: Day20-94. Binary Tree Inorder Traversal
今天的文章要讲的是Percentiles(百分位数)跟Percentile Ranks(百分位数排名...
除了可以新增元件外,也可以增加自订义的功能。 虽然 TailwindCSS 已经提供非常多好用的 ...
Kubernetes 超入门 Kubernetes 是一种让使用者管理Cluster 的一种工具,能...
大家一定都听过数据分析 让我们先来看一笔实际的数据 点开kaggle上随意一笔csv档 (资料来源:...
以前我绝对是对哲学避之唯恐不及的 但某一年意外看到「正义 一场思辨之旅」以及「超译 尼采」後 开始...