Мне нужно смоделировать отключенный сетевой кабель для тестирования всех приложений, которые мы разрабатываем в моей компании.
У меня на виртуальном боксе около 6 виртуальных машин Cent-OS.
с веб-страницы php мне нужно выбрать сервер и остановить его сеть, а затем запустить ее снова. конечно, я использую ssh для удаленного подключения к другим серверам.
и я, если я остановил eth0 (основная сеть) на сервере. Я не смогу снова связаться с ним по ssh. поэтому мне пришлось найти другой способ сделать это.
Я сделал другое сетевое соединение (только для хоста) между серверами через виртуальный бокс с помощью этого руководство , затем я вошел на один из серверов, чтобы настроить IP для этой новой сети с помощью этих двух команд:
sudo ifconfig eth1 192.168.1.101 up
также
sudo ifconfig eth1 inet 192.168.1.101 broadcast 192.168.1.255 netmask 255.255.255.0 up
но когда я пытаюсь использовать ssh через php:
exec('ssh root@192.168.1.101 2>&1; ',$output);
Я получаю такой вывод:
ssh: connect to host 192.168.1.101 port 22: No route to host
Я не знаю, что я пропустил?
Изменить: это то, что я получаю, когда запускаю маршрут
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.0.204 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, и вы можете делать все, что хотите :)
$ip_eth1= '192.168.1.191';
$port='22';
exec('ssh -p '.$port.' root@'.$ip_eth1.' "ip link set dev eth0 up";');
exec('ssh -p '.$port.' root@'.$ip_eth1.' "ip link set dev eth0 down";');