3

У меня есть VMware Server 2 на хосте CentOS 5.6. Я могу получить доступ к своим виртуальным машинам с хост-машины, но не могу получить к ней доступ с других машин.

Я настроил переадресацию портов NAT. Но почему-то у меня нет доступа к виртуальной машине с помощью ssh . Я проверил все настройки брандмауэра, и они кажутся правильными.

Что может вызвать эту проблему?

4 ответа4

2

Если вы можете подключиться по ssh к хосту с удаленного компьютера, вам нужно проверить брандмауэр на хосте, если порты ssh (22) перенаправлены на vm.

Существует аналогичный вопрос здесь.

Там это брандмауэр UFW, который должен иметь правило, как

ufw route allow 2222/tcp to 192.168.130.128 port 22

разрешить подключение к хосту через порт 2222 и пересылать tcp гостевой виртуальной машине по IP 192.168.130.128:22

И этот пользователь упомянул, что ufw является интерфейсом для iptables , поэтому зайдите на ваш интерфейс или отредактируйте свой iptables в этом роде.

iptables -t nat -A PREROUTING -m tcp -p tcp --dport 2222 -j DNAT --to-destination 192.168.130.128:22

Недостающая часть

Короткая версия Вы сказали iptables добавить правило PREROUTING в nat table . Недостающая часть:

#---------------------------------------------------------------
# After DNAT, the packets are routed via the filter table's
# FORWARD chain.
# Connections on port 22 to the target machine on the private
# network must be allowed.
#---------------------------------------------------------------
# The `\` masks the `linebreak` in the `bash command`
# You can `copy & paste` all the lines at once

# From the manual
# Changing to specific IP and Interfaces  
# being:
# `eth0` your host adapter and
# `vmnet8` your guest adapter

Это соединение с целевой машиной:

iptables -A FORWARD -p tcp -i eth0 -o vmnet8 -d 192.168.130.128 \
    --dport 22 --sport 2222 -m state --state NEW -j ACCEPT

И это фильтр от host interface к вашему guest interface и наоборот.

iptables -A FORWARD -t filter -o eth0 -m state \
         --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -t filter -i vmnet8 -m state \
         --state ESTABLISHED,RELATED -j ACCEPT
1

Здесь вы имеете дело с двумя отдельными сетями. Я приведу вам пример:

IP, который дает вам ваш провайдер = 22.24.42.44
IP вашего роутера = 192.168.2.1
IP хост-системы = 192.168.2.2
IP вашей ВМ = 10.5.5.4

Эта конфигурация - то, как выглядит сеть моей виртуальной среды. Таким образом, у вас на самом деле есть две сети, через которые вам нужно было бы перенести порт, чтобы получить общий доступ к вашей виртуальной машине. Думайте об этом как ваш гипервизора (хост - системы) является маршрутизатором для виртуальной машины.

Я следовал этим инструкциям для настройки моей конфигурации, но у вас может быть более сложная конфигурация ... это зависит от того, какое приложение вы хотите запустить - RDC, apache, ssh. Существует более хорошая информация здесь. Вы должны будете дать больше подробностей, чем я хотел бы попросить на общедоступном сайте, чтобы я помог с подробностями. Принципы всегда одни и те же: установите соединение localhost: <> с физической системой, перешли через VMware Server 2 к порту VM, к которому вы хотите получить доступ (22 для SSH).

0

на хост-сервере centOS 5.6 service iptables stop В большинстве случаев хостам-серверам не требуется запуск iptables, и это может / будет блокировать ваши соединения.

Вы пересылаете ВСЕ порты? 80/443/902/903/

0

У вашего хоста есть виртуальная сетевая карта в сети NAT?

При использовании VMware Workstation 9 на Win7 вам необходимо открыть диспетчер сети и установить флажок "Подключить виртуальный адаптер хоста к этой сети", прежде чем ваш хост подключится к сети NAT. Там, вероятно, аналогичный процесс для Linux.

Это сделано намеренно и позволяет создать безопасную виртуальную сеть, в которой нет "никакого маршрута к хосту" к гипервизору.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .