wireguard配置文件分享|Openwrt 如何设置 Wireguard 呢同样的参数电脑客户端可以正常使用但是到路由器里设置却无法使用

|

1. Openwrt 如何设置 Wireguard 呢同样的参数电脑客户端可以正常使用,但是到路由器里设置,却无法使用

OpenWrt的Wireguard在安装后,只需设置

a)一个监听接口,用于连接;需要私钥、监听端口、IP地址

b)一个peer,用于认证;需要公钥、允许网段

运行vim/etc/config/network,添加以下信息:

config interface 'wgn'

option proto 'wireguard'

option private_key '私钥'

option listen_port '端口号'

list addresses 'IPv4/IPv6地址,CIDR格式'

config wireguard_wgn

option public_key '公钥'

list allowed_ips '允许的网段,CIDR格式'

密钥可以在OpenWrt下运行以下命令生成

mkdir -p /etc/wireguard

umask 077 && wg genkey > /etc/wireguard/server-privkey

cat /etc/wireguard/server-privkey | wg pubkey > /etc/wireguard/server-pubkey

cat /etc/wireguard/server-pubkey

cat /etc/wireguard/server-privkey

也可利用在其他操作系统上生成的密钥

不要忘记开放端口

IPv4

iptables -A INPUT -p udp -m udp –dport #监听端口 -j ACCEPT

IPv6

ip6tables -A INPUT -p udp -m udp –dport #监听端口 -j ACCEPT

2. RouterOSv7WireGuard隧道协议

RouterOS v7加入了WireGuard,WireGuard是一个极简而快速的加密VPN协议。其设计目标是比IPsec更快、更精简和高效,同时性能要比OpenVPN提升很多。WireGuard被设计成一种通用VPN,可以在多个平台上运行,适合许多不同的环境。最初是为Linux内核发布的,后支持跨平台(Windows, macOS, BSD, iOS, Android),能进行广泛的部署。从官方测试性能看,WireGurad对于IPsec优势非常明显,而对于OpenVPN几乎是碾压。在部署方面,WireGurad各个节点是Peer对等体的概念,而非是Server与Client关系,相互之间是对等的,一个节点既可以是发起者,锋凳也可以是接收者,比如网上提到VPN的拓扑方案中,可以是点对点,点对多点的中心覆盖,而WireGuard不一样了,不仅可以点对点,陪基态也可以点对多点,每个节点同时可连接多个 Peer,看到过有人通过WireGuard建立全互联模式,三层的Mesh网状网络。WireGuard只支持UDP协议,不支持传统的TCP-over-TCP隧道,因为TCP网络性能并不理想,如果对TCP连接有需求,将wiredguard的UDP包转换为TCP,并可以使用如udptunnel和udp2raw来协助完成。关于NAT穿透,通常情况下,WireGuard网络在未被使用的情况下,会尽量保持“安静”。在大多数情况下,它只在Peer对等体,希望发送数据包时传输数据,当它没有被要求发送数据包时,它就停止发送,直到再次被请求。在点对点公网IP连接的网络环境是这样的,然而,当一个Peer端位于NAT或防火墙之后时,即使它不发送任何数据包的情况下,也希望能接收传入的数据包。因为NAT和防火墙会跟踪“会话连接”,他必须通过定期发送数据包来维持NAT/防火墙连接会话映射的有效,即UDP的timeout时间,即被称为keepalive。WireGuard可以开启此选项,每隔一秒向对端点发送一个keepalive报文,当然适用于各种NAT/防火墙的合理间隔在25秒。默认设置keepalive是关闭状态,因为公网IP连接的用户不需要这个功能。WireGuard加密使用ChaCha20,验证使用Poly1305,它几乎在所有通用CPU上的运行速度都非常快。虽然未被专用硬件支持(IPsec支持硬件加速),但在CPU上的矢量指令(vector instructions)与AES-NI指令处于相同的优先级(有时甚至更快)。总结下WireGuard的特点:是基于UDP协议连接,具备网络性能优势 运行在Linux内核,在性能上优于IPsec和OpenVPN 每个节点通过公钥识别进行验证,加密采用的是ChaCha20Poly1305。 每个节点是平等的,既可以作为server,又可以作为client 两端仅需要一个配置公网IP,另一端在nat后也能连接,nat后的节点,仅需要对端节点公钥,以及公网IP (endpoint)和端口(endpoint port),而公网节点只需要填写连接端的公钥即可 从测试结果看未使用IPsec加密的L2TP的传输带宽性能最好,超过了WireGuard,但在使用IPsec的L2TP加密后,性能远不如WireGuard,我平时喜欢使用SSTP在RouterOS设备之间建立连接,因为SSTP端口灵活,在RouterOS建立隧道无需证书,但SSTP的传输性能在RouterOS支持的所有隧道协议中性能是最差的,现在芦源v7有了WireGuard就不一样了。


赞 (0)