Как объединить в сеть два компьютера Ubuntu, используя Ethernet (без маршрутизатора)?

65

Как соединить два компьютера с Ubuntu, чтобы они могли «видеть» друг друга по IP-адресу?

8128
источник
6
Каковы ваши требования? Вы используете роутер?
nixnotwin
1
что именно вы хотите, будьте более ясны, пожалуйста, отредактируйте свой вопрос :)
aziz joh
1
У вас есть кроссовер кабель? en.wikipedia.org/wiki/Ethernet_crossover_cable
Брэндон Бертельсен,

Ответы:

49

Если вы используете два компьютера без маршрутизатора для их подключения. Для физического подключения компьютеров вам понадобится коммутатор, концентратор или перекрестный кабель (*). Затем вам нужно вручную назначить IP-адрес в том же диапазоне.

В Ubuntu это просто. щелкните правой кнопкой мыши по апплету менеджера сети в разделе «Вам нужно сделать это на обоих компьютерах».

  1. редактировать соединения
    • проводная вкладка
      • Добавлять
  2. укажите mac-адрес интерфейса, который вы будете настраивать. Команда ifconfig может показать вам MAC-адрес:

    $ ifconfig  
    eth0      Link encap:Ethernet  HWaddr 00:30:1b:b9:53:94 
    

    2.1. В более новой версии Linux имена сетевых карт изменились. wlp2s0, enp1s0. Ищите кое-что с похожими именами, чтобы enбыть Ethernet / wlбыть беспроводным.

    $ ip a l
    2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 98:e7:f4:5d:59:90 brd ff:ff:ff:ff:ff:ff
    3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 84:ef:18:7b:cd:39 brd ff:ff:ff:ff:ff:ff
    

HWaddr 00:30:1b:b9:53:94= MAC-адрес link/ether 84:ef:18:7b:cd:39= Mac-адрес

  1. Затем перейдите на вкладку настроек ipv4. установить метод на ручной.
  2. нажмите кнопку «Добавить», чтобы добавить IP-адрес на компьютер A и B.

пример для компьютера А

address  | netmask       | gateway   
10.0.0.1 | 255.255.255.0 |  

пример для компьютера B

address  | netmask       | gateway   
10.0.0.2 | 255.255.255.0 | 

посмотрите, можете ли вы пинговать друг друга
с компьютера А.

$ ping 10.0.0.2  
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=128 time=0.457 ms

с компьютера Б.

$ ping 10.0.0.1  
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=128 time=0.457 ms

значит все работает.

(*) Большинство современных компьютеров могут использовать обычный кабель вместо кроссовера. Некоторым старым компьютерам потребуется перекрестный кабель

nelaaro
источник
Я нашел это более надежным, чем метод командной строки
8128
1
Вам абсолютно необходим перекрестный кабель?
Seanny123
6
Я думаю, что большинство современных сетевых карт достаточно умны, чтобы определить, используется ли перекрестный кабель или нет. en.wikipedia.org/wiki/Medium_dependent_interface
Seanny123
2
Ответ с использованием «общего» метода в NetworkManager по адресу askubuntu.com/a/3117/6130 намного проще, не требует настройки на одном из компьютеров и позволяет одному из компьютеров совместно использовать подключение к Интернету. Это то же самое, что говорит @Robert Ancell в своем ответе здесь.
nealmcb
2
Имеет ли значение, с какого компьютера я это делаю? Могу ли я настроить все это на одном компьютере или мне нужно выполнить этот процесс дважды на каждой машине?
Мэтт Корби
29

пример командной строки, потому что это так быстро и просто.

В более новой версии Linux имена сетевых карт изменились. wlp2s0, enp1s0. Ищите что-то с похожими именами, чтобы enбыть Ethernet / wlбыть беспроводным.

$ ip a l
2: enp1s0: 
3: wlp2s0: 

