eth0, не установленный на CentOS

Вашим вопросом я предполагаю, что Вы у любого есть значение по умолчанию xtables политики DROP на Ваших цепочках, или Вы имеете явный DROP/REJECT правила около конца Ваших цепочек.Любой ACCEPT правила должны появиться перед ними.

Примеры правила:

-A INPUT -i lo -j ACCEPT # accept any traffic coming from lo.
-A OUTPUT -o lo -j ACCEPT # accept any traffic sent to lo.

Если Вы хотите играть вокруг с тестированием этого, вот дамп для загрузки в iptables-восстановление. Я явно добавил-s/-d 127.0.0.1, таким образом, Вы видите как, что обычно подбирается на (Вы могли соответствовать -d в OUTPUT и -s в INPUT если Вы хотели). Кроме того, я использовал нестандартные ответы отклонения ICMP, таким образом, можно сказать, какое правило соответствовало патчам легко. Если Вы изменяете порядок этих правил (они принимают на данный момент), можно инициировать отклонения. Можно также попытаться добавить другой IP как 127.0.0.2/8 к Вашему петлевому интерфейсу и тестирующий между тем IP и нормальным 127.0.0.1/8 IP (Вы захотите явно указать исходный IP в ping).

# Generated by iptables-save v1.4.20 on Sat Dec  7 23:10:52 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -s 127.0.0.1/32 -i lo -j ACCEPT
-A INPUT -s 127.0.0.1/32 -i lo -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -d 127.0.0.1/32 -o lo -j ACCEPT
-A OUTPUT -d 127.0.0.1/32 -o lo -j REJECT --reject-with icmp-net-prohibited
COMMIT

FORWARD цепочка редко используется с петлевыми интерфейсами, если Вы не делаете вещи с туннелирующим трафиком (и Вы могли бы связать с обратной петлей локально).

2
23.06.2014, 23:10
2 ответа

Сетевые интерфейсы могут иметь различные названия в Linux в зависимости от их типа (проводной Ethernet, Wi-Fi, PPP, SLIP и т.д.), PCI-слота, порядка инициализации и т.д. Например, если компьютер имеет одну Ethernet-карту, его имя будет eth0*.

В вашем случае есть виртуальный частный сервер без Ethernet-сетевой карты, даже не эмулируемый. Тем не менее, у вас есть сетевая карта с именем venet0. Вы можете переименовать его с:

ip link set venet0 name eth0

Если используется интерфейс, команда будет неудачной, поэтому вам, возможно, понадобится его уничтожить (ip link set venet0 down), но это, вероятно, отключит вас от сервера.

Если вы хотите взять на себя риск , вы можете запустить в фоновом режиме скрипт, который уничтожит интерфейс, переименует его, а затем выведет его на экран. Сначала получим настройки для venet0 и таблицу маршрутизации:

[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 т.е. nohup ./rename-to-eth0.sh или внутри screen, tmux и т.п. Если это не удастся, вам, вероятно, придется перезагрузить сервер.

* Все изменится, так как предложение "Предсказуемые имена сетевых интерфейсов" реализовано, хотя это не относится к CentOS6 или более ранним версиям. Обратите внимание, что в соответствии с этим предложением встроенная Ethernet-карта может иметь имя em1.

7
27.01.2020, 21:50

Если ваше использование eth0 может быть просто изменено, чтобы ссылаться на сетевой интерфейс под именем "venet0", где бы вы ни использовали "eth0", то вы можете просто сделать это.

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

sudo ip link set dev venet0 alias eth0

Префикс "sudo" позволяет вам выполнять команды как пользователю "root". Если вы уже запущены от имени "root", вы можете оставить это выключенным. На самом деле, наверное, вам стоит попробовать его без ошибок, и если нет ошибок, то вы выигрываете!

.
2
27.01.2020, 21:50

Теги

Похожие вопросы