首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Wireguard VPN重定向流量

通过Wireguard VPN重定向流量
EN

Server Fault用户
提问于 2022-06-09 17:34:41
回答 1查看 3K关注 0票数 0

我有一个公开的IPv6地址,但没有一个IPv4。因此,我想通过带有公共IPv4和IPv6地址的VPS路由流量。我的问题是如何使用Wireguard创建这种类型的隧道。从VPS到我网络中的设备的隧道不是挑战,而是如何将服务器上的数据包重定向到该隧道。

我做了一些研究,我的方法会是这样的。

我的网络设备

代码语言:javascript
复制
[Interface]
Address = <DEVICE IPv6>
PrivateKey = <private key>
ListenPort = <DEVICE PORT>

# Peer to VPS
[Peer]
PublicKey = [PUBLIC KEY VPS]
AllowedIPs = [VPS IPv6]
Endpoint = [VPS IPv6]:[VPS PORT]

副总裁

代码语言:javascript
复制
[Interface]
Address = <VPS IPv6>
Address = <VPS IPv4>
PrivateKey = <private key>
ListenPort = <VPS PORT>

# Peer to device
[Peer]
PublicKey = [PUBLIC KEY DEVICE]
Endpoint = [DEVICE IPv6]:[DEVICE PORT]
AllowedIPs = 0.0.0.0/0, ::/0


# Example peer of client
[Peer]
PublicKey = <client public key>
AllowedIPs = 0.0.0.0/0, ::/0

示例客户端

代码语言:javascript
复制
[Interface]
PrivateKey = <private key>
ListenPort = <CLIENT PORT>

[Peer]
PublicKey = [PUBLIC KEY VPS]
Endpoint = [VPS IPv4]:[VPS PORT], [VPS IPv6]:[VPS PORT]
AllowedIPs = 0.0.0.0/0

这个是可能的吗?还是需要创建两个WG接口并在两者之间路由通信量?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2022-06-13 18:17:58

听起来你只是想从你的网络设备连接到你的示例客户端,反之亦然?如果是这样的话,那么这就是经典的轮毂和辐式有线护卫场景,以VPS作为集线器,网络设备和示例客户端作为辐条。

对于在您的WireGuard网络中隧道化的连接,您可以使用IPv4或IPv6地址--它不必与承载隧道连接的数据包的IP版本相匹配。下面是一个示例,将IPv6 fd00::/56地址块用于WireGuard网络;使用198.51.100.123作为集线器的公共IPv4地址;使用2001:db8:1234:abcd::1作为集线器的公共IPv6地址:

网络设备(IPv6辐):

代码语言:javascript
复制
# local settings for Network Device
[Interface]
PrivateKey = <Network Device private key>
Address = fd00:0:0:2::1/64

# remote settings for VPS
[Peer]
PublicKey = <VPS public key>
AllowedIPs = fd00::/56
Endpoint = [2001:db8:1234:abcd::1]:51820
PersistentKeepalive = 25

副总裁(枢纽):

代码语言:javascript
复制
# local settings for VPS
[Interface]
PrivateKey = <VPS private key>
Address = fd00:0:0:1::1/64
ListenPort = 51820

PreUp = sysctl -w net.ipv6.conf.all.forwarding=1

# remote settings for Network Device
[Peer]
PublicKey = <Network Device public key>
AllowedIPs = fd00:0:0:2::/64

# remote settings for Example Client
[Peer]
PublicKey = <Example Client public key>
AllowedIPs = fd00:0:0:3::/64

示例客户端(IPv4分支):

代码语言:javascript
复制
# local settings for Example Client
[Interface]
PrivateKey = <Example Client private key>
Address = fd00:0:0:3::1/64

# remote settings for VPS
[Peer]
PublicKey = <VPS public key>
AllowedIPs = fd00::/56
Endpoint = 198.51.100.123:51820
PersistentKeepalive = 25

然后,您可以从网络设备访问运行在示例客户端上的then服务器,使用示例客户端的WireGuard IP地址fd00:0:0:3::1;或者从示例客户端访问SSH到网络设备,使用网络设备的WireGuard IP地址fd00:0:0:2::1

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

https://serverfault.com/questions/1102918

复制
相关文章

相似问题

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