我想连接两个设备,第一个是带有 ubuntu 的笔记本电脑(通过 wifi 连接到互联网),第二个是带有用 yocto 编译的 Linux 发行版的设备。这两个设备通过以太网电缆相互连接。我想要第二台设备上的互联网访问权限。在笔记本电脑上,我在 eth 接口上设置了静态 IP (192.168.3.254),并且我允许其他计算机使用 wifi 共享选项(对于 eth iface 也是如此)。在第二个设备中,我有以下等/网络/接口:
auto eth0
iface eth0 inet static
address 192.168.3.22
netmask 255.255.255.0
network 192.168.3.0
gateway 192.168.3.254
现在我可以启动 ssh 会话,但在第二台设备上唯一有效的 ping 是 192.168.3.254。我尝试 ping 8.8.8.8 或 1.1.1.1 但没有任何结果!我做错了什么?
答案1
有两种方法可以实现此目的。我不知道如何使用 GUI 来完成此操作,但这是 Ubuntu 上的标准方法。我将使用 Ubuntu 更高版本中附带的 UFW 和 netplan 工具作为示例。应在笔记本电脑上应用这些选项之一。
设置 NAT
您当前的设置不起作用的原因是您尚未设置 NAT 或网络地址转换。 NAT 负责在数据包进入和离开 NAT 网关时更改设备的 IP。无线路由器可以做到这一点,这就是设备拥有私有 IP 地址但仍然可以联系外部互联网的原因。
在 Ubuntu 中,由于内置 UFW 实用程序,设置 NAT 相当简单。在文件中/etc/ufw/sysctl.conf
,注释掉该行net.ipv4.ip_forward=1
。
另外,将此行设置为/etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
现在,在文件中/etc/ufw/before.rules
,在过滤规则之前添加以下行:
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o <WIRELESS INTERFACE> -j MASQUERADE
COMMIT
更改<WIRELESS INTERFACE>
为使用 找到的无线接口的名称ip link
。完成这些更改后,重新启动 ufw 以应用更改sudo systemctl restart ufw
,并通过运行来确保防火墙已启用sudo ufw enable
。
您当前在以太网接口上使用静态 IP 的配置将正常工作,并且您的辅助设备现在应该能够与外部联系。
设置桥
另一种选择是桥接以太网接口和无线接口,本质上将您的笔记本电脑变成网络交换机。如果您希望您的设备充当网络上的普通设备(就网络中的其他设备而言,这只是另一个无线客户端),这是最佳选择。您可以在文件/etc/netplan/01-netcfg.yaml
或/etc/netplan/50-cloud-init.yaml
.无论你有哪个文件。此示例假设 DHCP 是从您的无线接口提供的。如果不是,你可以找到netplan的其他例子这里。
network:
version: 2
renderer: networkd
ethernets:
<ETHERNET INTERFACE>:
dhcp4: no
<WIRELESS INTERFACE>:
dhcp4: no
bridges:
br0:
dhcp4: yes
interfaces:
- <ETHERNET INTERFACE>
- <WIRELESS INTERFACE>
更改为您的辅助设备所连接的接口。
然后,运行sudo netplan apply
以应用这些更改。如果运行ip a
可以确认桥接口br0
存在。现在,一旦您连接辅助设备并在该设备上启用 DHCP,它将从无线路由器获取 IP 地址,并像网络上的任何其他无线设备一样工作。
现在,桥接器是无线路由器的主要接口,这意味着,例如,如果您想在笔记本电脑上分配静态 IP,则需要在桥接器接口上分配它,而不是在无线接口上。
答案2
使用图形用户界面:
连接 > 有线连接 > IPv4 > 方法:共享到其他计算机
更多信息:https://askubuntu.com/questions/359856/share-wireless-internet-connection-through-ethernet
答案3
通过以太网与 Manjaro 共享 Fedora wifi 互联网。侏儒在两侧。一切都可以在 GUI 中完成。在服务器端(此处为 Fedora)选择“共享到其他计算机”,在客户端选择“自动”。
即使它是自动阅读详细信息,以便您快速了解发生了什么。特别是网关或 DNS 就是服务器。
网络掩码未在 GUI 中显示,可以使用 获取ifconfig
。
如果出现问题,请检查ping
then ssh
(允许在共享中远程登录,并且 manjaro 密码是 manjaro)。
如果 Mac 操作系统与 Linux 共享互联网,唯一要做的就是插上电缆。