วิธีการสร้างเครือข่ายคอมพิวเตอร์ Ubuntu สองเครื่องโดยใช้อีเธอร์เน็ต (ไม่มีเราเตอร์)


65

ฉันจะสร้างเครือข่ายคอมพิวเตอร์ Ubuntu สองเครื่องเพื่อให้พวกเขาสามารถ "เห็น" ซึ่งกันและกันที่ที่อยู่ IP ได้อย่างไร


6
คุณต้องการอะไรบ้าง? คุณใช้เราเตอร์หรือไม่?
nixnotwin

1
สิ่งที่คุณต้องการว่าจะมีความชัดเจนมากขึ้นโปรดแก้ไขคำถามของคุณ :)
aziz โจ้

1
คุณมีสายครอสโอเวอร์หรือไม่? en.wikipedia.org/wiki/Ethernet_crossover_cable
Brandon Bertelsen

คำตอบ:


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อีเธอร์เน็ต / 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= ที่อยู่ link/ether 84:ef:18:7b:cd:39mac = ที่อยู่ mac

  1. จากนั้นคลิกแท็บการตั้งค่า ipv4 ตั้งค่าวิธีการด้วยตนเอง
  2. คลิกเพิ่มเพื่อเพิ่มที่อยู่ IP ในคอมพิวเตอร์ A และ B

ตัวอย่างสำหรับคอมพิวเตอร์ A

address  | netmask       | gateway   
10.0.0.1 | 255.255.255.0 |  

ตัวอย่างสำหรับคอมพิวเตอร์ B

address  | netmask       | gateway   
10.0.0.2 | 255.255.255.0 | 

ดูว่าคุณสามารถ ping ซึ่งกันและกัน
จากคอมพิวเตอร์ A.

$ 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

จากคอมพิวเตอร์ B.

$ 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

หมายความว่าทุกอย่างทำงานได้

(*) คอมพิวเตอร์ที่ทันสมัยส่วนใหญ่สามารถใช้สายเคเบิลปกติแทนครอสโอเวอร์ คอมพิวเตอร์เก่าบางรุ่นจะต้องใช้สายเคเบิลแบบไขว้


ฉันพบสิ่งนี้น่าเชื่อถือกว่าวิธีบรรทัดคำสั่ง
8128

1
คุณจำเป็นต้องใช้สายเคเบิลแบบ cross-over หรือไม่?
Seanny123

6
ฉันคิดว่าการ์ดเครือข่ายที่ทันสมัยที่สุดฉลาดพอที่จะตรวจจับว่ามีการใช้สายเคเบิลแบบไขว้หรือไม่ en.wikipedia.org/wiki/Medium_d
พึ่งพา_interface

2
คำตอบที่ใช้วิธี "แชร์" ใน NetworkManager ที่askubuntu.com/a/3117/6130นั้นง่ายกว่ามากไม่ต้องมีการกำหนดค่าในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งและอนุญาตให้คอมพิวเตอร์เครื่องใดเครื่องหนึ่งแบ่งปันการเชื่อมต่ออินเทอร์เน็ต มันเหมือนกับสิ่งที่ @Rertert Ancell พูดในคำตอบของเขาที่นี่
nealmcb

2
คอมพิวเตอร์ใช้งานกับคอมพิวเตอร์เครื่องไหนดี? ฉันสามารถตั้งค่าทั้งหมดผ่านคอมพิวเตอร์เครื่องเดียวหรือฉันต้องทำกระบวนการนี้สองครั้งในแต่ละเครื่องหรือไม่
Matt Corby

29

ตัวอย่างบรรทัดคำสั่งทำให้รวดเร็วและง่าย

ใน Linux เวอร์ชั่นใหม่กว่าชื่อการ์ดเครือข่ายได้เปลี่ยนไป wlp2s0, enp1s0. มองหาบางสิ่งที่มีชื่อคล้ายกับenอีเธอร์เน็ต / wlไร้สาย

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

คุณจะต้องอัปเดตคำสั่งด้านล่างเพื่อใช้งานdev enp1s0อื่น ๆ

บนคอมพิวเตอร์ A

sudo ip ad เพิ่ม 10.0.0.10/24 dev eth0

บนคอมพิวเตอร์ B

sudo ip ad เพิ่ม 10.0.0.20/24 dev eth0

เพื่อทดสอบจาก A ถึง B

ping 10.0.0.20

เพื่อทดสอบจาก B ถึง A

ping 10.0.0.10

โดยมีเงื่อนไขว่าสายเคเบิลกำลังเชื่อมต่อคอมพิวเตอร์สองเครื่องและมีการเปิดใช้งานอินเทอร์เฟซเครือข่ายทั้งสองและเรียกว่า eth0 ซึ่งใช้งานได้ ส่วนที่เหลือของโพสต์นี้คือการช่วยในการแก้ไขปัญหาหากมีปัญหา