Вам нужно обновить приведенную ниже команду, чтобы использовать разные dev enp1s0и т. Д.

На компьютере А

sudo ip ad add 10.0.0.10/24 dev eth0

На компьютере B

sudo ip ad add 10.0.0.20/24 dev eth0

Чтобы проверить от А до Б

пинг 10.0.0.20

Чтобы проверить от B до A

пинг 10.0.0.10

При условии, что кабель соединяет два компьютера, и сетевой интерфейс на обоих из них включен и называется eth0, это должно работать. Остальная часть этого поста поможет решить проблему, если возникнут проблемы.

10.0.0.xx - это IP-адрес компьютеров. / 24 сообщает компьютерам, что последние 8 бит 32-битного IP-адреса могут измениться. Это похоже на высказывание сетевой маски 255.255.255.0. Это устанавливает маршруты, доступные компьютеру / сети.

вы должны увидеть что-то похожее на это, используя

ip route
10.0.0.0/24 dev eth0 прото ядро ​​ссылка на область src 10.0.0.20

Если вы не видите ничего подобного выше в таблице маршрутов, но видите что-то подобное при использовании ip ad. Вам нужно снова добавить адрес, используя синтаксис подсети / 24.

ip ad
inet 172.16.1.40/32 scope global eth0

Обратите внимание на / 32, который фактически говорит, что это единственный компьютер, который существует в сети из одного компьютера. Который сам по себе. Маска сети 255.255.255.255. Отсюда никаких маршрутов и сеть не работает.

Чтобы узнать, какие сетевые интерфейсы у вас есть, а какие работают

# ip ad
1: lo: mtu 16436 qdisc noqueue 
    link / loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00
    инет 127.0.0.1/8 хост хоста lo
    inet6 :: хозяин области видимости 1/128 
       valid_lft forever предпочитаемый_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
    ссылка / эфир 46: фд: 51: ф9: ф5: 2д брф фф: фф: фф: фф: фф: фф
    inet 172.16.0.186/24 brd 172.16.0.255 scope global eth0
    inet 172.16.1.10/24 scope global eth0
    inet 172.16.1.40/32 scope global eth0
    inet6 fe80 :: 44fd: 51ff: fef9: f52e / 64 ссылка области 
       valid_lft forever предпочитаемый_lft forever
3: eth1: mtu 1500 qdisc noop qlen 1000
    ссылка / эфир 72: 3f: 92: eb: a4: cc brd ff: ff: ff: ff: ff: ff

Если вам нужно удалить IP-адрес, потому что вы сделали ошибку

ip ad del 10.0.0.40/32 dev eth0 ip ad del 10.0.0.40/24 dev eth0

Это удалит маршруты, а также IP-адрес.

nelaaro
источник
Первоначально это работало, но казалось менее надежным, чем графический метод.
8128
3
Эта настройка не сохраняется. Это будет потеряно после перезагрузки. Это простой и быстрый способ установить рабочее сетевое соединение между двумя компьютерами.
nelaaro
Не работал на Ubuntu 14.04 между ThinkPad T430 и T400 с кабелем 26awg.
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件
Прекрасно работает при подключении компьютера с Ubuntu 17.04 (A) ко второй Linux-системе (B), которая не имеет клавиатуры или экрана. Прежде чем отключить B от сети, вставьте в него ssh и выполните команду «sudo ip ad add 10.0.0.20/24 dev eth0», как показано выше. Затем вы можете пойти дальше и использовать соединительный кабель для подключения B к A. Кроме того, в более новой версии Ubuntu используйте «ip ad», как показано выше, чтобы получить имя интерфейса (поскольку это не всегда eth0).
Пи Джей Сингх
28

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

На сервере нажмите индикатор сети и выберите Edit Connections. Выберите соединение Ethernet, затем нажмите Editкнопку. Перейдите на IPv4вкладку и измените Methodс Automatic (DHCP)на Shared to other computers.

Соедините два компьютера вместе, используя кабель Ethernet. Второй компьютер получит IP-адрес от сервера и получит доступ к Интернету.

Если у вас старое оборудование, вам может потребоваться убедиться, что кабель Ethernet является перекрестным. Современное оборудование автоматически делает кроссовер.

Проверено на Ubuntu 14.04 LTS.

Роберт Анселл
источник
1
Это также работает на Linux Mint 18, просто чтобы вы знали.
Скайлар Итнер
5

Ниже приведен повтор ответа Нелаара, обновленный для Ubuntu 14.04.

Требования к оборудованию

Для соединения двух компьютеров без маршрутизатора вам понадобится одно из следующих:

  • Стандартный кабель Ethernet, который должен работать с большинством современного оборудования, или
  • Кроссоверный кабель Ethernet вместо современного сетевого адаптера или
  • Простой концентратор Ethernet (и два кабеля Ethernet).

В Ubuntu 14.04 LTS

Вам нужно будет вручную назначить IP-адрес в том же диапазоне. Следующие шаги предполагают, что вы используете стандартный интерфейс Unity. Повторите эти шаги для каждого компьютера.

  1. Нажмите индикатор сети на панели Unity (вверху справа).
  2. В раскрывающемся списке выберите « Редактировать соединения».
  3. В диалоговом окне « Сетевые подключения » нажмите кнопку « Добавить» .
  4. Когда будет предложено выбрать тип подключения, выберите Ethernet и нажмите кнопку « Создать ...» .
  5. Назовите ваше соединение «Direct to [other hostname]», чтобы отличать его от обычного Ethernet-соединения.
  6. В раскрывающемся списке MAC-адрес устройства выберите адрес, соответствующий интерфейсу, который вы планируете использовать.
  7. Перейдите на вкладку « Настройки IPv4 ».
  8. Измените метод на ручной .
  9. нажмите кнопку Добавить , чтобы добавить IP-адрес.
    • Пример настроек для компьютера № 1:
      • Адрес: 10.0.0.1
      • Маска подсети: 255.255.255.0
      • Шлюз:
    • Пример настроек для компьютера № 2:
      • Адрес: 10.0.0.2
      • Маска подсети: 255.255.255.0
      • Шлюз:

Как только это настроено, и компьютеры соединены вместе, попробуйте пинговать друг друга.

user@computer1:~$ ping 10.0.0.2

Вывод должен выглядеть примерно так:

PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=128 time=0.457 ms
aaaantoine
источник
Вам не нужно вручную назначать IP-адреса, как показано в моем ответе.
Роберт Анселл,
2

Ваш вопрос не совсем краткий, я собираюсь предположить, что вы просто хотите 2 компьютера с Ubuntu в сети.

Соединить 2 компьютера с Ubuntu достаточно просто, достаточно подключить сетевой кабель (кросс-кабель Cat 5e) и подключить оба компьютера с помощью этого кабеля, и Ubuntu сможет подключить оба этих устройства к соединению « Auto Eth » (автоматический IP). Это должно быть примерно так, чтобы получить 2 компьютера с Ubuntu в сети.

Позже, если вы хотите увидеть автоматический IP-адрес, назначенный компьютеру, выполните команду ifconfigили щелкните правой кнопкой мыши на « апплете NetworkManager » и выберите информацию о соединении.

введите описание изображения здесь

Гаурав Бутола
источник
2
Я пробовал это, но соединение просто сходит с ума, пытаясь соединиться и каждый раз терпеть неудачу. В чем может быть проблема? Я установил метод IPv4 на «Общий доступ к другим компьютерам»
Severo Raz
0

По крайней мере, 16.04 вы можете легко это сделать, зайдя в настройки сети:

  1. Изменить проводное соединение
  2. Перейдите на вкладку IPv4
  3. Выберите Link-Local Only

Сделайте это на обоих компьютерах, и все готово.

Мануэль Гарсия
источник