我正在为学校做一个项目,该项目使用一台通过以太网连接到 Raspberry Pi 的 Ubuntu 机器,无需互联网连接(无需连接)。我还需要无线连接到一个单独的本地网络,我正在使用 USB 无线适配器。我对 Ubuntu 的使用经验很少,也不完全清楚在我使用该系统之前进行了哪些设置。
Wifi 和以太网都是静态的,具有不同的 IP。两个连接都正常工作,但只能使用其中一个。我需要无线连接,因为我正在尝试从 Android 本地向 Ubuntu 上的 Apache 发送命令。
答案1
为了进一步解释这里的评论,基本上你需要做的是
- 连接到以太网和 wifi,现在您应该有 2 个接口显示
ifconfig -a
。
假设 wifi IP 为192.168.0.11
,以太网为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