10.0.0.xx เป็นที่อยู่ IP ของคอมพิวเตอร์ / 24 บอกคอมพิวเตอร์ว่า 8 บิตสุดท้ายของที่อยู่ IP 32 บิตสามารถเปลี่ยนแปลงได้ มันคล้ายกับว่า netmask 255.255.255.0 การตั้งค่านี้จะกำหนดเส้นทางที่คอมพิวเตอร์ / เครือข่ายใช้งานได้

คุณควรเห็นบางสิ่งที่คล้ายคลึงกับสิ่งนี้โดยใช้

ip เส้นทาง
10.0.0.0/24 dev eth0 proto เคอร์เนลขอบเขตลิงก์ src 10.0.0.20

หากคุณไม่เห็นบางอย่างเช่นข้างต้นในตารางเส้นทาง แต่เห็นบางอย่างเช่นนี้เมื่อคุณใช้โฆษณาไอพี คุณต้องเพิ่มที่อยู่อีกครั้งโดยใช้ / 24 ซับเน็ตไวยากรณ์

ip ad
inet 172.16.1.40/32 ขอบเขต global eth0

สังเกตเห็น / 32 ที่บอกว่าเป็นเครื่องเดียวที่มีอยู่ในเครือข่ายของคอมพิวเตอร์เครื่องเดียว ซึ่งเป็นตัวของมันเอง มาสก์สุทธิ 255.255.255.255 ดังนั้นไม่มีเส้นทางและเครือข่ายไม่ทำงาน

หากต้องการค้นหาอินเทอร์เฟซเครือข่ายที่คุณมีและกำลังทำงาน

# ip ad
1: lo: mtu 16436 qdisc noqueue 
    ลิงก์ / วนรอบ 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00
    inet 127.0.0.1/8 ขอบเขตโฮสต์แท้จริง
    inet6 :: โฮสต์ขอบเขต 1/128 
       valid_lft ตลอดกาล Preferred_lft ตลอดกาล
2: eth0: mtu 1,500 qdisc pfifo_fast qlen 1,000
    ลิงค์ / อีเธอร์ 46: fd: 51: f9: f5: 2e brd ff: ff: ff: ff: ff: ff: ff
    inet 172.16.0.186/24 brd 172.16.0.255 ขอบเขต global eth0
    inet 172.16.1.10/24 ขอบเขต global eth0
    inet 172.16.1.40/32 ขอบเขต global eth0
    inet6 fe80 :: 44fd: 51ff: fef9: f52e / 64 การเชื่อมโยงขอบเขต 
       valid_lft ตลอดกาล Preferred_lft ตลอดกาล
3: eth1: mtu 1,500 qdisc noop qlen 1,000
    ลิงค์ / อีเธอร์ 72: 3f: 92: eb: a4: cc brd ff: 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


สิ่งนี้ใช้งานได้ในตอนแรก แต่ดูเหมือนจะเชื่อถือได้น้อยกว่าวิธีกราฟิก
8128

3
การตั้งค่านี้ไม่คงอยู่ มันจะหายไปหลังจากรีบูต มันเป็นวิธีที่ง่ายและรวดเร็วในการตั้งค่าการเชื่อมต่อเครือข่ายที่ใช้งานได้ระหว่างคอมพิวเตอร์สองเครื่อง
nelaaro

ไม่ทำงานบน Ubuntu 14.04 ระหว่าง ThinkPad T430 และ T400 ด้วยสาย 26awg
Ciro Santilli 事件改造中心法轮功六四事件

ใช้งานได้ดีในการเชื่อมต่อคอมพิวเตอร์ 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 เสมอ)
PJ Singh เมื่อ

28

เลือกคอมพิวเตอร์หนึ่งเครื่องเป็นเซิร์ฟเวอร์ หากคอมพิวเตอร์เครื่องหนึ่งมีการเชื่อมต่อกับอินเทอร์เน็ตให้ใช้สิ่งนั้นเป็นเซิร์ฟเวอร์

Edit Connectionsบนเซิร์ฟเวอร์คลิกตัวบ่งชี้เครือข่ายและการเลือก เลือกการเชื่อมต่อ Ethernet จากนั้นคลิกที่Editปุ่ม ไปที่IPv4แท็บและเปลี่ยนMethodจากการAutomatic (DHCP)Shared to other computers

เชื่อมต่อคอมพิวเตอร์สองเครื่องเข้าด้วยกันโดยใช้สายอีเธอร์เน็ต คอมพิวเตอร์เครื่องที่สองจะได้รับที่อยู่ IP จากเซิร์ฟเวอร์และเข้าถึงอินเทอร์เน็ต

หากคุณมีฮาร์ดแวร์เก่าคุณอาจต้องตรวจสอบให้แน่ใจว่าสายเคเบิลอีเธอร์เน็ตเป็นสายเคเบิลแบบไขว้ ฮาร์ดแวร์ที่ทันสมัยทำครอสโอเวอร์แบบอัตโนมัติ

ทดสอบบน Ubuntu 14.04 LTS


1
สิ่งนี้ใช้ได้กับ Linux Mint 18 เพียงเพื่อให้คุณรู้
Skylar Ittner

