CentOS không có giao diện mạng sau khi cài đặt trong VirtualBox


53

Tôi có Ubuntu 12.10 mà tôi đã cài đặt hộp ảo mà tôi cài đặt Centos 6.4 i386. Trên Ubuntu tôi có: chạy kernel 3.5.0-17.

Trên hộp ảo tôi cài đặt Centos 6.4 và mọi thứ đều hoạt động tốt, tuy nhiên khi tôi khởi động vào máy VM, chỉ có giao diện loopback. Không có gì khác. Tôi đã cố gắng tự thêm tập tin ifcfg-eth0 nhưng không có gì xảy ra. Trên cài đặt VM, tôi đã thêm giao diện NAT và HostOnly nhưng bất cứ khi nào tôi khởi động vào Centos, chỉ có giao diện lo. Tôi nên làm gì?

Câu trả lời:


53

Bạn cần kích hoạt mạng trong khi cài đặt. Bạn có thể làm nó đăng cài đặt là tốt. Đây là một thay đổi trong cài đặt CentOS trong các phiên bản 6.x, thứ khiến nhiều người bỏ qua, bao gồm cả bản thân tôi.

Bắt đầu với CentOS 6.x, bạn có thể chọn NetworkManagerquản lý các thiết lập mạng của mình hoặc vẫn thực hiện theo cách cũ và thiết lập chúng theo cách thủ công bằng cách sử dụng /etc/sysconfig/network-scripts/ifcfg-eth0các loại tệp. Cho rằng đây là một VM tôi khuyên bạn nên sử dụng NetworkManager.

Để gọi công cụ soạn thảo kết nối, hãy làm như sau:

$ nm-connection-editor

Bạn sẽ được trình bày với GUI như thế này:

                         ss của liên kết.  biên tập viên

Từ GUI này, bạn sẽ cần chỉnh sửa cài đặt eth0 như sau:

                         ss của bước 1

                         ss của bước 2

                         ss của bước 3

Không có GUI

Nếu bạn đang cố gắng thực hiện việc này trên máy chủ không đầu, bạn có thể chỉnh sửa các tệp sau và khởi động lại để eth0thiết bị mạng của bạn được kích hoạt và có được địa chỉ IP từ máy chủ DHCP. Thay đổi 2 tùy chọn này trong tệp , /etc/sysconfig/network-scripts/ifcfg-eth0:

ONBOOT="yes"
NM_CONTROLLED="no"

Người giới thiệu


