Совместное использование беспроводного соединения с портом проводного Ethernet

Вот и все. Если я подключусь к Интернету по wlan0, как я могу поделиться этим подключением с устройством, подключенным к моему проводному Ethernet-порту eth0?

3 ответа

Решение

У меня был MacMini под управлением Ubuntu 9.10, использующий беспроводное соединение для интернета. Затем я подключил свой Xbox360 к Ethernet-порту MacMini, чтобы использовать Xbox Live.

Это смехотворно легко. Просто щелкните правой кнопкой мыши на вашем сетевом менеджере и выберите "Редактировать соединения". Затем на вкладке "Проводной" вы можете использовать существующее проводное соединение (или создать новое, нажав кнопку "Добавить", назвать новое подключение "Общий сетевой порт" или что-то подобное), перейти на вкладку IPv4. и в "Методе" выберите "Общий для других компьютеров". Примените все и закройте окна диспетчера сети.

Теперь, когда вам нужно что-то подключить к этому порту Ethernet, вы можете поделиться своим подключением к Интернету через WIFI, просто щелкнув по диспетчеру сети и выбрав там запись "Общий сетевой порт".

Если вы хотите, чтобы это было постоянно используемое соединение Ethernet, используемое для обмена и ничего более, не стесняйтесь редактировать "Auto Eth0" вместо создания новой записи, как я описал выше. Однако создание новой записи дает вам некоторую свободу выбора.

Обратите внимание, что для правильной работы здесь используется немного волшебства NAT (трансляция сетевых адресов), поэтому Xbox360 (или что-то еще, что вы подключаете к своему проводному порту) получит фанк IP-адрес.

Из памяти он также сможет видеть только интернет - я не думаю, что вы можете видеть хост-компьютер, тот, который подключен к интернету. Вы можете настроить это, но я полагаю, что для этого нужно немного поработать с DHCP-серверами. Мне это не нужно, поэтому я не пошел по этой дороге.

Это просто. Щелкните правой кнопкой мыши на сетевом менеджере и выберите "Изменить подключения". На вкладке "Проводная" добавьте новое соединение. На вкладке "Настройка IPV4" выберите "Доступ к другим" в качестве метода.

Теперь другие машины должны подключаться к локальной сети и автоматически получать доступ к Интернету.

Обмен интернетом через Ethernet

На https://oracle-base.com/articles/linux/use-iptables-to-implement-packet-filtering-and-configure-nat есть простое руководство . Но я обнаружил, что в Windows DNS-адрес, который использует ПК с Linux, также должен быть указан в Windows.

У меня есть USB-модем 3G, подключенный к моему ПК с Linux, и от него у меня есть два ПК с Windows, которые получают доступ в Интернет. Это называется (ядро) пересылка пакетов, и это довольно просто и быстро сделать - когда вы наконец это поймете.

