Как мне установитьeth0на CentOS? Когда я это сделаю ifconfig -a
,eth0там нет. Вот вывод ip link
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
3: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue
link/void
решение1
Сетевые интерфейсы могут иметь разные имена в Linux в зависимости от их типа (проводной Ethernet, Wi-Fi, PPP, SLIP и т. д.), слота PCI, порядка инициализации и т. д. Например, если в компьютере есть одна карта Ethernet, ее имя будетeth0* .
В вашем случае естьвиртуальныйчастный сервер без сетевой карты Ethernet в нем, даже не эмулированной. Тем не менее у вас есть сетевая карта с именемвене0. Вы можете переименовать его с помощью:
ip link set venet0 name eth0
Если интерфейс используется, команда не будет выполнена, поэтому вам, возможно, придется остановить его ( ip link set venet0 down
), но это, скорее всего, приведет к отключению вас от сервера.
Если вы готовы взятьриск, вы можете запустить в фоновом режиме скрипт, который выводит интерфейс из строя, переименовывает его, а затем выводит его из строя. Сначала получите настройки длявене0и таблица маршрутизации:
[root@server ~]# ip addr show dev venet0
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/void
inet 127.0.0.1/32 scope host venet0
inet X.Y.Z.T/32 brd X.Y.Z.T scope global venet0:0
[root@server ~]# ip ro
192.0.2.0/24 dev venet0 scope host
169.254.0.0/16 dev venet0 scope link metric 1002
default dev venet0 scope link
Затем создайте скрипт ( rename-to-eth0.sh
), подобный этому:
#!/bin/sh
### Rename
ip link set venet0 down # Bring interface down
ip link set venet0 name eth0 # Rename interface
ip link set eth0 up # Bring interface up
### Restore
# Restore interface settings. Adapt accordingly!!!
ip addr add 127.0.0.1/32 scope host dev eth0
ip addr add X.Y.Z.T/32 brd X.Y.Z.T scope global label eth0:0 dev eth0
# Restore routing table. Adapt accordingly!!!
ip ro add 192.0.2.0/24 dev venet0 scope host
ip ro add 169.254.0.0/16 dev venet0 scope link metric 1002
ip ro add default dev eth0
Теперь запустите скрипт с помощьюнетт.е. nohup ./rename-to-eth0.sh
или внутриэкран,tmuxи т. д. Если это не удастся, вам, вероятно, придется перезапустить сервер.
* Все изменится, как только«Предсказуемые имена сетевых интерфейсов»Предложение реализовано, хотя это не относится к CentOS6 или более ранним версиям. Обратите внимание, что согласно этому предложению интегрированная карта Ethernet может быть названаэм1.
решение2
Если использование вами eth0 можно просто изменить так, чтобы ссылаться на сетевой интерфейс по имени «venet0» везде, где вы используете «eth0», то вы можете это просто сделать.
Однако, если вам необходимо имя eth0, вы можете сделать что-то вроде
sudo ip link set dev venet0 alias eth0
Префикс "sudo" позволяет вам выполнять команды как пользователь "root". Если вы уже работаете как root, вы можете оставить это. На самом деле, вероятно, вам стоит попробовать это без него, и если не будет ошибок, то вы победили!