使用WireGuard把自己宣告得IP带到别的机器

宣告了一大块/48(甚至更大)不可能就一个机器用,通用得打洞方式有SIT/GRE等等,不过呢,我这里还有一个,就是WireGuard,曾经Linux说他是个艺术品,真是不可多得的工具,不过这种方式并不是用来特殊上网的,因为他是基于UDP并不能良好地这么用.

注意:这里没有WG基础,所以没基础请先补习.

先启动转发:

echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
sysctl -p

宣告端(上游):

[Interface]
PrivateKey = YJ0pyY688+Xd0vgasc66Xfmhnahn2+BpAl0Pv2YaulA=
Address = 2001:470:485b::1/128
ListenPort = 56833
DNS = 8.8.8.8
MTU = 1420

[Peer]
PublicKey = plks+56UptSpCZOkbY9MwMbC9emeb88z8OnB1vrVzD4=
AllowedIPs = 2001:470:485b::2/128

下游(被动IP使用端):

[Interface]
PrivateKey = kCUoCLfYMNyj5k6vWuWZvXjLIVUoNFZ5PDS2msNdnVo=
Address = 2001:470:485b::2/128 
DNS = 8.8.8.8
MTU = 1420
[Peer]
PublicKey = pUfHzElZl5ORaMAqlJcBHJfFieSTkfyTNJQ4bF2MRUI=
Endpoint = [上游IP]:56833
AllowedIPs = ::0/0
PersistentKeepalive = 25

特点:

  • 三层隧道 / 基于UDP协议
  • 建立连接数量受限于端口数量 / 系统性能
  • 下游IP变更不需要通知上游
  • 连接稳定性更强 / 得益于心跳机制
  • 防止网段Hijack

如果还需要向下游宣告可路由网段,只需要添加允许路由IP段就可以了.

[Interface]
PrivateKey = YJ0pyY688+Xd0vgasc66Xfmhnahn2+BpAl0Pv2YaulA=
Address = 2001:470:485b::1/128 
ListenPort = 56833
DNS = 8.8.8.8
MTU = 1420

[Peer]
PublicKey = plks+56UptSpCZOkbY9MwMbC9emeb88z8OnB1vrVzD4=
AllowedIPs = 2001:470:485b::2/128, 2001:470:485b:1000::/64

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注