首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到Wireguard VPN时,使本地资源可用

连接到Wireguard VPN时,使本地资源可用
EN

Unix & Linux用户
提问于 2021-03-12 07:28:12
回答 1查看 30.3K关注 0票数 5

背景:

我已经在本地(私有)网络上配置了一个Wireguard服务器。例如专用网络: 192.168.1.0/24 Wireguard客户端具有相同的IP网络192.168.1.X

在我的网络中有一些非Wireguard兼容设备(IP摄像机,DVR)具有静态本地IP地址.

查询:

当我以Wireguard客户端的身份连接到Wireguard服务器(从本地网络之外)时,我希望访问那些具有本地静态IP地址的非Wireguard兼容设备。我已经确保不会有任何IP冲突。

EN

回答 1

Unix & Linux用户

发布于 2021-03-13 00:11:18

当您想通过WireGuard将单个外部主机连接到局域网时,您需要做的三件关键事情是:

  1. 在每个外部主机上的AllowedIPs配置的WireGuard设置中包括局域网的IP块(或至少要访问的每个局域网端主机的IP地址)。
  2. 在局域网端WireGuard主机上设置数据包转发(如sysctl -w net.ipv4.ip_forward=1)
  3. 在局域网端WireGuard主机上设置包伪装(也称为SNAT) (通常通过iptables规则完成)

这里有一个完整的例子:

https://www.procustodibus.com/blog/2020/11/wireguard-point-to-site-config/

在该示例中,局域网的子网是192.168.200.0/24,因此在外部主机的WireGuard配置中设置了AllowedIPs (示例中的端点A):

代码语言:javascript
复制
AllowedIPs = 192.168.200.0/24

在该示例中,包转发和伪装是通过在局域网端WireGuard主机上添加以下WireGuard配置(示例中的主机β)来完成的:

代码语言:javascript
复制
# IP forwarding
PreUp = sysctl -w net.ipv4.ip_forward=1
# IP masquerading
PreUp = iptables -t mangle -A PREROUTING -i wg0 -j MARK --set-mark 0x30
PreUp = iptables -t nat -A POSTROUTING ! -o wg0 -m mark --mark 0x30 -j MASQUERADE

当WireGuard接口wg0位于局域网端WireGuard主机上时,外部主机可以通过其局域网地址连接到局域网上的任何主机--在示例中,外部主机(端点A)可以通过端点B的本地地址192.168.200.22连接到局域网主机(端点B)。

票数 7
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/638889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档