5

ด้านล่างเป็นคำตอบของ nelaar ที่อัปเดตแล้วสำหรับ Ubuntu 14.04

ข้อกำหนดด้านฮาร์ดแวร์

ในการเชื่อมต่อคอมพิวเตอร์สองเครื่องโดยไม่มีเราเตอร์คุณจะต้องใช้หนึ่งในสิ่งต่อไปนี้:

  • สายเคเบิลอีเธอร์เน็ตมาตรฐานซึ่งควรทำงานกับฮาร์ดแวร์ที่ทันสมัยที่สุดหรือ
  • สายเคเบิลอีเธอร์เน็ตแบบไขว้แทน NIC ที่ทันสมัยหรือ
  • ฮับอีเธอร์เน็ตที่เรียบง่าย

ใน Ubuntu 14.04 LTS

คุณจะต้องกำหนดที่อยู่ IP ด้วยตนเองในช่วงเดียวกัน ขั้นตอนต่อไปนี้สมมติว่าคุณกำลังใช้อินเตอร์เฟส Unity มาตรฐาน ทำซ้ำขั้นตอนเหล่านี้สำหรับคอมพิวเตอร์แต่ละเครื่อง

  1. คลิกตัวบ่งชี้เครือข่ายบนแผงความสามัคคี (มุมบนขวา)
  2. จากดรอปดาวน์เลือกแก้ไขการเชื่อมต่อ ...
  3. ในกล่องโต้ตอบการเชื่อมต่อเครือข่ายให้คลิกปุ่มเพิ่ม
  4. เมื่อได้รับแจ้งให้เลือกประเภทการเชื่อมต่อให้เลือกอีเธอร์เน็ตและคลิกที่สร้าง ...ปุ่ม
  5. ตั้งชื่อการเชื่อมต่อของคุณ "ตรงไปยัง [ชื่อโฮสต์อื่น]" เพื่อแยกความแตกต่างจากการเชื่อมต่ออีเธอร์เน็ตทั่วไป
  6. ในรายการดรอปดาวน์MAC ของอุปกรณ์ให้เลือกอันที่สอดคล้องกับอินเทอร์เฟซที่คุณวางแผนจะใช้
  7. สลับไปที่แท็บการตั้งค่า IPv4
  8. เปลี่ยนวิธีการด้วยตนเอง
  9. คลิกAddเพื่อเพิ่มที่อยู่ IP
    • ตัวอย่างการตั้งค่าสำหรับคอมพิวเตอร์ # 1:
      • ที่อยู่: 10.0.0.1
      • Netmask: 255.255.255.0
      • ประตู:
    • ตัวอย่างการตั้งค่าสำหรับคอมพิวเตอร์ # 2:
      • ที่อยู่: 10.0.0.2
      • Netmask: 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

คุณไม่จำเป็นต้องกำหนดที่อยู่ IP ด้วยตนเองตามที่แสดงในคำตอบของฉัน
Robert Ancell

2

คำถามของคุณไม่สั้นนักฉันจะสมมติว่าคุณต้องการคอมพิวเตอร์ Ubuntu 2 เครื่องในเครือข่าย

การเชื่อมต่อคอมพิวเตอร์ Ubuntu 2 เครื่องนั้นง่ายพอเพียงรับสายเคเบิลเครือข่าย (Cat 5e Cross Cable) และเชื่อมต่อคอมพิวเตอร์ทั้งสองเครื่องโดยใช้สายเคเบิลนั้นและ Ubuntu ควรจะได้รับการเชื่อมต่อ" Auto Eth " (Automatic IP) ทั้งสองเครื่อง นี่น่าจะสวยมากที่จะได้คอมพิวเตอร์ Ubuntu 2 เครื่องในเครือข่าย

ในภายหลังหากคุณต้องการดู IP อัตโนมัติที่กำหนดให้กับคอมพิวเตอร์ให้รันคำสั่งifconfigหรือคลิกขวาที่ ' NetworkManager applet ' และคลิกที่ข้อมูลการเชื่อมต่อ

ป้อนคำอธิบายรูปภาพที่นี่


2
ฉันได้ลองสิ่งนี้แล้ว แต่การเชื่อมต่อมันบ้าไปแล้วที่พยายามจะเชื่อมต่อและล้มเหลวทุกครั้ง ปัญหานี้จะเป็นอย่างไร ฉันได้ตั้งค่าวิธี IPv4 เป็น "แบ่งปันกับคอมพิวเตอร์เครื่องอื่น"
Severo Raz

0

อย่างน้อยใน 16.04 คุณสามารถทำได้อย่างง่ายดายโดยไปที่การตั้งค่าเครือข่าย:

  1. แก้ไขการเชื่อมต่อแบบใช้สาย
  2. ไปที่แท็บ IPv4
  3. เลือกLink-Local เท่านั้น

ทำสิ่งนี้กับคอมพิวเตอร์ทั้งสองเครื่องและเสร็จ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.