了解 WiFi 路由和网关

了解 WiFi 路由和网关

解决方案被解释这里

问题

我的 Raspberry Pi 上有 3 个接口 eth0、wlan0、wlan1(2 个 wifi USB 加密狗)。

  • wlan1 将用于通过 SSDP 连接到 WiFi 摄像头。
  • wlan0 将用于与服务器建立 TCP 连接(已知 IP/域名)。我对 wlan0 通过 DHCP 连接的 WiFi 一无所知。它可能时不时发生变化。它尤其不知道网关。
  • eth0 将用于调试 SSH 访问,例如通过我的 MacBook Air 连接共享服务。

实际上,所有这些接口都在工作。以下是 ifconfig 输出(wlan1 和 eth0 位于同一网络上,但将来不会如此):

eth0      Link encap:Ethernet  HWaddr b8:27:eb:8c:e2:10  
          inet addr:192.168.0.19  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1174 errors:0 dropped:0 overruns:0 frame:0
          TX packets:141 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:93616 (91.4 KiB)  TX bytes:12342 (12.0 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr c0:4a:00:2a:ab:6c  
          inet addr:192.168.43.44  Bcast:192.168.43.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1142 (1.1 KiB)  TX bytes:1145 (1.1 KiB)

wlan1     Link encap:Ethernet  HWaddr 74:da:38:0c:c6:f0  
          inet addr:192.168.0.14  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1480 errors:0 dropped:0 overruns:0 frame:0
          TX packets:155 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:222449 (217.2 KiB)  TX bytes:29711 (29.0 KiB)

以下是 sudo route -n 的输出:

0.0.0.0         192.168.0.254   0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.43.0    0.0.0.0         255.255.255.0   U     0      0        0 wlan0

如果我理解了过去 24 小时所读的内容,我需要做路由工作。但我不明白做什么以及如何做。我必须更改默认路由吗?如果是,我该如何做到这一点,因为在连接到网络之前我不知道 wlan0 或 wlan1 网关?这是一个不可能解决的问题吗?

编辑:添加 /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
        post-up route del default dev wlan0

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
        wpa-ssid "wifi1"
        wpa-psk "psw1"

auto wlan1
allow-hotplug wlan1
iface wlan1 inet dhcp
        wpa-ssid "wifi2"
        wpa-psk "pwd2"

答案1

您可以查看位于 /etc/network/interfaces 的文件以找到默认网关。它可能是 192.168.0.1,但我不确定。网关只是您的路由器的地址。

输入“cat /etc/network/interfaces”查看信息。如果要更改,请使用 root 权限(sudo)进行编辑。

尝试这个:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    # post-up route del default dev wlan0
    address 192.168.0.19
    netmask 255.255.255.0
    gateway 192.168.0.1

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
    wpa-ssid "wifi1"
    wpa-psk "psw1"
    address 192.168.43.44
    netmask 255.255.255.0
    gateway 192.168.0.1

auto wlan1
allow-hotplug wlan1
iface wlan1 inet static
    wpa-ssid "wifi2"
    wpa-psk "pwd2"
    address 192.168.0.14
    netmask 255.255.255.0
    gateway 192.168.0.1

备份您原来的 /etc/network/interfaces 文件并尝试这个。这会将所有内容设置为静态(不变)。您必须使用 ifdown/ifup 重新启动接口或只需重新启动计算机。

答案2

如果我很好地理解了过去 24 小时所读的内容,我就需要进行路由工作。

除非您想将系统设置为路由器。

默认网关是 Linux 发送流量的 IP,如果目标不在任何网络接口的子网掩码范围内。通常,这将是发往“Internet”的流量。

如果您不关心该系统是否可以访问互联网,那么您就不需要它,但您可能需要它来获取更新等。

DHCP 通常会分配一个默认网关和一个 IP 地址。因此,如果wlan0从 DHCP 获取 IP,则可能也会获取一个默认网关。(或者应该是,如果它没有分配 IP,则可能需要检查您的 DHCP 服务器。)因此,发往 Internet 的流量将通过该接口。

如果您不想使用 DHCP 或通过 DHCP 提供默认网关,您可以手动指定。它应该是可以转发到/从互联网的路由器的 IP 地址。

如果您只有一个默认网关,事情会进行得最顺利,因此请确保您的其他接口设置为静态 IP,并且只有一个接口通过 DHCP 获取某些东西。

答案3

经过几个小时的测试后我自己回答了这个问题......

这解释这里

相关内容