Вам нужно будет узнать имена ваших сетевых интерфейсов, выполнив команду «ifconfig» в Linux (в терминале) и «ipconfig» в Windows (в командной строке). Имена интерфейсов в Linux находятся слева, например: enp2s0, enp3s0, enp0s18f2u6, lo. Теперь вы настроили упакованную пересылку:

  1. Сначала вам нужно включить пересылку пакетов на вашем ПК с Linux (см. руководство, ссылку на которое я дал с oracle-base.com).

  2. Затем вы можете запустить эти команды, как сказано в руководстве oracle-base.com (но подождите и читайте дальше):

    sudo iptables -I FORWARD -i my_lan_interface -o my_modem_interface -j ACCEPTsudo iptables -I FORWARD -i my_modem_interface -o my_lan_interface -j ACCEPTsudo iptables -t nat -I POSTROUTING -o my_modem_interface -j MASQUERADE

    Но есть более надежный способ, который я нашел в сети:

    sudo iptables -t nat -A POSTROUTING -o my_modem_interface -j MASQUERADE --randomsudo iptables -A FORWARD -i my_lan_interface -o my_modem_interface -j ACCEPTsudo iptables -A FORWARD -i my_modem_interface -o my_lan_interface -m conntrack --ctstate СВЯЗАННЫЕ, УСТАНОВЛЕНО -j ПРИНЯТЬ sudo iptables -A FORWARD -j DROP

    Вот объяснение приведенных выше команд («более надежный» пример) в том же порядке:

    • Первая команда: включить маскировку на my_modem_interface, чтобы адрес источника перезаписывался в исходящих пакетах. Флаг --random должен иметь симметричный NAT.

    Теперь приступим к настройке правил переадресации. iptables по умолчанию будет безоговорочно пересылать весь трафик. Здесь мы предпочитаем ограничивать входящий трафик из Интернета и разрешать весь исходящий:

    • Вторая команда: разрешить трафик с my_lan_interface на my_modem_interface.
    • Третья команда: Разрешить возврат трафика с my_modem_interface на my_lan_interface.
    • Четвертая команда: отбросить весь остальной трафик, который не следует пересылать.

    Когда вы перезагрузите компьютер с Linux, вам придется повторно вводить эти команды — у меня есть сценарий, который запускает их при каждой загрузке. Вы можете сделать эти изменения постоянными с помощью соответствующего «сервисного» вызова (опять же, см. приведенное выше руководство по oracle-base.com), но я рекомендую запускать их при каждой загрузке (в сценарии), так как вы, возможно, захотите поэкспериментировать и изменить вещи, и отменить то, что вы сохранили, является еще одной проблемой. Если что-то пойдет не так, или вы хотите что-то изменить, или вам просто не нужна эта функция для вашего текущего сеанса (или вообще), то просто перезагрузите компьютер, и они исчезнут, но вы должны самостоятельно отключить переадресацию пакетов ( перед перезагрузкой пропишите «net.ipv4.ip_forward=0» в /etc/sysctl.conf), чтобы полностью отключить эту технологию.

  3. Теперь вам нужно создать сетевое соединение (Ethernet-соединение) между вашим ПК с Linux и другими компьютерами. Например:

    • A) На ПК с Linux, подключенном к Интернету (я использую Fedora), с помощью диспетчера сетевых подключений я создаю соединение Ethernet, выбираю соответствующий интерфейс (имя сетевой карты, в моем случае enp3s0), который будет подключать этот ПК с Linux к моему ЛВС. Обязательно выберите правильную зону брандмауэра, иначе ваша локальная сеть не получит доступ в Интернет. Итак, поскольку это ваш внутренний интерфейс локальной сети, установите зону брандмауэра как «доверенную», но интерфейс подключения модема должен быть установлен как «общедоступный». Далее на вкладке настроек IPv4 установите, что для подключения должен использоваться IPv4 (IPv6 можно игнорировать), и выберите настройку адреса вручную. Теперь добавьте адрес 192.168.2.100 — это будет адрес этого ПК с Linux в вашей локальной сети. Сетевая маска будет установлена ​​автоматически (255.255.255.0, потому что это адрес "C-класса" (частный)). Примените настройки и подключитесь.

    • Б) На втором ПК (с Linux или Windows, подключенном кабелем Ethernet к первому выше) также создайте сетевое подключение (если это Windows, подробнее см. ниже), выберите соответствующий сетевой интерфейс (устройство/карту который подключается к первому ПК), используйте ручную настройку IPv4, как указано выше, для первого ПК, но здесь установите адрес 192.168.2.101 — это будет адрес этого второго ПК в вашей локальной сети (это «частные» адреса, что означает что они не будут видны за пределами вашей локальной сети).

    • B1) Если вы хотите подключить Windows (операционную систему), перейдите в «Центр управления сетями и общим доступом» -> «Изменить настройки адаптера» и найдите свой сетевой интерфейс, соответствующий вашей сетевой карте LAN на этом ПК с Windows, который также подключен кабелем Ethernet к первому ПК. Теперь выберите этот интерфейс, щелкните правой кнопкой мыши «Свойства». Вы увидите список. Здесь снимите флажок «Интернет-протокол версии 6» и дважды щелкните «Интернет-протокол версии 4». Теперь вы вводите адрес 192.168.2.101 - это будет адрес этого ПК с Windows на этом интерфейсе (на этом соединении [LAN/Ethernet])). Вкладка вниз, чтобы сетевая маска заполнялась автоматически (255.255.255.0). («Сетевой профиль» может быть установлен как «общедоступный».)

    • B2) Может потребоваться установить адрес шлюза для первого ПК с Linux, поэтому вам нужно будет ввести адрес шлюза 192.168.2.100.

    • C) Теперь вы должны ввести адрес DNS, который использует ваш первый ПК с Linux. Например, мой модем использует DNS-адрес 192.168.1.1 (который я могу найти с помощью команды «nmcli device show | grep IP4.DNS», где interfacename — это имя вашего интерфейса Linux, подключенного к Интернету). (Если вы подключаетесь к Интернету с помощью Windows, запустите «ipconfig» в терминале/командной строке, найдите DNS-адрес). Вот и все. Информация DNS имеет решающее значение для подключения к Интернету.

Итак, если коротко:

Адрес моего модема: 192.168.1.100, DNS 192.168.1.1.

Адрес ПК с Linux в локальной сети: 192.168.2.100, включена переадресация пакетов с перенаправлением трафика iptables, как описано выше, зона брандмауэра настроена как «доверенная».

Адрес ПК с Windows 1: 192.168.2.101 с DNS, установленным на 192.168.1.1, общедоступным сетевым профилем. (Шлюз по умолчанию установлен на ПК с Linux: 192.168.2.100).

Адрес Windows PC 2: 192.168.2.102 с DNS, установленным на 192.168.1.1, общедоступным сетевым профилем. (Шлюз по умолчанию установлен на ПК с Linux: 192.168.2.100).

(Все компьютеры, соединенные вместе простым Ethernet-коммутатором с обычными Ethernet-кабелями (также называемыми «патч-кабелями» или «патч-кордами»), не пересекающимися, потому что «современные» сетевые карты сами выполняют пересечение, поэтому вы можете использовать перекрестные кабели или не пересекать кабели, даже смешивать их вместе в соединении.)

Также есть руководство по адресу: https://medium.com/@TarunChinmai/sharing-internet-connection-from-a-linux-machine-over-ethernet-a5cbbd775a4f , в котором вместо этого используются DNS-адреса Google. Проверьте это.

Другие вопросы по тегам