我的 ISP 用户是 CGNAT,我没有静态 IP 地址,但我想连接到我的 AWS 子网。我尝试为 OpenVPN 服务器创建一个虚拟机,但这样我只能连接到服务器虚拟机,除非我在所有其他虚拟机上都设置了。如何在没有静态 IP 地址的情况下连接到我的子网?
答案1
我没有使用过 OpenVPN,但是,通过简单的 wireguard 设置,您可以拥有一个可以允许访问任意数量的私有子网的 wireguard 服务器。
在这个例子中,10.xx.xx.x
是我的私有子网,192.168.x.x
是我的 wireguard 网络。
- 选择或设置一台专用机器作为 wireguard 服务器,并设置基本配置。例如服务器端
[Interface]
Address = 192.168.200.1
PrivateKey = ...
ListenPort = 51820
[Peer] # Enes home computer
PublicKey = ...
AllowedIPs = 192.168.200.2
和客户端
[Interface]
PrivateKey = ...
Address = 192.168.200.2
ListenPort = 51820
[Peer]
PublicKey = ...
Endpoint = your.wg.server
AllowedIPs = 192.168.200.1/32, 10.0.0.0/8 # We can route whatever we want!
- 配置 wireguard 服务器以允许 ip 转发,例如使用 sysctl 设置:
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
- 配置 wireguard 服务器以允许伪装,例如使用firewalld,在 wireguard 接口所在的区域(例如内部)上设置自定义规则
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.211.0/24" masquerade' --permanent
firewall-cmd --reload
就是这样。使用wg
来验证 wireguard 是否正常工作,并且您应该能够 ping 10.x.x.x
wireguard 服务器可以 ping 的任何地址。
我使用单个 wireguard 服务器 VM 针对包含数百台机器的数十个私有子网运行此设置。