У меня две виртуальные машины CentOS на VirtualBox. один из них, скажем, CentOS-1 содержит код моего веб-приложения. второй - CentOS2.
У меня есть два сетевых соединения между этими двумя серверами: мостовое и только для хоста.
CentOS-1 : для мостового соединения IP: 192.168.0.137
для подключения только к хосту IP: 192.168.1.137CentOS-2 : для мостового соединения IP: 192.168.0.101
для подключения только к хосту IP: 192.168.1.101
на моей веб-странице php, когда я пытаюсь использовать ssh следующим образом:
exec('ssh -p 22 root@192.168.0.101 2>&1 ',$output);
он работает, но когда я пытаюсь подключиться к IP-адресу сети только для хоста:
exec('ssh -p 22 root@192.168.1.101 2>&1 ',$output);
Я получил это как результат:
ssh: connect to host 192.168.1.101 port 22: No route to host
Я попытался повторно сгенерировать открытый ключ для 192.168.0.137 и скопировать его на 192.168.0.101, но это не помогло. Я также пытался дать привилегии пользователю apache:
в CentOS-2: sudo -u apache ssh root@192.168.1.137 "pwd"
sudo -u apache ssh root@192.168.0.137 "pwd"
на CentOS-1:
sudo -u apache ssh root@192.168.1.101 "pwd"
sudo -u apache ssh root@192.168.0.101 "pwd"
ни один из двух способов не помог. есть что-то, что я пропустил?
Вывод ifconfig -a:
$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 08:00:27:0B:56:0E
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe0b:560e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5652 errors:0 dropped:0 overruns:0 frame:0
TX packets:4886 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:833395 (813.8 KiB) TX bytes:769122 (751.0 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:FA:C6:32
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:6315 errors:0 dropped:0 overruns:0 frame:0
TX packets:6315 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:878894 (858.2 KiB) TX bytes:878894 (858.2 KiB)
и вывод маршрута:
$ sudo ifconfig eth1 inet 192.168.1.101 broadcast 192.168.1.255 netmask 255.255.255.0 up
[sudo] password for safaa:
[safaa@AMeS101 ~]$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default mbox.kds.local 0.0.0.0 UG 0 0 0 eth0
Заранее спасибо .
вот ответ:
на CentOS1:
sudo ifconfig eth1 192.168.1.191 netmask 255.255.255.0 up
sudo touch /etc/sysconfig/network-scripts/ifcfg-eth1
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
IPADDR=192.168.1.191
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
sudo ifup eth1
на CentOS1 кто ssh на этот сервер:
sudo -u apache ssh root@192.168.1.191"pwd"
тогда apache может ssh на 192.168.1.191, и вы можете делать все, что хотите :)
Вам нужно будет сделать несколько вещей.
Предполагая, что проверка связи одного компьютера с другим приводит к той же ошибке, попробуйте выполнить эту команду. Настройка маршрута
route
Скорее всего, вы не увидите для этого никаких правил. Предполагая, что вы установили IP-адреса в правильных файлах информация о centos netowkring
/etc/sysconfig/network
как только сеть и маршрут настроены, вы сможете разговаривать друг с другом. Чтобы проверить, не отправляет ли кто-то данные обратно, tcpdump - ваш друг. Справка по tcpdump