5
Không tìm thấy trình soạn thảo kết nối Centos 6.4 "không có GUI". Máy chủ không đầu. không có niềm vui :(
Mojo

1
Các bước "Không có GUI" hoạt động hoàn hảo, cảm ơn bạn rất nhiều!
tự đại diện

2
Các bước Không có GUI đã khiến tôi mất một chút cho đến khi tôi kiểm tra một vài câu trả lời tiếp theo. Trong CentOS min, thay vì eth0, đây là một thứ khác, vì vậy vui lòng cập nhật câu trả lời của bạn thành ifcfg-XXXX. Ngoài ra, NM_CONTROLLED không được liệt kê và vì những người khác không chỉ định nó nên tôi đã không thêm nó nên đó phải là mặc định. Mạng hiện đang hoạt động. Nếu bạn cũng có thể cập nhật câu trả lời để chuyển hướng các kẻ 'KHÔNG GUI' hoặc đặt nó lên trên câu trả lời GUI sẽ rất tuyệt, vì tôi nghi ngờ n / w sẽ chỉ bị vô hiệu hóa trên các bản phát hành tối thiểu, nếu nó bị vô hiệu hóa trên các bản phát hành bình thường, thì đó là nghi vấn vì nó sẽ làm rối loạn rất nhiều noobs.
killjoy

@killjoy - bạn đang sử dụng phiên bản CentOS nào. Những gì tôi đã trình bày ở trên là như thế nào vào năm 2013 khi tôi viết nó lên. Mọi thứ có thể đã thay đổi trong các phiên bản mới hơn. Ngoài ra, NM_CONTROLLED là cách bạn có thể làm điều này một cách rõ ràng. Do đó tại sao tôi cho thấy nó.
slm

@slim - 7 phiên bản mới nhất kể từ ngày đăng bài, trên thực tế một số phiên bản khác cũng có các giá trị khác nhau. Trên VM công việc của tôi, nó là '-eno', vì vậy, tôi đoán nó không phải là eth0 tĩnh như trước.
killjoy

18

Chạy lệnh:

$ ip a

Điều này sẽ hiển thị các giao diện. Phải /etc/sysconfig/network-scripts mở ifcfgtệp tương ứng và đặt khởi động thành có. Khởi động lại hệ thống và bạn đang xuống.

Theo mặc định, điều này được đặt thành không trong Centos 7


1
Có vấn đề gì không nếu bạn đang chạy trong VM? Bởi vì tôi đã thực hiện tất cả những điều này rất nhiều lần và VẪN nói rằng mạng không thể truy cập được và tôi không thể cài đặt các bổ sung khách VirtualBox mà không có mạng, vì CentOS không bao gồm bzip2 vì một số lý do bị trì hoãn.
MarcusJ

1
Để mở rộng về điều này, bạn có thể tạo một ifcfgtệp mới và đặt tên cho giao diện bất cứ điều gì bạn muốn với DEVICE=[name]tùy chọn miễn là bạn bao gồm HWADDR=[mac address].
Centimane

Bạn cũng cần thay đổi dòng này: NM_CONTROLLED = no
Rob Sedgwick

Bạn sẽ làm gì nếu không có tập tin ifcfg tương ứng với thiết bị ip ahiển thị?
marathon

8

Khi bạn tạo một máy ảo mới (tức là một hệ điều hành khách) với VirtualBox, theo mặc định, nó sẽ biến NIC thành Am79C973. Mặc dù NIC này có thể được hỗ trợ bởi nhiều HĐH, nhưng NIC cụ thể này dường như không được CentOS 7. hỗ trợ. Điều này có nghĩa là NIC duy nhất sẽ xuất hiện bên trong máy ảo CentOS 7 mới của bạn sẽ là NIC loopback. Những gì bạn cần làm là thay đổi NIC thành một hỗ trợ như 82543GC.

Trước tiên, hãy dừng CentOS VM nếu bạn chưa có, sau đó thay đổi NIC bằng lệnh này trên máy chủ VirtualBox của bạn:

vboxmanage modifyvm "testvm" --nictype1 82543GC

Bây giờ, hãy khởi động lại máy ảo CentOS của bạn và bạn sẽ nhận thấy rằng giờ đây nó đã có một NIC.

Tôi hy vọng rằng điều này sẽ giúp.


Tôi không sử dụng vbox. Tôi chỉ chạy centos dưới dạng khởi động kép nhưng tôi có cùng một dự án như op
samayo

Đã gặp vấn đề tương tự như OP, điều này đã giải quyết nó cho tôi. (VirtualBox + CentOS 7)
hoosierEE

6

hãy xem các tệp cấu hình NIC /etc/sysconfig/networking/devices/ifcfg-ethXvà kiểm tra xem tham số ONBOOTcó tồn tại không. Nếu không - thêm nó.

grep "ONBOOT=yes" /etc/sysconfig/networking/devices/*
/etc/sysconfig/networking/devices/ifcfg-eth0:ONBOOT=yes
/etc/sysconfig/networking/devices/ifcfg-eth1:ONBOOT=yes

Khởi động lại hoặc /etc/init.d/network restartsau khi thay đổi sẽ đưa giao diện của bạn lên.


+1 mạnh mẽ để sử dụng grep để tìm ra nơi họ đặt cấu hình trong tuần này! (BTW cùng một vấn đề trên Centos6 và bản sửa lỗi vẫn hoạt động)
gbarry

5

Trong centos 7, tên giao diện mạng là enp0s3, để làm cho mạng hoạt động, bạn cần chỉnh sửa các tệp tương ứng bằng cách:

sudo vim /etc/sysconfig/network-scripts/ifcfg-emp0s3

Và thiết lập ONBOOTđểyes

ONBOOT=yes

Woa woa woa, đó là sự đơn giản hóa quá mức của việc đặt tên giao diện CentOS 7. Xem: cgit.freedesktop.org/systemd/systemd/tree/src/udev/ mẹo để tham khảo. Rất có thể giao diện có nhiều khả năng là một p#p###giao diện định dạng, nhưng bằng cách nào đó, tốt hơn là xác định tên thực tế hơn là đoán nó.
Centimane

Ngoài ra, người hỏi đang sử dụng CentOS 6.4, vì vậy việc đặt tên giao diện CentOS 7 không liên quan. Giao diện đặt tên đã thay đổi mạnh mẽ trong 7.
Centimane

1
Đã làm cho tôi. Cảm ơn. Tôi đang sử dụng RHEL miễn phí. Để biết tên của giao diện chạy pifconfig. Có, RHEL không đi kèm với ifconfig. Ngay cả trong sbin. Ubuntu là tốt hơn trong vấn đề này.
Không phải

@Centimane Này, cảm ơn vì đã cho tôi biết rằng tôi quá đơn giản. Nhưng đối với tôi đó là công việc, và không chắc đó có phải là một thực hành tồi. Bạn có muốn chia sẻ cách thích hợp để có được giao diện chính xác cho centos không? Vì vậy, nó sẽ là "Bulletproff" cho Phiên bản Centos trong tương lai.
Yana Agun Siswanto

1
Tên giao diện được dựa trên phần cứng, vì vậy tên giao diện được dựa trên loại NIC bạn đang sử dụng và cách phần cứng được báo cáo với RHEL. Dựa tắt tên giao diện của bạn RHEL nghĩ NIC của bạn là một em thiết bị beded, p ort 0 s rất nhiều 3 . Nhưng phần cứng khác nhau sẽ sử dụng một tên NIC khác nhau.
Centimane


1

Tôi nghĩ rằng nó có thể là thiết lập mạng ném nó. Tôi đã tìm thấy công việc của mình tốt nhất với "Bộ điều hợp cầu nối", khi đó bạn sử dụng trực tiếp card mạng của máy chủ. Nó cũng sẽ cho phép máy tính ảo sử dụng DHCP để lấy IP bên trong của chính nó từ bộ định tuyến của bạn.

NAT hơi lạ, vì bạn chỉ sử dụng một địa chỉ IP (giống như địa chỉ của máy chủ?) Và thay vào đó chuyển tiếp trên bản dịch của các cổng - do đó nó không thực sự là một IP riêng cho máy tính ảo. HostOnly tôi nghĩ chỉ cho phép máy tính ảo tạo "mạng cục bộ" với máy chủ của bạn - tức là. không có Internet bên ngoài. Và điều đó khiến bạn chỉ còn lại thiết bị quay vòng.


0

Điều này đối với tôi giống như một vấn đề /etc/udev/rules.d/70-persistent-net.rules. Trừ khi tệp này bị xóa, chỉnh sửa ifcfg-ethX sẽ không giúp ích vì bất kỳ cài đặt cũ nào bạn có sẽ vẫn tồn tại. Xóa tệp, sau đó sử dụng "kích hoạt udevadm" để tạo lại nó.


Tôi không thấy điều này liên quan đến một thiết bị không có mặt.
thrig

0

Điều này áp dụng cụ thể cho VMBox nơi bạn đã cài đặt bản sao mới (của tôi là CentOS) và không thấy địa chỉ IP:

  1. Dừng VM. Chuyển đến Cài đặt-> Mạng-> Nâng cao. Sau đó đặt lại địa chỉ MAC bằng cách nhấp vào biểu tượng màu xanh bên phải. Lưu ý Địa chỉ MAC mới ở đâu đó.
  2. Bắt đầu VM. Đi đến Hệ thống-> Tùy chọn-> Kết nối mạng. Chỉnh sửa Kết nối eth0 -> Địa chỉ MAC của thiết bị với địa chỉ MAC mới từ bước # 1 thêm ":" giữa hai ký tự. ví dụ: 08012741798D đến 08: 01: 27: 41: 79: 8D và lưu lại
  3. Khởi động lại, sau đó đăng nhập bằng root: cd / var / lib / NetworkManager
  4. xóa hoặc di chuyển NetworkManager.state sang một thư mục khác, ví dụ: mv NetworkManager.state NetworkManager.state.save
  5. chạy: dịch vụ NetworkManager dừng
  6. chạy: dịch vụ NetworkManager bắt đầu
  7. Để xem địa chỉ IP mới chạy: ifconfig -a

0
  1. sudo dhclientLàm xong. Không cần khởi động lại.

  2. Nếu bạn muốn máy khách dhcp bắt đầu tự động khi khởi động: sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 đổi ONBOOT=nothành ONBOOT=yes.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.