Я использую Debian 6 - 64-разрядный, и так выглядит мой файл / etc / network / interfaces
auto eth0
iface eth0 inet static
address PrimaryIP
gateway X.X.X.X
netmask 255.255.255.0
auto eth0:1
iface eth0:1 inet static
address SecondaryIP
gateway X.X.X.X
netmask 255.255.255.0
auto lo
iface lo inet loopback
Мне нужно переключаться между первичным и вторичным IP-адресами для большинства моих процессов / сценариев, поэтому довольно часто я заменяю PrimaryIP на SecondaryIP (и наоборот) в приведенном выше файле и перезапускаю интерфейсы, чтобы изменить работу первичной IP-системы. .
Проблема, с которой я столкнулся, заключается в том, что, хотя основной IP-адрес системы установлен в указанном выше файле и отлично работает после перезапуска сети, IP-адрес session / ssh по-прежнему остается вторичным. Поэтому, когда система использует PrimaryIP, все, что я выполняю в сеансе SSH, по-прежнему выполняется как SecondaryIP.
Заметка: Я также пробовал войти в систему с обоими IP-адресами, но сеанс по-прежнему блокируется на вторичном IP-адресе, хотя любые системные команды, такие как cronjobs, выполняются как первичные.
Вам нужно привязать запрос к соответствующему интерфейсу. Например. для завитка:
curl --interface eth0: 1 .....
Если команда, которую вы выполняете, не позволяет вам подключиться к IP / интерфейсу, тогда вы SOOL ...
Или используйте SOCKS или что-то еще, чтобы заставить сервер использовать определенный IP.
После нескольких дней работы я наконец нашел ответ на свой вопрос.
Правильный способ настройки вторичного интерфейса - не включать параметр «шлюз».
auto eth0:1
iface eth0:1 inet static
address SecondaryIP
netmask 255.255.255.0