我在服务器端有一个以下的wireguard配置
[Interface]
ListenPort = 51820
PrivateKey = oPernzzF+Kl499z2TMwemZLUN6/e630Q=
[Peer]
PublicKey = yyhY5Blx+PxCHu/wK7QgiL/veRrXHQ34RmTi//zynVA=
AllowedIPs = 10.0.8.2/32
PersistentKeepalive = 25
由于我没有在接口部分指定地址,因此建立wireguard 连接后服务器的默认IP 地址是10.0.8.1。然而,我的服务器的实际IP地址是192.168.0.230,它在端口80上托管一个httpd网页。该服务器不在生产环境中,而是在openBSD 7.3 stable上运行。该电线防护配置运行完美。
要在建立wireguard连接后访问网页,我需要输入10.0.8.1:80而不是192.168.0.230:80。我也在digital ocean ubuntu 23.04服务器上测试了这个配置,并获得了相同的结果。因此,由于服务器的IP地址正在变化,可能会出现域名冲突,我不希望我的客户端直接使用该IP地址。有没有办法解决这个问题,以便我可以仅使用服务器的域名来解决它?
答案1
您的客户端很可能不知道它应该192.168.0.230
通过 WireGuard 接口路由请求。因此,要么手动添加该路由,要么如 @Jaromanda X 在他的评论中所说,您需要将该 IP(或包含它的某个子网,例如)192.168.0.0/24
添加到AllowedIPs
客户。
但是,请注意,这192.168.0/24
是一个非常本地网络广泛使用的 IP 范围。例如,如果您的客户端计算机是一台笔记本电脑,并且该笔记本电脑连接到使用该 IP 范围的网络(公共接入点、公司网络、您朋友的 wifi、移动热点、绑定到您的手机或将其用作私有热点等),您最终可能有两条通往同一子网的路由:一条位于出口接口(您连接到的实际网络)上,另一条位于 WireGuard(您的服务器所在的网络)上。这显然无法正常工作,并且是为服务器网络使用不太常见的 IP 范围的一个很好的理由。