«Трубный» сигнал Wi-Fi через кабель Ethernet

8

В настоящее время порты Ethernet в здании, в котором я работаю, отключены, но Wi-Fi работает. У меня есть ноутбук с поддержкой Wi-Fi ( Ubuntu 14.04 LTS (Trusty Tahr)) и рабочая станция без поддержки Wi-Fi ( Debian 8 (Jessie)) только с разъемом Ethernet.

Можно ли соединить их через кабель Ethernet и получить сетевое соединение на рабочей станции?

mbiokyle
источник
Сомнительно, но вы можете подключить кабель Ethernet непосредственно к вашему маршрутизатору ..
ryekayo
Смотрите этот вопрос на askubuntu - askubuntu.com/questions/359856/… . Это предполагает, что, по крайней мере, один из сетевых портов является автоопределением (или у вас есть перекрестный кабель).
Энди С

Ответы:

9

Да, вы можете сделать это, и это не так сложно. У меня есть ноутбук с беспроводной картой и порт Ethernet. Я подключил к нему RapberryPi под управлением Arch Linux через «перекрестный» кабель Ethernet. Это одна особая вещь, которая может вам понадобиться - не все сетевые карты могут выполнять прямое соединение между компьютерами.

Другая сложная часть - это IP-адресация. Лучше всего это проиллюстрировать. Вот мой маленький сценарий настройки. Опять же, enp9s0 - это порт Ethernet ноутбука, а wlp12s0 - беспроводное устройство ноутбука.

#!/bin/bash
/usr/bin/ip link set dev enp9s0 up
/usr/bin/ip addr add 172.16.1.1/24 dev enp9s0
sleep 10

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE
iptables -A FORWARD -o enp9s0 -i wlp12s0 -s 172.16.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

dhcpd -cf /etc/dhcpd.enp9s0.conf enp9s0

Сценарий устанавливает статический IP-адрес для сетевой карты 172.16.1.1, затем устанавливает NAT путем загрузки модуля ядра. Он включает IP-маршрутизацию (на ноутбуке), а затем совершает некоторую iptablesполу-магию для получения пакетов, маршрутизируемых с беспроводной карты через Ethernet, и наоборот.

Я dhcpdиспользую порт Ethernet для выдачи IP-адресов, потому что этого хочет Raspberry Pi, но вы можете сделать статический адрес на своей рабочей станции вместе со статической маршрутизацией, DNS-сервером и NTP-сервером.

Файл /etc/dhcpd.enp9s0.confвыглядит так, на случай, если вы пойдете по этому пути:

option domain-name "subnet";
option domain-name-servers 10.0.0.3;
option routers 172.16.1.1;
option ntp-servers 10.0.0.3;
default-lease-time 14440;
ddns-update-style none;
deny bootp;
shared-network intranet {
        subnet 172.16.1.0 netmask 255.255.255.0 {
                option subnet-mask 255.255.255.0;
                pool { range 172.16.1.50 172.16.1.200; }
        }
}

Выбор IP-адреса довольно важен. Я использовал 172.16.1.0/24 для кабеля Ethernet, выходящего из ноутбука. Беспроводная карта на ноутбуке заканчивается 192.161.1.0/24. Вам нужно посмотреть, какой IP-адрес имеет беспроводная сеть ноутбука, и выбрать другую подсеть для карты Ethernet. Кроме того, вам нужно выбрать одну из «богонных» или «не маршрутизируемых» сетей. В моем примере 172.16.1.0/24 относится к официальным не маршрутизируемым диапазонам IP-адресов, как и 192.168.1.0/24, как и адрес 10.0.0.3 dhcpd.enp9s0.confдля DNS-сервера и NTP-сервера. Вам придется использовать свою голову, чтобы выяснить, что подходит для вашей установки.

Брюс Эдигер
источник
PS: проще просить прощения, чем получать разрешение. Просто сделай это.
Брюс Эдигер
Это отличный ответ. Я буду работать над этим. Спасибо!
mbiokyle
0

Является ли это возможным? Абсолютно. Все, что вам нужно сделать, - это настроить IP-переадресацию, маршрутизацию или какой-либо другой (простой) способ перемещения пакетов из порта Ethernet на ноутбуке в WiFi на ноутбуке и наоборот. Это хорошая идея? Вероятно, нет - ваши сетевые администраторы могут вас немного расстроить.

Джон
источник
0

В википедии, если один из портов Ethernet является гигабитным, обычный кабель будет работать, нет необходимости в перекрестном соединении, у меня есть гигабит с обеих сторон, и обычный кабель работает.

Вопрос задан в 2016 году, поэтому я предполагаю, что сетевой менеджер работает на обеих машинах Linux, вы можете использовать его графический интерфейс для настройки ip-s, если вы, вероятно, не сделали пользовательскую настройку и знаете, как настроить ip из командной строки, поэтому Я опускаю эти детали.

После подключения по кабелю вы получите имена сетевых интерфейсов в графическом интерфейсе, относящиеся к Ethernet на ноутбуке и рабочей станции.

Предполагая, что вам не нужно периодически подключать рабочую станцию ​​(и / или ноутбук через Ethernet) к другому сетевому оборудованию, вы можете настроить статический IP на обоих для интерфейсов Ethernet.

Установите статический IP-адрес не в той же подсети, что и для Wi-Fi, например, если Wi-Fi равен 192.168.1.0/16, установлен на 192.168.2.1 и 192.168.2.2, маска подсети равна 255.255.255.0, так как отличается только последний «номер» IP DNS для рабочей станции должен быть настроен на тот же IP-адрес DNS, что и для Wi-Fi на ноутбуке, чтобы можно было использовать DNS (открытые сайты по имени, а не только IP) на рабочей станции.

Вам необходимо включить IP-пересылку на ноутбуке:

sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

Так как очень вероятно, что сетевой менеджер на ноутбуке считает Ethernet более высокого качества, чем Wi-Fi, он попытается отправить все на него по умолчанию, и вы потеряете интернет после настройки Ethernet. Чтобы вернуться к использованию Wi-Fi, на ноутбуке вам нужно в разделе [ipv4] файла, касающегося подключения к Ethernet (имя, которое вы видите в графическом интерфейсе администратора сети для Ethernet) в /etc/NetworkManager/строке добавления местоположения

never-default=true

(если в вашем графическом интерфейсе есть что-то вроде «Использовать только для ресурсов в этом соединении», флажок для Ethernet - по моему, это в разделе свойств соединения ip4, вы можете использовать его вместо этого).

И, наконец, при условии, что правила IP-таблиц по-прежнему остаются по умолчанию, ПРИНИМАЮТ все, ваши пакеты с рабочей станции будут отправляться в Интернет, но не найдут пути обратно только для ноутбука, пока вы не настроите правило NAT на ноутбуке одной командой (где eth0 должно быть именем вашего Wi-Fi соединения вы можете узнать по имени sudo ifconfig):

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Если после этого не работает попробуйте перезапустить сетевой менеджер:

sudo service network-manager restart

Вы должны быть все готово.

Алексей Мартианов
источник