在 Ubuntu 16.04 中同時連接 WiFi 和以太網

在 Ubuntu 16.04 中同時連接 WiFi 和以太網

我正在為學校開發一個項目,該項目使用透過乙太網路連接到 Raspberry Pi 的 Ubuntu 機器,無需網路連線(不需要)。我還需要透過 USB 無線適配器無線連接到單獨的本地網路。我對 Ubuntu 的經驗很少,並且不完全了解在我使用該系統之前進行了哪些設定。

Wifi 和乙太網路都是靜態的,有不同的 IP。兩種連接都可以正常工作,但只能其中之一。我需要無線連接,因為我正在嘗試將命令從 Android 發送到本地 Ubuntu 上的 Apache。

答案1

要多解釋一下這裡的評論,基本上你需要做的是

  • 連接到乙太網路和 wifi,您現在應該有 2 個介面顯示在ifconfig -a.

我們假設 wifi IP 是192.168.0.11,乙太網路 IP 是10.1.1.45。 Wifi 閘道是192.168.0.1乙太網路閘道是10.1.1.1

  • 現在您需要設定路由表以透過乙太網路發送一些流量,透過 WiFi 發送其餘流量。假設流量發送到幾個乙太網路內部子網路 - 所有10.0.0.0/8位址(出於某種奇怪的原因)149.9.1.0/24都應該通過以太網,而其他所有位址都可以透過 wifi

免責聲明 - 我沒有方便測試的 ubuntu 虛擬機,這些是我在 Mac 上用來執行相同操作的命令

$ route add 10.0.0.0/8 10.1.1.1
$ route add 149.9.1.0/24 10.1.1.1

netstat -rn將顯示路由表:

$ netstat -rn
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.0.0.0        10.1.1.1        255.0.0.0       UG        0 0          0 eth1
149.9.1.0       10.1.1.1        255.255.255.0   UG        0 0          0 eth1
0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 eth0
169.254.169.254 0.0.0.0         255.255.255.255 UH        0 0          0 eth0
192.168.0.1     0.0.0.0         255.255.0.0     U         0 0          0 eth0

您可能需要修改介面的順序才能使其正常運作。netstat並將ip成為您在這裡的朋友。

答案2

雖然這個問題與 Ubuntu 16.04 有關,但我使用的是 20.04.1,並且我想發布一個在 Raspberry Pi 4(帶有 Ubuntu Server 64 位元)上使用的工作解決方案。因此,我提供 netplan 文件而不做進一步解釋。

network:
  ethernets:
      eth0:
        addresses: [192.168.1.4/24]
        gateway4: 192.168.1.2
        nameservers:
            addresses:
            - 192.168.1.2              # private IP for ns1
#           - 192.168.1.4              # private IP for ns2 (work in progress)
#            search: [ <your domain> ] # DNS zone           (work in progress)
        dhcp4: no                      # static IP assignment
# version: 2 (not sure this is required)

  wifis:
      wlan0:   # use ls /sys/class/net to determine this value
        addresses: [10.0.2.2/24]
        gateway4: 10.0.2.1
        nameservers:
            addresses:
            - 10.0.2.2            # local host is ns1
        access-points:
            "<your SSID>":
            password: "<your password>"
            dhcp4: no                 #static IP assignment

相關內容