ToB企服应用市场:ToB评测及商务社交产业平台

标题: WireGuard 组网教程:快速构建安全高效的私密网络并实现内网穿透 [打印本页]

作者: 泉缘泉    时间: 2024-6-21 13:41
标题: WireGuard 组网教程:快速构建安全高效的私密网络并实现内网穿透
1 引言

1.1 什么是WireGuard


官方介绍如下:
   WireGuard ® 是一款极其简单但快速且当代的 VPN,采用最先进的加密技术。它的目标是比 IPsec 更快、更简单、更精简、更有用,同时避免令人头疼的问题。它的性能远高于 OpenVPN。
  WireGuard 被设计为通用 VPN,可在嵌入式接口和超级计算机上运行,适合许多差别的环境。它最初针对 Linux 内核发布,现在已跨平台(Windows、macOS、BSD、iOS、Android)且可广泛摆设。它目前正在大力开发中,但它大概已被视为业内最安全、最易于利用且最简单的 VPN 解决方案。
  我们可以用一句话概括它:
WGuard是一款可以组建虚拟私人局域网(VPN)的软件,允许用户通过公共网络(如互联网)安全地传输数据,同时保持数据的秘密性和完备性。
WireGuard有如下上风

1.2 WireGuard可以用来做什么

1.3 WireGuard原理

WireGuard源码地点
WireGuard 是一种在第 3 层(网络层)运行的安全网络隧道,与传统的 VPN 解决方案(如 IPsec 和 OpenVPN)相比,它的设计更安全、性能更高且更易于利用。它是作为 Linux 内核虚拟网络接口实现的,基于安全隧道的基本原理:将peer的公钥与隧道源 IP 地点关联。
相关术语:
   
  主要功能和原理如下
   WireGuard 通过添加一个(或多个)网络接口来工作,比方 eth0 或 wlan0 ,称为 wg0 (或 wg1 、 wg2 、 wg3 等)。然后可以利用 ifconfig(8) 或 ip-address(8) 正常配置该网络接口,并利用 route(8) 或 ip-route(8) 添加和删除其路由,以及全部普通网络实用步伐都是如此。接口的特定 WireGuard 方面利用 wg(8) 工具进行配置。该接口充当隧道接口。
  WireGuard 将隧道 IP 地点与公钥和远程端点相关联。当接口向peer发送数据包时,它会实行以下操作:
    当接口收到数据包时,会发生以下环境:
    WireGuard 的核心是一个称为加密密钥路由的概念,它的工作原理是将公钥与隧道内允许的隧道 IP 地点列表相关联。每个网络接口都有一个私钥和一个peer点列表。每个peer都有一个公钥。公钥短小且简单,由peer用来相互验证。它们可以通过任何带外方法通报以在配置文件中利用,类似于将 SSH 公钥发送给朋友以访问 shell 服务器的方式。
  1.4 WireGuard安装

wireGuard官方安装教程
2 WireGuard组网实现内网穿透

2.1 条件条件

2.2 网络拓扑布局


2.3 具体步调

2.3.1 中继服务器配置


2.3.2 其他peer

我这里只列举MacOS的操作方式(其他都同理,就是要配置私钥和公钥)

操作完之后,它会给出密钥对,我们只需要添加好其他信息即可。

配置文件如下:
  1. [Interface]
  2. # 本机密钥
  3. PrivateKey = kDUqWzkbaB1EU5C2ADoId1TXtZF89xxn0VV45EcjFHs=
  4. # 本机地址
  5. Address = 192.168.71.2/24
  6. [Peer]
  7. # 对端公钥,即公网服务器公钥
  8. PublicKey = bEm1p736FQySfKlTTUCeHmiwTmna5umZWOWLGWqioSk=
  9. # 允许此对等方的传入流量并指定传出流量的目标。
  10. AllowedIPs = 192.168.71.0/24
  11. # 公网IP+监听端口号
  12. Endpoint = 1.1.1.1:51820
  13. PersistentKeepalive = 25
复制代码
2.3.3 测试

MacOS端:

服务器Ping 主机:

2.4 WireGuard配置文件说明


下面是一个简单的配置文件示例:
  1. [Interface]
  2. PrivateKey = yAnz5TF+lXXJte14tji3zlMNq+hd2rYUIgJBgB3fBmk=
  3. ListenPort = 51820
  4. [Peer]
  5. PublicKey = xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg=
  6. Endpoint = 192.95.5.67:1234
  7. AllowedIPs = 10.192.122.3/32, 10.192.124.1/24
  8. [Peer]
  9. PublicKey = TrMvSoP4jYQlY6RIzBgbssQqY3vxI2Pi+y71lOWWXX0=
  10. Endpoint = [2607:5300:60:6b0::c05f:543]:2468
  11. AllowedIPs = 10.192.122.4/32, 192.168.0.0/16
  12. [Peer]
  13. PublicKey = gN65BkIKy1eCE9pP1wdc8ROUtkHLF2PfAqYdyYBz6EA=
  14. Endpoint = test.wireguard.com:18981
  15. AllowedIPs = 10.10.10.230/32
复制代码
3 WireGuard工具

3.1 wg-easy

github地点
这是一个用于管理 WireGuard 设置的 Web 用户界面。利用它之前我们得先安装docker和docker-compose。这里我给出docker-compose.yml配置文件示例。还有许多配置项可在仓库中找到,机动配置VPN
  1. version: '3'
  2. services:
  3.   wg-easy:
  4.     image: weejewel/wg-easy
  5.     container_name: wg-easy
  6.     environment:
  7.       - WG_HOST=YOUR_SERVER_IP # 公网IP
  8.       - PASSWORD=YOUR_ADMIN_PASSWORD # Web UI登录密码
  9.       - WG_PORT=51820 # 监听端口
  10.       - WG_PERSISTENT_KEEPALIVE=25 # 保持“连接”打开的值(以秒为单位)
  11.       - WG_DEFAULT_ADDRESS=192.168.71.0 # 客户端 IP 地址范围
  12.       - WG_ALLOWED_IPS=192.168.71.0/24 # 客户端将使用的允许 IP
  13.     volumes:
  14.       - ~/.wg-easy:/etc/wireguard
  15.     ports:
  16.       - 51820:51820/udp
  17.       - 51821:51821/tcp
  18.     cap_add:
  19.       - NET_ADMIN
  20.       - SYS_MODULE
  21.     sysctls:
  22.       - net.ipv4.conf.all.src_valid_mark=1
  23.       - net.ipv4.ip_forward=1
  24.     restart: unless-stopped
复制代码
通过docker compose up -d摆设好后,我们进入Web界面即可添加Client。

这里,我们只需要将这三个配置文件分给对应的Client的即可完成网络搭建,特别方便!
3.2 wg-gen-web

wg-gen-web
跟wg-easy类似,不过功能更强盛。

3.3 dsnet

github地点
一款用于管理会合式wireguard VPN 的FAST 命令。

官网配置教程

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4