Score:0

จะขึ้นบัญชีดำความละเอียด DNS ส่วนตัวภายในนักเทียบท่าได้อย่างไร

ธง mm

ปัญหา

ฉันต้องการบล็อกการแก้ไข DNS ที่ส่งคืนที่อยู่ IP ของช่วงส่วนตัว สิ่งที่ฉันพบจนถึงตอนนี้คือ คุณต้องตั้งค่าแคช/เซิร์ฟเวอร์ DNS แบบเรียกซ้ำเพื่อทำสิ่งนั้น อย่างไรก็ตามเนื่องจากฉันต้องการใช้ภายในนักเทียบท่านั่นคือจุดที่ฉันสะดุดกับความยากลำบาก

วิธีที่ง่ายที่สุดที่ฉันพบคือการใช้ dnsmasq (ตามที่อธิบายไว้ในนี้ คำตอบ). ในทางกลับกันเพียงแค่ต้องเรียกใช้กระบวนการเดียวจึงพบข้อมูลเกี่ยวกับ หัวหน้างาน ซึ่งแก้ปัญหานั้น อย่างไรก็ตาม สร้างอิมเมจนักเทียบท่าตัวอย่างและเมื่อฉันใช้เซิร์ฟเวอร์ localhost dns (dnsmasq) โดยการเพิ่มแฟล็ก --dns 127.0.0.1 หรือเปลี่ยน /etc/resolv.conf จากภายในคอนเทนเนอร์ ฉันได้รับข้อผิดพลาด ** เซิร์ฟเวอร์ไม่พบ google.com: REFUSED ซึ่งสมเหตุสมผลหลังจากคำเตือนที่ฉันได้รับในขณะที่เรียกใช้คอนเทนเนอร์:

คำเตือน: การตั้งค่า Localhost DNS (--dns=127.0.0.1) อาจล้มเหลวในคอนเทนเนอร์

สิ่งแวดล้อม

ภาพนักเทียบท่าตัวอย่าง:

จาก Ubuntu: ล่าสุด

RUN ปรับปรุง apt &&\
    ฉลาดอัพเกรด -y

RUN apt install -y ผู้บังคับบัญชา \
    dnsmasq \
    dnsutils \
    iputils-ปิง \
    นาโน

RUN echo "stop-dns-rebind" > /etc/dnsmasq.d/stop-rebinding

คัดลอก Supervisor.conf /etc/supervisor.conf

จุดเข้าใช้งาน ["/usr/bin/supervisord", "-c", "/etc/supervisor.conf"]

Supervisor.conf:

[หัวหน้างาน]
โนดาเอมอน=จริง
logfile=/dev/stdout
logfile_maxbytes=0

[โปรแกรม:dnsmasq]
command=dnsmasq --no-daemon
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

สร้าง:

sudo docker สร้าง -t สุ่มตัวอย่าง nsmasq

วิ่ง:

sudo docker run -it --dns 127.0.0.1 --rm สุ่มตัวอย่าง nsmasq: ล่าสุด

ทำได้หรือไม่?

ฉันต้องการทราบว่ามีวิธีใดที่จะทำให้มันใช้งานได้ (โดยไม่ต้องใช้หลายคอนเทนเนอร์เช่น docker-compose) และ dnsmasq ฉันยังเปิดรับทางเลือกอื่นที่ไม่เกี่ยวข้องกับเซิร์ฟเวอร์แคช dns

สารละลาย: เปลี่ยน Supervisor.conf ถึง:

[หัวหน้างาน]
โนดาเอมอน=จริง
logfile=/dev/stdout
logfile_maxbytes=0

[โปรแกรม:dnsmasq]
command=dnsmasq --no-daemon --interface=lo --stop-dns-rebind
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

อัปเดต Dockerfile ด้วย

จาก Ubuntu: ล่าสุด

RUN ปรับปรุง apt &&\
    ฉลาดอัพเกรด -y

RUN apt install -y ผู้บังคับบัญชา \
    dnsmasq \
    dnsutils \
    iputils-ปิง \
    นาโน \
    เครื่องมือสุทธิ

RUN echo "listen-address=127.0.0.1\nbind-interfaces\nstop-dns-rebind" > /etc/dnsmasq.d/stop-rebinding &&\
    echo "\nserver=8.8.8.8\nserver=8.8.4.4\nno-resolv" >> /etc/dnsmasq.conf

คัดลอก Supervisor.conf /etc/supervisor.conf

จุดเข้าใช้งาน ["/usr/bin/supervisord", "-c", "/etc/supervisor.conf"]

Score:1
ธง jp

เซิร์ฟเวอร์ไม่พบ google.com: ปฏิเสธ หมายความว่าไม่มีเซิร์ฟเวอร์ DNS ที่รับฟังที่อยู่ที่ระบุ โดยค่าเริ่มต้น dnsmasq จะไม่ฟังต่อ 127.0.0.1 ที่อยู่.

itasahobby avatar
mm flag
นั่นอาจเป็นเหตุผล แต่เมื่อฉันใช้ `netstat` แสดงว่ากำลังฟังอยู่ (แก้ไขโพสต์เพื่อรวมข้อมูลนั้น)
jp flag
`0.0.0.0` ไม่เหมือนกับ `127.0.0.1`
itasahobby avatar
mm flag
แย่จัง ฉันคิดว่าการใช้ 0/0 จะรวม localhost ด้วย จะลองบังคับให้ localhost ขอบคุณจนถึงตอนนี้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา