利用wireguard实现IPv6 Only VPS使用双栈VPS的v4出口获得IPv4访问

云泽 发布于 3 天前 20 次阅读 最后更新于 3 天前


AI 摘要

IPv6 Only VPS如何通过双栈设备访问IPv4?利用WireGuard组建隧道,将IPv6设备纳入内网,借助双栈机器的NAT实现低成本v4出口。仅需密钥配置与iptables规则,即可让多台IPv6设备共享双栈VPS的IPv4网络。

在使用ipv6-only的机器是时候,总是各种不方便,如果你有一台ipv4+ipv6双栈网络机器,可以利用wireguard实现IPv6 Only VPS使用双栈VPS的v4出口获得IPv4访问。

以下以debian12为例子,A设备为双栈网络,B设备为仅IPv6网络,两端设备均需要安装wireguard

apt install wireguard-tools

实际思路,利用wireguard将多台设备组成局域网,多台设备间利用ipv6进行连接。每台设备分配内网ipv4,在A设备给内网网段配置NAT,实现B设备走A设备的网关出网。

实现步骤

1.wireguard的配置文件位于/etc/wireguard目录,默认情况下里面什么也没有,进入到该目录 cd /etc/wireguard 2.创建密钥对,AB设备均需操作: 1.创建私钥, 保存为priv_key文件wg genkey > priv_key 2.根据私钥生成公钥wg pubkey < priv_key > pub_key 3.现在两设备都生成了密钥,可以通过 cat priv_key 查看私钥,cat pub_key 查看公钥 3.编写配置文件,wg0.conf规划了一段/24,10.0.0.1/24。 1.a机器的配置文件

 [Interface]
 PrivateKey = 替换为A设备的私钥
 Address = 10.0.0.1/24
 ListenPort = 12345
 PostUp = echo "1" > /proc/sys/net/ipv4/ip_forward
 PostUp = iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -o eth0 -j MASQUERADE
 PostDown = iptables -t nat -D POSTROUTING -s 10.0.0.1/24 -o eth0 -j MASQUERADE

 [Peer]
 PublicKey = 替换为B设备的公钥
 AllowedIPs = 10.0.0.1/32

2.b机器的配置文件 ``` [Interface] PrivateKey = 替换为B设备的私钥 Address = 10.0.0.2/32</p> <pre><code>[Peer] PublicKey = 替换为A设备的公钥 AllowedIPs = 0.0.0.0/0 Endpoint = [A设备的v6地址]:12345 ```

3.启动wireguard

systemctl start wg-quick@wg0

4.开机自启动wireguard

systemctl enable wg-quick@wg0

本配置可以实现多台ipv6机器获得内网ipv4,如还有一台ipv6的机器c

编写配置文件,wg0.conf

1.a机器的配置文件

 [Interface]
 PrivateKey = 替换为A设备的私钥
 Address = 10.0.0.1/24
 ListenPort = 12345
 PostUp = echo "1" > /proc/sys/net/ipv4/ip_forward
 PostUp = iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -o eth0 -j MASQUERADE
 PostDown = iptables -t nat -D POSTROUTING -s 10.0.0.1/24 -o eth0 -j MASQUERADE

 [Peer]
 PublicKey = 替换为B设备的公钥
 AllowedIPs = 10.0.0.1/32

 [Peer]
 PublicKey = 替换为c设备的公钥
 AllowedIPs = 10.0.0.2/32

2.b机器的配置文件

 [Interface]
 PrivateKey = 替换为B设备的私钥
 Address = 10.0.0.2/32

 [Peer]
 PublicKey = 替换为A设备的公钥
 AllowedIPs = 0.0.0.0/0
 Endpoint = [A设备的v6地址]:12345

3.c机器的配置文件

 [Interface]
 PrivateKey = 替换为3设备的私钥
 Address = 10.0.0.3/32

 [Peer]
 PublicKey = 替换为A设备的公钥
 AllowedIPs = 0.0.0.0/0
 Endpoint = [A设备的v6地址]:12345
*这是一则由 Google AdSense 自动推荐的广告,不代表本站立场
此作者没有提供个人介绍。
最后更新于 2025-03-30