Совместное использование (Wi-Fi) интернета через интерфейс Ethernet.

Вопрос или проблема

Я хочу подключить два устройства: первое — это ноутбук с 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 > Метод: Общий доступ для других компьютеров

enter image description here

Больше информации: 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).

  1. Перейдите в настройки и найдите вкладку Сеть

  2. Вверху раздел Проводной должен быть пустым. Нажмите кнопку добавить, расположенную слева

  3. Найдите вкладку IPv4 и выберите Общий доступ для других компьютеров. Нажмите Применить после завершения.
    enter image description here

После этого интерфейс 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).

Пример настройки:

  1. Откройте файл /etc/ufw/sysctl.conf и раскомментируйте строку:

    net.ipv4.ip_forward=1
  2. В файле /etc/default/ufw измените строку:

    DEFAULT_FORWARD_POLICY="ACCEPT"
  3. В /etc/ufw/before.rules добавьте до секции с правилами фильтрации следующие строки:

    *nat
    :POSTROUTING ACCEPT [0:0]
    -A POSTROUTING -o <ИМЯ_БЕСПРОВОДНОГО_ИНТЕРФЕЙСА> -j MASQUERADE
    COMMIT

    Замените <ИМЯ_БЕСПРОВОДНОГО_ИНТЕРФЕЙСА> на имя Wi-Fi интерфейса, которое можно узнать с помощью команды ip link.

  4. После внесения изменений перезапустите UFW и убедитесь, что он активирован:

    sudo systemctl restart ufw
    sudo ufw enable

Применение: После выполнения этих шагов второе устройство, подключенное через Ethernet, должно получить доступ к интернету. Это решение позволит вам использовать статическую IP-конфигурацию, как указано в вашей текущей настройке.

Настройка Моста (Bridge)

Теория: Создание сетевого моста позволяет связать Wi-Fi и Ethernet интерфейсы, чтобы второе устройство работало как обычный клиент в беспроводной сети, получая IP-адрес по DHCP. Это особенно удобно, если у вас есть DHCP-сервер (например, в том же маршрутизаторе).

Пример настройки:

  1. Отредактируйте файл /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>
  2. Замените <ETHERNET_INTERFACE> и <WIRELESS_INTERFACE> на соответствующие имена интерфейсов. Это можно узнать командой ip link.

  3. Примените изменения командой:

    sudo netplan apply

Применение: Теперь второе устройство может получать IP-адрес по DHCP. Мостовой интерфейс заменяет прежний прямой доступ к сети, и настройки статического IP должны быть применены именно к мостовому интерфейсу (br0).

Оба метода позволяют вам реализовать соединение с интернетом для нескольких устройств через одно подключение Wi-Fi на ноутбуке. Выбор метода зависит от ваших предпочтений в управлении сетью и требований к конфигурации устройств.

Оцените материал
Добавить комментарий

Капча загружается...