Arch Linux - เชื่อมต่อ: เครือข่ายไม่สามารถเข้าถึงได้


22

หลังจากการติดตั้ง Arch Linux ไม่สำเร็จห้าครั้งฉันมีสองตัวที่ติดตั้งอย่างถูกต้อง ครั้งแรกที่เครือข่ายทำงานได้ดีและฉันยังติดตั้ง Arch Linux ผ่าน SSH

หลังจากบูทจากระบบที่ติดตั้งแทนไลฟ์ซีดีมันไม่สามารถเชื่อมต่อกับเครือข่ายได้ฉันได้รับข้อความต่อไปนี้เมื่อฉันพยายาม ping ทุกอย่างแม้แต่เราเตอร์ของฉัน:

เชื่อมต่อ: เครือข่ายไม่สามารถเข้าถึงได้

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

ดูเหมือนว่าการเริ่มต้น eth0 ล้มเหลวเพราะหมดเวลา


4
คุณลองdhcpcd eth0ไหม
uzsolt

@uzsolt ใช่มันให้การเรียกใช้เมธอดไม่สำเร็จ: ไม่มีไฟล์หรือไดเรกทอรีผิดพลาด ฉันยังโพสต์หัวข้อไว้ที่ฟอรัมอย่างเป็นทางการฉันจะโพสต์คำตอบที่นี่หากพบ
Novicode

ifconfig eth0 upเสร็จเรียบร้อย? linux เห็นการ์ดเครือข่ายของคุณ (โมดูลถูกโหลด) หรือไม่? ก่อนอะไรก็ได้โปรดsystemctl stop netctl-eth0...
uzsolt

