Назад | Перейти на главную страницу

Обеспечить доступ через единый IP

Я назначил выделенный IP-адрес на моем сервере одному из клиентов через Plesk. Но когда он получает доступ к любому внешнему контенту, IP-адрес, отраженный там, поскольку IP-адрес хоста является основным для моего сервера, а не выделенным, который ему назначен. В чем может быть проблема и как я ее решу.

По умолчанию во всех стеках TCP / IP исходящие соединения привязываются к первому адресу на исходящем интерфейсе для маршрута, по которому должно проходить соединение (и если есть два интерфейса, через которые можно маршрутизировать соединение, если не указано иное, будет выбран первый в таблице маршрутизации) - в этом случае ваш основной адрес. Если вам нужно создать видимость того, что вы пришли с одного из других адресов, или вам нужно / вы хотите принудительно выбрать интерфейс, через который маршрутизируется соединение, вам необходимо указать локальный интерфейс или адрес для привязки.

Многие библиотеки и инструменты предоставляют эту опцию, например cURL с ней --interface вариант:

curl --interface 192.168.1.10 http://www.example.com/document.html
curl --interface eth2 http://www.example.com/document.html
curl --interface eth0:1 http://www.example.com/document.html

который предоставляется большинством языковых привязок для libcurl, например, в PHP:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_INTERFACE, "192.168.1.10");
curl_exec($ch);
curl_close($ch);

[Я выбрал cURL в качестве примера, так как это очень распространенный метод, используемый для подключения к внешним службам, и вы не указали в своем вопросе, как какие внешние соединения были проблемой. Другие библиотеки и инструменты обычно предлагают аналогичные варианты - подробности смотрите в их документации]

Это не то, что вы можете сделать как администратор: ваш пользователь должен обновить свой код, чтобы контролировать, к какому интерфейсу / адресу привязаны его исходящие соединения, а не просто позволить стеку IP следовать своему поведению по умолчанию в этом отношении.