Интернет не работает на моей виртуальной машине kali-linux

Причина того, что SMTP-сервер по умолчанию включен и работает в новой установке Linux, заключается в том, что система должна доставлять важные уведомления и другую информацию (о состоянии заданий cron и т. д. )пользователю root.

Однако не беспокойтесь --из соображений безопасности SMTP-сервер настроен на прием почты только с локального хоста, поэтому он не является открытым почтовым ретранслятором.

0
17.09.2019, 10:07
1 ответ

То, что вы здесь наблюдали, — это явления, происходящие, когда вы выдергиваете коврик из-под своих стеков TCP/IP. :D

Обратите внимание, что здесь в пьесе на самом деле два феномена...

1. Ошибка отсутствия шлюза по умолчанию

Это просто:

Запускifconfig eth0 downудаляет конфигурацию шлюза по умолчанию из таблицы маршрутизации вашей виртуальной машины; потому что сеть, связанная с этим шлюзом, удалена.

Выполнение ifconfig eth0 upНЕ БУДЕТ НЕ восстановить шлюз по умолчанию ; он сохранит только старый IP-адрес и маску подсети. Если вы попытаетесь запустить route -n, вы не увидите ни одной строки с Gв столбце «Флаги».

Как только это произойдет, любые программы на вашей виртуальной машине, пытающиеся получить доступ к Интернету, получат сообщение об ошибке «Хост не найден » или «Сеть недоступна ».

Вам нужно будет запустить route add default gw GATEWAYIPвручную, чтобы восстановить шлюз по умолчанию.

  • Не забудьте заменить GATEWAYIPфактическим адресом шлюза по умолчанию. Проверьте свой /etc/network/interfacesили запустите route -nкоманду (и найдите столбец «Шлюз» строки с Gв столбце «Флаги» ), прежде чем делать эти грязные дела; но это, вероятно, 10.0.2.2под VirtualBox в любом случае.

Но даже после восстановления шлюза по умолчанию вы обнаружите, что ваша виртуальная машина по-прежнему не может подключиться к Интернету; или, точнее, Интернет не может ответить на него. Это потому, что...

2. Влияние устаревшего кэша ARP

Вы знаете, что протокол TCP/IP через Ethernet использует ARP для поиска MAC-адреса, который соответствует IP-адресу, чтобы по-настоящему общаться, верно?

Насколько я понял, это хронология того, что происходит внутри вашего экземпляра VirtualBox:

  1. После того, как ваша виртуальная машина только что загрузилась, она использует исходный MAC-адрес для запросов в Интернете.
  2. Модулю NAT VirtualBox также потребуется MAC-адрес вашей виртуальной машины 1 , чтобы передать ей данные из Интернета.
  3. Механизм NAT VirtualBox изначально не знает, какой MAC-адрес имеет ваша виртуальная машина; поэтому он отправляет запрос ARP, и ваша машина отвечает на него своим исходным MAC-адресом .
  4. Механизм NAT VirtualBox сохраняет MAC-адрес вашей виртуальной машины (и соответствующий IP-адрес )в своем кэше ARP ; что очень нормально делать.
  5. Вы изменили MAC-адрес вашей виртуальной машины на вновь созданный -до без изменения ее IP-адреса .
  6. Когда вы снова выполняете интернет-запрос с виртуальной машины, она использует для этого новый MAC-адрес. 1
  7. Механизм NAT VirtualBox получает ваш запрос (, но заботится только о вашем IP-адресе, а не о MAC-адресе)и пересылает его в Интернет в обычном режиме.
  8. Когда Интернет отвечает, механизму NAT VirtualBox требуется MAC-адрес вашей виртуальной машины, чтобы передать этот ответ обратно на вашу виртуальную машину.
  9. Механизм NAT VirtualBox ищет IP-адрес вашей виртуальной машины в собственном кэше ARP, и находитзапись MAC-адреса с неистекшим -сроком действия, поэтому больше не отправляет запрос ARP.(Однако VirtualBox не знал -, что найденный MAC-адрес был старым, устаревшим).
  10. Механизм NAT VirtualBox отправляет интернет-ответ на старый MAC-адрес вашей виртуальной машины, а не на новый .
  11. Ваша виртуальная машина (, использующая новый MAC-адрес ), не получает ответа, и время ожидания истекло; таким образом, «Интернет не работает на моей виртуальной машине kali -linux ».

Даже после того, как конфигурация шлюза по умолчанию была исправлена, доступ в Интернет на вашей виртуальной машине будет по-прежнему нарушен до тех пор, пока не истечет срок действия указанной записи кэша ARP или пока вы не измените IP-адрес своей виртуальной машины.

Итог

Я не знаю, как долго механизм NAT VirtualBox кэширует ответ ARP внутри; поэтому я бы предложил обходной путь, изменив IP-адрес вашей виртуальной машины, как только вы изменили ее MAC-адрес , чтобы предотвратить второй эффект. Кроме того, после того, как вы изменили IP-адрес и активировали интерфейс, убедитесь, что вы повторно -также добавили шлюз по умолчанию , чтобы предотвратить первую ловушку. (Используйте route -n | grep UGдля проверки )

.

1 Можно подумать, что механизм NAT VirtualBox должен был узнавать MAC-адрес виртуальной машины из каждого пакета запроса, это не так ; потому что это позволит так много случайной подделки IP / MAC-адресов. Таким образом, для маршрутизации используются/кэшируются только MAC-адреса, запрошенные явными запросами ARP; не те, которые узнали из случайных пакетов данных.

3
28.01.2020, 02:29

Теги

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