我在树莓派上设置了 Wireguard VPN,我可以通过手机上的客户端应用程序连接到它。我可以通过手机访问互联网,并且我确认手机使用的 IP 与树莓派相同,因此 VPN 适用于外部互联网。
但是我的 Pi 上有一个本地网络服务器,我可以使用直接内部 IP(192.168.1.50)、使用 raspberrypi.local 主机名或使用 /etc/hosts 文件中定义的自定义主机在 pi 上访问它。
但是,在电话和 VPN 上,我只能通过内部 IP 访问本地网络服务器:raspberrypi.local 或 /etc/hosts 中定义的任何其他主机名均不起作用。
我该如何解决这个问题?
答案1
我通过安装 Pi-Hole、在那里设置本地主机并将其启用为所有客户端的 DNS 服务器间接解决了这个问题。现在我可以通过 VPN 访问我的家庭网络,使用本地主机名解析 + DNS 级别广告拦截的额外好处。
Pi-Hole 和 Wireguard VPN 相互配合得很好(Pi-Hole 检测到 Wireguard 并提出自行完成所有配置)。
答案2
当我直接连接到 LAN 时,我可以有一个主机名,将其解析为“hostname.local”。
当我通过 wireguard 连接时,我只能通过在主机名后面附加句点(或点)才能到达主机名:即“主机名”。
通过 wireguard 连接时:
ping hostname.local (doesn't work)
ping hostname. (works)
答案3
在我的家庭网络上,我的沃达丰路由器负责解析.local
(和.broadband
)主机名,这在家里是有效的,因为我的设备使用路由器作为其 DNS 服务器。
因此,为了让此功能在我的 Wireguard 客户端上运行,我只需在 Wireguard 设置中手动将 DNS 服务器设置为我的路由器的 IP 地址(DNS 服务器(Android 版)
rpi
使用 和 时,可以 ping 我的 Raspberry Pi(主机名为 )。rpi
虽然从我的手机连接时不起作用,但TLD 通常无法在 Android 上正确解析,所以这是意料之中的。rpi.
rpi.broadband
rpi.local
.local