У меня есть эластичный IP-адрес на AWS, который я хочу перенаправить на общедоступный IP-адрес за пределами AWS.
Есть идеи, как я могу это сделать?
В зависимости от того, что стоит за EIP, вы можете использовать SSH-туннелирование локального порта.
Это предполагает, что у вас есть Linux-сервер, работающий за EIP. Если у вас есть только EIP и за ним нет EC2, я не думаю, что вы сможете это сделать, кроме того, это кажется странной проблемой, которую вы пытаетесь решить, что вы на самом деле пытаетесь сделать?
как упоминал @ceejayoz, iptables может выполнять перенаправление на уровне 3/4, однако, если вы обслуживаете протокол tcp, такой как http, вы можете использовать haproxy или nginx для перенаправления на уровне 7, и это позволит вам более точно детализированный контроль (например, перезапись URL и т. д.)
Я смог использовать nginx для обработки 301 перенаправления на страницу входа в aws.
Перейдите в папку conf nginx (в моем случае это /etc/nginx/sites-available
в котором я создаю символическую ссылку на /etc/nginx/sites-enabled
для включенных файлов conf).
Затем добавьте путь перенаправления:
server {
listen 80;
server_name aws.example.com;
return 301 https://myaccount.signin.aws.amazon.com/console;
}
Если вы используете nginx, у вас, скорее всего, будут дополнительные серверные блоки (virtualhosts в терминологии apache) для обработки вершины вашей зоны (example.com) или того, как вы ее настроили. Убедитесь, что один из них установлен в качестве сервера по умолчанию.
server {
listen 80 default_server;
server_name example.com;
# rest of config ...
}
В Route 53 добавьте запись A для aws.example.com
и установите в качестве значения тот же IP-адрес, который используется для вершины вашей зоны.