모든 도메인을 localhost로 리디렉션

모든 도메인을 localhost로 리디렉션

저는 AWS Lambda를 사용하고 있습니다. 지금까지 /etc/hosts를 편집했지만 Lambda에서는 편집할 수 없습니다.

Google에 핑을 보내는 스크립트가 있습니다. 그것은 다음과 같습니다:

import subprocess

def aws_handler(a, b):
    ipaddress = 'google.com'  # guess who
    proc = subprocess.Popen(['/usr/bin/ping', '-c', '3', ipaddress],
        stdout=subprocess.PIPE)
    stdout, stderr = proc.communicate()

print(stdout, stderr)

내 Dockerfile은 다음과 같습니다.

FROM public.ecr.aws/lambda/python:3.8 as lambda-base
COPY  ./ ./
RUN yum install -y iputils dnsmasq
RUN echo "nameserver 127.0.0.1" > /etc/resolv.conf
RUN cat /etc/resolv.conf
RUN echo "address=/com/127.0.0.1" >> /etc/dnsmasq.conf
RUN cat /etc/dnsmasq.conf
FROM lambda-base
CMD [ "app.aws_handler" ]

내가 실행하면 다음과 같은 결과가 나타납니다.

(142.250.187.238): icmp_seq=1 ttl=127 time=68.3 ms\n64 bytes from lhr25s34-in-f14.1e100.net
(142.250.187.238): icmp_seq=2 ttl=127 time=67.6 ms\n64 bytes from lhr25s34-in-f14.1e100.net
(142.250.187.238): icmp_seq=3 ttl=127 time=...

핑이 127.0.0.1이 될 것으로 예상하면. 예상대로 작동하지 않는 이유는 무엇입니까?

답변1

두 줄이 있어요/etc/dnsmasq.conf

no-resolv
address=/com/127.0.0.1

및 해당 항목/etc/resolv.conf

nameserver 127.0.0.1

물론 dnsmasq새로운 구성을 확인하려면 재부팅했는지 확인하는 것이 중요합니다.

systemctl restart dnsmasq    # For systemd
# service dnsmasq restart    # Otherwise

시험

ping -c1 bbc.com
PING bbc.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.061 ms

관련 정보