ประณาม ... คุณไม่มี eth0 คุณ ... ฉันไม่สามารถอ่านได้ :( bbs.archlinux.org/viewtopic.php?pid=1291880#p1291880ดังนั้นคุณควรตั้งค่าไม่ใช้ eth0 คุณควรใช้ แทนenp1s0(หรือสิ่งที่อยู่ในรูปถ่ายของคุณ :))
uzsolt

ฉันดีใจที่ได้แก้ปัญหาของคุณ
uzsolt

คำตอบ:


26

ปัญหาที่ฉันพบคือไม่มีeth0(จากสิ่งที่ฉันเข้าใจ) รันคำสั่งip linkสิ่งนี้ควรเอาท์พุทอินเตอร์เฟสของคุณ ฉันไม่มีeth0อินเทอร์เฟซ enp1s8แต่ผมมี

เพราะผมใช้คงที่ผมคัดลอกรายละเอียดตัวอย่างที่มีแล้วcd /etc/netctl cp examples/ethernet-static my-networkหลังจากนั้นฉันแก้ไขและเปลี่ยนส่วนต่อmy-networkประสานnano my-networkจากeth0เป็นen1s8(หรือสิ่งที่อะแดปเตอร์ของคุณอยู่ip link) netctl enable my-networkสุดท้ายผมเปิดใช้งานไปใช้โปรไฟล์ที่ในการเริ่มต้นด้วย

การเปิดใช้งานโปรไฟล์จะช่วยให้มั่นใจได้ว่ามันจะเริ่มต้นเมื่อบูต แต่ไม่จำเป็นต้องรีบูตระบบเพียงแค่เรียกใช้netctl start my-networkเพื่อเริ่มต้นทันที

ผมสามารถที่จะได้รับความช่วยเหลืออย่างเป็นทางการในฟอรั่ม Arch Linux คุณสามารถดูหัวข้อของฉันมี


4

เครือข่ายไม่สามารถเข้าถึงได้หมายความว่าคุณไม่มีเส้นทางไปยังเครือข่าย หากคุณไม่สามารถปิงเราเตอร์ในพื้นที่ได้คุณอาจไม่มีที่อยู่ IP หรือส่วนต่อประสานเครือข่ายของคุณไม่ทำงาน

netctlเป็นยูทิลิตี้มาตรฐานสำหรับการจัดการเน็ตเวิร์กอินเตอร์เฟสใน Arch หากคุณยังไม่ได้ตั้งค่า (หรืออย่างอื่น) คุณจะไม่มีเครือข่ายใด ๆ ไม่ใช่แม้แต่ DHCP


ฉันได้คัดลอกไฟล์ตัวอย่างจากตัวอย่าง / ethernet-static เป็น "my-network" แก้ไขไฟล์นั้นจากนั้นเปิดใช้งานเมื่อเริ่มต้นด้วย "netctl enable my-network" ไม่มีข้อขัดแย้งของ IP ในเครือข่าย ควรเป็น "ตั้งค่า"
Novicode

เพื่อหาว่าคุณสามารถเข้าถึงเกตเวย์เริ่มต้นของคุณ (ซึ่งมักจะเป็นเราเตอร์ของคุณ) ip routeป้อน หากปรากฎคุณมีเกตเวย์เริ่มต้นไม่คุณควรเพิ่มหนึ่งอย่างใดอย่างหนึ่งต่อ DHCP ip route add default via xxx.xxx.x.xxxหรือ เพื่อให้เกตเวย์เริ่มต้นถาวรเพิ่ม IP /etc/network/interfacesเพื่อ
Matthias Braun

3

การตั้งค่าเครือข่ายสำหรับ ArchLinux มีการบันทึกไว้เป็นอย่างดีใน ArchLinux wiki ที่https://wiki.archlinux.org/index.php/Netctl

การชี้แจงที่สำคัญอย่างหนึ่งของคำตอบด้วยจำนวนคะแนนเสียงสูงสุด - ไม่จำเป็นต้องรีสตาร์ท หากมีเน็ตเวิร์กอินเตอร์เฟสอยู่เท่านั้นและชื่ออินเตอร์เฟสและการกำหนดค่าที่เหมาะสมที่ใช้ในไฟล์โปรไฟล์ใน / etc / netcl (ให้ตัวอย่างสำเนาชื่อ mynet1) จากนั้น

netctl start mynet1

จะเริ่มโปรไฟล์เครือข่าย mynet1 และเส้นทางเครือข่ายจะใช้งานได้

อย่างไรก็ตาม

netclt enable mynet1

จะเปิดใช้งานบริการของระบบที่จะเริ่มต้นโดยผู้จัดการบริการ systemd กับการบูตทุกครั้งเช่นมันจะสร้างไฟล์หน่วยใน

โปรดทราบว่าหากมีการแก้ไขโปรไฟล์เครือข่ายจะต้องเปิดใช้งาน netctl อีกครั้ง


1

Archlinux พูดว่าลอง dhcpcd ในกรณีที่ตัวติดตั้งของคุณไม่สามารถเชื่อมต่ออัตโนมัติ สิ่งนี้ทำงานได้ทันทีสำหรับฉันหลังจากการติดตั้ง เพียงพิมพ์ "dhcpcd" เป็นคำสั่งรอสักครู่แล้ว "ip route" หรือ "ping 8.8.8.8" เพื่อตรวจสอบว่ามันใช้งานได้หรือไม่ ฉันใช้ "ดูที่อยู่ IP" เพื่อดูว่าที่อยู่ inet และ inet6 เหล่านี้ปรากฏขึ้นอย่างรวดเร็วเพียงใด

แทนที่จะใช้ dhcpcd ฉันสามารถเชื่อมต่อจากศูนย์ด้วย:

modprobe e1000e

ip link set dev eth0 up
ip address add 192.168.0.16/24 dev eth0
ip route add 192.168.0.0/24 dev eth0
ip route add default via 192.168.0.1

e1000e เป็น "ไดรเวอร์เครือข่าย" modinfo พูดว่า โดยการโหลดโมดูลนี้ฉันจะได้รับลิงค์ eth0 (ไม่ไม่ต้องมองหามันใน / dev) คำสั่ง "ip" เปิดใช้งานลิงก์เลือกที่อยู่และกำหนดโลคัล (ซับเน็ต) จากนั้นเกตเวย์เริ่มต้น ฉันใช้เวลาพอสมควรในการทดสอบสิ่งนี้ (ip link help, ที่อยู่ ip help, ip route help ... )

ดังนั้นนี่คือคำแนะนำ แต่ "dhcpcd" นั้นเร็วกว่าในการพิมพ์และอาจแข็งแกร่งกว่า และคุณสามารถหยุดมันได้อย่างหมดจดด้วย "dhcpcd -x"

ด้วย ping ที่ทำงานได้และ mirrorlist ใน /etc/pacman.d/ คุณมีทุกอย่างที่คุณต้องการสำหรับ pacman หรือ pacstrap

และใช่ฉันเห็นข้อความเคอร์เนลเปลี่ยนชื่อ eth0 เป็น enoxxx ดังนั้นคุณต้องตรวจสอบก่อนด้วย "ip link" สิ่งที่อินเตอร์เฟสตั้งค่าไว้แล้วโดย systemd มันเกิดขึ้นที่นี่:

[    3.052354] e1000e 0000:00:1f.6 eth0: (PCI Express:2.5GT/s:Width x1) 94:c6:91:a5:39:b8
[    3.052360] e1000e 0000:00:1f.6 eth0: Intel(R) PRO/1000 Network Connection
[    3.052445] e1000e 0000:00:1f.6 eth0: MAC: 13, PHY: 12, PBA No: FFFFFF-0FF
[    3.055917] e1000e 0000:00:1f.6 eno1: renamed from eth0

.16 ในที่อยู่ของฉันเป็นเพียงหมายเลข (ฟรี) และ 192.168.0.1 ควรเป็นเกตเวย์เสมอ บางทีฉันอาจจะโชคดี แต่ก็เป็นข่าวดีที่คุณสามารถแฮ็คภายใต้ systemd และ inet6 ฉันจะลอง netctl แต่

และตอนนี้ฉันได้บูทด้วย systemd และเริ่ม dhcpcd ฉันได้รับที่อยู่. 15 ใน "eno1" และที่อยู่ inet6 สามแห่ง แต่นอกเหนือจากนั้นผลลัพธ์ก็ค่อนข้างเหมือนกับ "ip" -hack ด้านบน

3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 94:c6:91:a5:39:b8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.15/24 brd 192.168.0.255 scope global noprefixroute eno1
       valid_lft forever preferred_lft forever
    inet6 2a05:41c0:12:bf00::2/128 scope global dynamic noprefixroute 
       valid_lft 2559430sec preferred_lft 572230sec
    inet6 2a05:41c0:12:bf00:f51e:97c1:de6f:6f49/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 2591994sec preferred_lft 604794sec
    inet6 fe80::47cf:a2e4:af0b:b7cd/64 scope link 
       valid_lft forever preferred_lft forever 


 default via 192.168.0.1 dev eno1 proto dhcp src 192.168.0.15 metric 203 
 192.168.0.0/24 dev eno1 proto dhcp scope link src 192.168.0.15 metric 203 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.