Вопрос или проблема
Я хочу подключить два устройства: первое — это ноутбук с Ubuntu (подключен к интернету через Wi-Fi), а второе — устройство с дистрибутивом Linux, скомпилированным с помощью Yocto. Эти два устройства подключены друг к другу через Ethernet-кабель. Я хочу, чтобы у второго устройства был доступ к Интернету. На ноутбуке я установил статический IP на Ethernet-интерфейсе (192.168.3.254) и разрешил опцию общего доступа к Wi-Fi для других компьютеров (в том числе и для Ethernet-интерфейса). На втором устройстве у меня есть следующий файл etc/network/interfaces:
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-сессию, но единственный пинг, который работает на втором устройстве, это на 192.168.3.254. Я пробовал пинговать 8.8.8.8 или 1.1.1.1, но ничего! Что я делаю неправильно?
Есть два способа добиться этого. Я не уверен, как это сделать, используя графический интерфейс, но вот стандартный способ в Ubuntu. В качестве примера я буду использовать утилиты UFW и netplan, которые поставляются с последними версиями Ubuntu. Один из этих вариантов следует применить на ноутбуке.
Настройка NAT
Причина, по которой ваша текущая настройка не работает, заключается в том, что вы не настроили NAT (Network Address Translation). NAT отвечает за изменение IP-адреса устройства при входе и выходе пакетов через ваш NAT-шлюз. Беспроводной маршрутизатор делает это, и поэтому устройства имеют частные IP-адреса, но все же могут обращаться к внешнему интернету.
В Ubuntu настройка NAT достаточно проста благодаря встроенной утилите UFW. В файле /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-адресами на ethernet-интерфейсе будет хорошо работать, и ваше вторичное устройство теперь должно иметь возможность обращаться к внешнему миру.
Настройка моста
Другой вариант — объединить ваш Ethernet-интерфейс и беспроводной интерфейс, фактически превратив ваш ноутбук в сетевой коммутатор. Это лучший вариант, если вы хотите, чтобы ваше устройство действовало как нормальное устройство в вашей сети (с точки зрения других устройств в сети, оно является просто еще одним беспроводным клиентом). Вы можете настроить ваши интерфейсы в файле /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 на ноутбуке, например, вам нужно будет назначить его на интерфейсе моста, а не на беспроводном интерфейсе.
Используя графический интерфейс:
Подключения > Проводное соединение > IPv4 > Метод: Общий доступ для других компьютеров
Больше информации: https://askubuntu.com/questions/359856/share-wireless-internet-connection-through-ethernet
Совместный доступ к интернету Fedora через Manjaro через Ethernet. GNOME используется на обеих сторонах. Все можно сделать в графическом интерфейсе. На стороне сервера (здесь Fedora) выберите “Общий доступ для других компьютеров”, на стороне клиента “Автоматически”.
Хотя это автоматически, прочтите подробности, чтобы быстро понять, что происходит. В частности, шлюз или DNS просто является сервером.
Маска подсети не отображается в графическом интерфейсе, но ее можно получить с помощью ifconfig
.
В случае проблемы проверьте с помощью ping
, затем ssh
(разрешите удаленный вход в раздел “Общий доступ”, а пароль Manjaro – manjaro).
При использовании Mac OS для общего доступа к интернету с Linux единственное, что нужно сделать — это подключить кабель.
Извините, что запоздал с этим, но ту же цель можно достичь с помощью стандартного графического интерфейса Fedora (GNOME).
-
Перейдите в настройки и найдите вкладку Сеть
-
Вверху раздел Проводной должен быть пустым. Нажмите кнопку добавить, расположенную слева
-
Найдите вкладку IPv4 и выберите Общий доступ для других компьютеров. Нажмите Применить после завершения.
После этого интерфейс Ethernet должен предоставлять интернет другому устройству. В моем случае я использовал свой ноутбук как маршрутизатор для компьютера с Windows, и мне нужно было “принять” подключение с другой машины.
Замечание: Я также отключил IPv6 в соседней вкладке IPv4.
Также убедитесь, что проверьте ваш маршрут по умолчанию/IP-шлюз. Чтобы получить доступ к интернету с клиента, маршрут по умолчанию клиента должен быть установлен на 10.42.0.1. Команда ip route del all
используется для очистки всех маршрутов.
.
Ответ или решение
Для того чтобы обеспечить доступ к интернету для второго устройства через кабельное соединение с первым устройством (ноутбуком на Ubuntu, где интернет подключен через Wi-Fi), необходимо правильно настроить сетевые интерфейсы и маршрутизацию. Рассмотрим два основных метода: настройка NAT и создание моста.
Настройка NAT (Network Address Translation)
Теория: NAT позволяет трансформировать IP-адреса пакетов, что делает возможным доступ устройств с частными IP-адресами (например, 192.168.x.x) к внешним ресурсам в интернете. Обычно это настраивают на маршрутизаторах, однако это можно сделать и на ноутбуке с помощью правил UFW (Uncomplicated Firewall).
Пример настройки:
-
Откройте файл
/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 <ИМЯ_БЕСПРОВОДНОГО_ИНТЕРФЕЙСА> -j MASQUERADE COMMIT
Замените
<ИМЯ_БЕСПРОВОДНОГО_ИНТЕРФЕЙСА>
на имя Wi-Fi интерфейса, которое можно узнать с помощью командыip link
. -
После внесения изменений перезапустите UFW и убедитесь, что он активирован:
sudo systemctl restart ufw sudo ufw enable
Применение: После выполнения этих шагов второе устройство, подключенное через Ethernet, должно получить доступ к интернету. Это решение позволит вам использовать статическую IP-конфигурацию, как указано в вашей текущей настройке.
Настройка Моста (Bridge)
Теория: Создание сетевого моста позволяет связать Wi-Fi и Ethernet интерфейсы, чтобы второе устройство работало как обычный клиент в беспроводной сети, получая IP-адрес по DHCP. Это особенно удобно, если у вас есть DHCP-сервер (например, в том же маршрутизаторе).
Пример настройки:
-
Отредактируйте файл
/etc/netplan/01-netcfg.yaml
или/etc/netplan/50-cloud-init.yaml
:network: version: 2 renderer: networkd ethernets: <ETHERNET_INTERFACE>: dhcp4: no <WIRELESS_INTERFACE>: dhcp4: no bridges: br0: dhcp4: yes interfaces: - <ETHERNET_INTERFACE> - <WIRELESS_INTERFACE>
-
Замените
<ETHERNET_INTERFACE>
и<WIRELESS_INTERFACE>
на соответствующие имена интерфейсов. Это можно узнать командойip link
. -
Примените изменения командой:
sudo netplan apply
Применение: Теперь второе устройство может получать IP-адрес по DHCP. Мостовой интерфейс заменяет прежний прямой доступ к сети, и настройки статического IP должны быть применены именно к мостовому интерфейсу (br0
).
Оба метода позволяют вам реализовать соединение с интернетом для нескольких устройств через одно подключение Wi-Fi на ноутбуке. Выбор метода зависит от ваших предпочтений в управлении сетью и требований к конфигурации устройств.