【问题标题】:Routing HTTP through specific network interface通过特定网络接口路由 HTTP
【发布时间】:2020-06-11 20:56:14
【问题描述】:

我对 Linux 非常不熟悉,所以如果之前已经回答过,请原谅我,我已经阅读了很多答案,但我不确定它们是否真的与我的问题有关。

我有一个无头树莓派,它会自动连接到我手机的蓝牙,我的手机通过网络共享共享它的互联网访问。我使用这个初始且可靠的 SSH 连接到我的树莓派,并使用带有 VNC 查看器的桌面。

我想连接到使用强制门户的 WiFi 网络,但浏览器始终使用蓝牙连接,因此它永远不会将我重定向到门户页面。蓝牙连接只是为了能够使用桌面,所以我可以通过门户,然后我想断开蓝牙或不使用它,主要是因为它提供的低带宽。

我已将 wlan0 添加为 ifmetric 的优先接口,但没有奏效。

我在想通过 wlan0 接口强制所有 HTTP 连接可以解决问题,但可能有更简单的方法,请随时告诉我。

您能用“简单”的术语解释实现这一目标的最佳方法吗?

【问题讨论】:

    标签: linux networking routing raspberry-pi port


    【解决方案1】:

    当然,有多种解决方案。最简单的方法是确保只有一个正确的默认路由。

    有3种情况:

    1. 你只能通过蓝牙通过 ssh 连接
    2. 您已通过蓝牙和 wifi 连接,但尚未通过启动画面连接
    3. 你已经过了水花

    每个都需要不同的网络配置。

    在 1 中,您的网络配置可能是:

    • 一些 IP 地址(我们称之为 IP-bt)和网络掩码
    • 默认网关是您的手机

    使用route -n,您可以验证这一点。

    在 2 中,网络配置将取决于 wifi 网络,但一般来说,您的网络配置将是:

    • 你仍然有 IP-bt
    • 您将在 wifi 适配器上拥有一个新地址(我们称之为 IP-wifi)
    • 默认网关应该是wifi网络上的网关。

    当您使用route -n 验证这一点时,您可能仍会看到目的地为 0.0.0.0 的通往您手机的路线。您可以删除此路线。您的手机应该在直接连接的网络上,因此您的 ssh 会话不应中断。

    如果默认gw不在wifi网络上,您仍然可以删除将手机设置为默认gw的路由。

    3以下,默认gw必须在wifi网络上,不能在手机上。您仍然可以使用您的手机,因为它是直接连接的。

    在这种情况下需要注意的是,您的手机将充当 DHCP 服务器。这意味着您的 DHCP 租约偶尔会刷新,并且蓝牙默认路由可能会重新出现。断开蓝牙可以防止这种情况发生。

    第二种解决方案是使用ifmetric。不要让wlan0 成为一个较低的指标,而是让您的蓝牙成为一个更高的指标。再次使用route -n 验证指标是否符合您的要求。使用 traceroute 验证数据包的移动方式。

    第三个也是最复杂的选择是安装 Quagga 并配置正确的路由。

    【讨论】:

    • 谢谢。使用 ifmetric 我将 wlan0 设置为 0,将 bnep0 设置为 1,这是正确的吗?因为在使用我的浏览器时,我看不到启动页面。
    • 没有。将 wlan0 t0 设置为 100 并将 bnep0 设置为 150。不为零。
    最近更新 更多