我正在為學校開發一個項目,該項目使用透過乙太網路連接到 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