编辑-问题的更简洁版本:
使用连接共享时,我希望网络管理器使用 192.168.254 子网而不是 10.42.0 子网。这可能吗?
背景:
我需要与通过以太网连接到笔记本电脑的 RasPi 共享我的无线互联网连接(在 Ubuntu 笔记本电脑上)。
通过将 eth0 配置为“共享给其他计算机”,一切工作正常(在许多地方都有记录,例如这里)。
使用此设置,连接到 RasPi 时我的 IP 地址是10.42.0.1
。RasPi 会在该子网中获取另一个地址。一切正常!
由于 RasPi 的配置方式(与其他几个系统配合使用),我想eth0
使用192.168.254.1
。如果我将 eth0 配置为手动使用192.168.254.1
:
RasPi 连接到我的笔记本电脑,我能够ssh
进入。但是,虽然wlan0
在运行 时我仍然看到有效配置ifconfig
,但我无法访问互联网(大概是我的笔记本电脑试图使用eth0
而不是wlan0
)。
我正在寻找一种方法来:
a)wlan0
手动配置 eth0 时仍可用于访问互联网
b)eth0
配置“共享给其他计算机”时强制使用特定 IP 地址
我正在尝试为其他用户设置简单的说明,因此如果可能的话,我想避免任何手动iptables-type
设置。
答案1
在 1.4.2、10.42.0.x 之前的版本中被硬编码到 NetworkManager 中。忘记基于 GUI 的解决方案,或者等到错误/功能请求修复。或者自己为我们所有人修复它。或者至少在启动板上投票解决错误,以便更快地解决问题。
升级到 Ubuntu 17.04(版本 1.4.4),或者使用以下命令托马斯·哈勒设置主机IP和类别。
nmcli connection modify $CONNECTION_ID +ipv4.addresses 192.168.5.1/24
其中$CONNECTION_ID
,如果通过 找到nmcli connection show
。然后,使用 进行验证nmcli connection show $CONNECTION_ID
。
答案2
您的配置存在根本问题。您的网关设置为与本地 IP 地址相同的 IP 地址。
图形:Raspi:连接到 10.0.0.5 Raspi:不在我的子网中,发送到网关 Raspi 再次接收请求并使用相同的消息进行响应。
您的问题有点令人困惑,但看起来您的笔记本电脑应该有一个像 192.168.254.2 这样的 IP
您还需要在笔记本电脑上设置网络地址转换。
我认为最好将两个接口桥接起来,这样 raspi 就可以有效地使用笔记本电脑的 wifi 进行通信。在笔记本电脑上执行以下操作:
sudo -i
这会让你生根。
apt-get update
apt-get install bridge-utils
brctl addbr br0
brctl addif br0 wlan0
brctl addif br0 eth0
ifconfig br0 10.42.0.1
ifconfig br0 netmask 255.0.0.0
ifconfig br0 up
Ctrl-D 退出 root 权限
在 raspi 上(连接到 eth0):
sudo ifconfig eth0 10.42.0.2
sudo ifconfig eth0 netmask 255.0.0.0
sudo ifconfig eth0 up
echo 'nameserver 8.8.8.8'>/etc/resolv.conf
ping 10.42.0.1
ping 8.8.8.8
ping fb.com
最后三个命令将显示您拥有的网络访问类型:
- 如果只有第一个通过:本地网络
- 如果达到第二关:互联网访问
- 如果全部通过:使用 DNS 访问互联网