通过 WireGuard 组建虚拟局域网 实现多个局域网全互联

本文后半部分代码框较多,欢迎点击原文链接获得更佳的阅读体验。

前言

上一篇关于 WireGuard 的文章通过 Docker 安装 wg-easy 的形式来使用 WireGuard,但 wg-easy 的功能比较有限,并不能发挥出 WireGuard 的全部功力。

如果只是想要出门在外连随时随地的连回家里的局域网,那么 wg-easy 是一个开箱即用,无需配置的简易工具。

而对于想要把多个地方的局域网组成一个大的虚拟局域网的用户来说,wg-easy 就有些力不从心了。对于这部分用户来说,网上大部分教程都是在 OpenWRT 设置 WireGuard 进行组网,而今天介绍的是在 Linux 上直接启动 WireGuard 来实现多个局域网全互联。

wg-easy 优缺点

wg-easy 作为开箱即用的工具,WireGuard 的配置文件对于用户基本是透明的,只需要在启动 Docker 容器时,设置好相应的环境变量,直接在 Web UI 中添加设备,然后扫码或者导入自动生成的配置文件就可以完成连接,非常的简单易用。

正因为配置文件对于用户透明,如果有更多的需求,想要手动修改部分配置,就变得非常的困难了。

配置文件

本文只会介绍必须的配置,更详细的配置可以看这位大佬的文章

在开始之前,我们需要了解 WireGuard 的基本配置,WireGuard 的配置文件采用的是 ini 的语法,文件命名格式为 <接口名>.conf,默认路径是 /etc/wireguard/wg0.conf

配置文件分为 [interface][Peer] 两部分,其中[Interface] 定义的是本地节点的配置,[Peer] 定义的是对等节点的配置(也就是要连接的远程节点)

[Interface]

  • Address:单个 IP 地址或整个网段

    • 常规客户端:例如手机、笔记本,可以设置为单个 IP 地址 Address = 10.8.0.2/32
    • 中继服务器:例如软路由、NAS,可以设置为整个网段 Address = 10.8.0.1/24
  • PrivateKey:私钥

  • ListenPort:监听端口,默认为 51820,常规客户端无需配置

  • PostUp:启动接口后运行的命令

    # 添加 iptables 规则,启用数据包转发
    PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    
  • PostDown:停止接口后运行的命令

    # 停止后删除 iptables 规则,关闭数据包转发
    PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
    

[Pee

  • 25
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值