Как исправить локальный IP-адрес в конфигурации Nat на WHM/Cpanel на Centos 6 в Google Compute Engine

Если вы удалили виртуальную машину в Google Compute Engine на сервере Centos 6 Cpanel, а затем создали ее на том же диске, вам часто назначается новый локальный IP-адрес, даже если вы сохранили статический IP-адрес. Это неправильно обновляется в конфигурации NAT на серверах Cpanel/WHM.

Это останавливает работу любых сайтов, и единственный способ исправить это — вручную отредактировать файл http.conf. Внутри Web Host Manager вы можете исправить общедоступный IP-адрес, но нет места для редактирования локального IP-адреса. Кто-нибудь знает, как отредактировать конфигурацию nat на centos 6 в Google Compute Engine, чтобы исправить локальный IP-адрес, чтобы все новые созданные сайты имели правильный локальный IP-адрес в http.conf?

Вот изображение текущей конфигурации nat на моем сервере Centos 6. введите здесь описание изображения

Вот картинка, показывающая мой правильный локальный IP-адрес в Compute Engine, вы можете видеть, что он не соответствует тому, который есть у Cpanel, из-за чего файл http.conf генерирует новые виртуальные хосты с неправильным IP-адресом. введите здесь описание изображения


person Michael Falciglia    schedule 09.02.2015    source источник


Ответы (5)


Это проблема конфигурации в WHM/Cpanel, которую нельзя исправить с помощью каких-либо настроек конфигурации в интерфейсах. Я связался со службой поддержки Cpanel, и они предоставили мне сценарий оболочки командной строки для запуска от root, чтобы решить проблему. Работало безотказно:

# /scripts/build_cpnat

Это решило проблему, но они предоставили дополнительную информацию, если это не решит вашу проблему:

Если это не решит вашу проблему, просмотрите нашу документацию по NAT и убедитесь, что ваш сервер настроен в поддерживаемой конфигурации NAT 1:1: http://documentation.cpanel.net/display/ALD/1%3A1+NAT

person Michael Falciglia    schedule 12.02.2015

Compute Engine не позволяет создавать экземпляры с определенным сетевым IP-адресом. Вам придется использовать комбинацию маршрутов и возможности экземпляра --can-ip-forward для добавления IP-адреса в качестве статического сетевого IP-адреса, который затем сопоставляется с желаемым экземпляром виртуальной машины.

Например, если вы хотите назначить 10.1.1.1 в качестве сетевого IP-адреса для экземпляра виртуальной машины, вы можете создать статический маршрут, который отправляет трафик с 10.1.1.1 на ваш экземпляр, даже если сетевой IP-адрес экземпляра, назначенный вычислительной Engine не соответствует желаемому IP-адресу в сети.

Взгляните на эту ссылку: https://cloud.google.com/compute/docs/instances-and-network#staticnetworkaddress

person Kamran    schedule 11.02.2015

была такая же проблема с AWS и Centos7, на которых размещена последняя версия WHM/cPanel. каждый раз, когда экземпляр перезапускается, новый частный/локальный IP-адрес. Я удалил cpnat из /var/cpanel/, поэтому я отключил NAT, затем я создал другой eth, чтобы я мог настроить его со статическим IP-адресом, который является общедоступным IP-адресом, а затем только для основной учетной записи, которой принадлежат имя хоста и доменное имя для WHM I назначил его локальному IP-адресу, но поскольку локальный IP-адрес постоянно меняется, поэтому я создал скрипт, который запускается при запуске после каждой загрузки, собирая новый локальный IP-адрес и автоматически назначая его основной учетной записи, и если нет нового локального IP-адрес, после чего скрипт завершает работу, ничего не делая.

вот какие шаги были сделаны:

nano /etc/sysconfig/network-scripts/ifcfg-eth0:cp1

и внутри этого файла поместите следующее: (измените IPADDR и DNS)

DEVICE="eth0:cp1"
BOOTPROTO="static"
ONBOOT="yes"
IPADDR="13.54.100.XX"
NETMASK="255.255.255.0"
DNS1="172.31.0.2"
TYPE="Ethernet"
IPV6INIT="no"

теперь мы хотели бы, чтобы этот интерфейс оставался после перезагрузки и запускался при перезагрузке, поэтому запустите:

ifup eth0:cp1

затем перезапустите сетевую службу: перезапуск службы сети

теперь отключите режим NAT, удалив файл cpnat в /var/cpanel

теперь проверьте файл /var/cpanel/mainip и убедитесь, что наш внешний ip там 13.54.100.XX создайте следующий файл с помощью nano:

nano /etc/init.d/fixdhcp

добавьте в файл следующее и сохраните его:

#!/bin/bash
# # This script assigns available DHCP IP to ACCOUNT-NAME user on Reboot or Restart, please change ACCOUNT-NAME to the main WHM domain account name
# apache service will restart when done.    

/scripts/rebuildippool
export mydhcp10=$(cat /etc/ipaddrpool)
echo $mydhcp10

# Exit if no available IPs
if [ "${mydhcp10}" == "" ]; then
echo "ipaddrpool is empty" && exit 1
else
echo "ipaddrpool is not empty"
fi

/usr/local/cpanel/bin/setsiteip -u ACCOUNT-NAME $mydhcp10
chmod +x /etc/rc.d/rc.local
echo finished now restarting services
/scripts/rebuildhttpdconf
/scripts/rebuildippool
/scripts/cleandns
/scripts/fixvaliases
/scripts/modify_accounts --theme=paper_lantern --all-users
/usr/local/cpanel/scripts/updateuserdomains
service httpd restart

сделать файл исполняемым:

chmod +x /etc/init.d/fixdhcp

добавить его в rc.d

nano /etc/rc.local

затем добавьте его следующим образом:

/etc/init.d/fixdhcp

сохраните, затем запустите:

chmod +x /etc/rc.d/rc.local

Готово

person Wally    schedule 29.04.2017

Мне просто нужно было изменить локальный IP-адрес на новый в:
/var/cpanel/cpnat
/etc/hosts
/etc/ips.dnsmaster

person Misho    schedule 07.04.2015

Если это все еще не изменится, попробуйте следующее:

(т. е. когда вы перечисляете учетные записи, вы видите старый внутренний IP-адрес, указанный для каждой учетной записи)

WHM -> List Accounts expand desired account (+)
    => Change IP Address
    => select the IP address (even if it is the same external IP)
    => click change.

повторите для каждой затронутой учетной записи.

выход:

The remote dns zone is not consistent with the httpd.conf.
The current ip in httpd.conf is: 10.240.0.3.
The current ip in the dns zone is: 104.154.68.68!

104.154.68.68 will be switched to the new ip as well!

The local dns zone is not consistent with the httpd.conf.
The current ip in httpd.conf is: 10.240.0.3.
The current ip in the dns zone is: 10.240.0.2!

10.240.0.2 will be switched to the new ip as well!

Warning, serious database inconsistency. httpd.conf, local dns, and remote dns all
have different ideas about what the ip address of this site really is. They will now all be changed
to the new ip: 10.240.0.2!

Changed all instances of [10.240.0.3,104.154.68.68] -> [104.154.68.68] in dcmetroc.kellen.hosting
Changed all instances of [10.240.0.3,104.154.68.68] -> [104.154.68.68] in dcmetrocollaborative.org
Updating httpd.conf....Done
System has 0 free ips.

если вы используете nginx, не забудьте пересобрать виртуальные хосты в плагине ngnix!

person Neal Garrett    schedule 27.03.2016