ฉันมีเครื่องเสมือนที่ใช้ QEMU/KVM พร้อม CentosOS 6.4 ซึ่งไม่สามารถเชื่อมต่อกับอินเทอร์เน็ตได้อย่างสมบูรณ์ ฉันสามารถ ping ที่อยู่ IP (เช่น ปิง 8.8.8.8
ทำงานได้สำเร็จ) แต่ชื่อโดเมนไม่ได้รับการแก้ไข (เช่น ping google.com
ผลตอบแทน ping: โฮสต์ที่ไม่รู้จัก google.com
).
ผู้เยี่ยมชมมี IP แบบคงที่ที่กำหนดให้กับมัน และฉันกำลังใช้เครือข่ายเริ่มต้น (อิงตาม NAT):
<network>
<name>default</name>
<uuid>8c257186-7af4-4e19-a086-27f50f692af6</uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:d6:62:2d'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
/run/resolvconf/resolv.conf
ไม่มีอยู่ใน VM; และทั้งสองอย่าง resolvconf
, nslookup
, systemctl
, เจ้าภาพ
, ชื่อโฮสต์
, หรือ เอ็นเอ็มซีแอล
มีการติดตั้งโปรแกรม ดังนั้นความสามารถในการเรียกใช้การวินิจฉัยการตั้งค่าเครือข่ายจึงถูกจำกัด
ฉันได้ลองทำสิ่งต่อไปนี้แล้ว:
- แก้ไข
/etc/sysconfig/network-scripts/ifcfg-eth0
โดยการเพิ่ม DNS1=8.8.8.8
, DNS2=8.8.4.4
และ PEERDNS=ใช่
. หลังจากรีบูตเครื่อง สิ่งนี้จะถูกสร้างขึ้น /etc/resolv.conf
ซึ่งเดิมไม่มีอยู่แล้ว
- การแทนที่ "โฮสต์: ไฟล์ dns" ด้วย "โฮสต์: ไฟล์ dns nisplus nis" ใน
/etc/nsswitch.conf
จากนั้นรีบูตเครื่อง
- กำลังติดตาม คู่มือนี้ เพื่อสร้างเครือข่ายเฉพาะโฮสต์
- กำลังติดตาม คู่มือนี้ เพื่อสร้างสะพานเสมือนผ่าน qemu-bridge-helper
- (นอกจากนี้ ฉันพยายามสร้างการแชร์ไฟล์ระหว่างแขกและโฮสต์ผ่าน คู่มือนี้แต่ต้องใช้ 9p ซึ่งเป็นระบบไฟล์ที่ CentOS 6 ไม่รองรับ)
แต่ในการพยายามแต่ละครั้ง โฮสต์ยังคงไม่สามารถ SSH เข้าสู่/ping แขกได้ และแขกไม่สามารถแก้ไขชื่อโดเมนได้ ความช่วยเหลือใด ๆ ในการบรรลุขั้นตอนใดขั้นตอนหนึ่งจากสองขั้นตอนนี้ (โฮสต์สามารถ SSH เข้าสู่แขกได้; แขกเชื่อมต่อกับอินเทอร์เน็ตอย่างสมบูรณ์) จะเป็นพระคุณอย่างสูง
ต่อไปนี้เป็นเนื้อหาไฟล์/เอาต์พุตบรรทัดคำสั่งที่อาจเป็นประโยชน์ ยินดีให้ข้อมูลเพิ่มเติม
เนื้อหาของ /etc/resolv.conf
(แขก):
ตัวเลือก edns0 trust-ad
; สร้างโดย /sbin/dhclient-script
เนมเซิร์ฟเวอร์ 8.8.8.8
เนมเซิร์ฟเวอร์ 8.8.4.4
ผลลัพธ์ของ ไอพี
(แขก):
1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 ขอบเขตโฮสต์เลย
inet6 ::1/128 ขอบเขตโฮสต์
valid_lft ตลอดไป reserved_lft ตลอดไป
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast สถานะ UP qlen 1000
ลิงค์/อีเธอร์ 52:54:00:7b:6c:27 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.92/22 brd 192.168.123.255 ขอบเขตทั่วโลก eth0
ลิงค์ขอบเขต inet6 fe80::5054ï¬fe7b:6c27/64
valid_lft ตลอดไป reserved_lft ตลอดไป
ผลลัพธ์ของ ssh 192.168.122.92
(เจ้าภาพ):
ssh: เชื่อมต่อกับโฮสต์ 192.168.122.92 พอร์ต 22: การเชื่อมต่อถูกปฏิเสธ
ผลลัพธ์ของ ปิง 192.168.122.92
(เจ้าภาพ):
PING 192.168.122.92 (192.168.122.92) 56(84) ไบต์ของข้อมูล
จาก 192.168.122.1 icmp_seq=1 พอร์ตปลายทางไม่สามารถเข้าถึงได้
ping: sendmsg: ไม่อนุญาตให้ดำเนินการ
จาก 192.168.122.1 icmp_seq=2 พอร์ตปลายทางไม่สามารถเข้าถึงได้
ping: sendmsg: ไม่อนุญาตให้ดำเนินการ
จาก 192.168.122.1 icmp_seq=3 พอร์ตปลายทางไม่สามารถเข้าถึงได้
ping: sendmsg: ไม่อนุญาตให้ดำเนินการ
จาก 192.168.122.1 icmp_seq=4 ไม่สามารถเข้าถึงพอร์ตปลายทางได้
ping: sendmsg: ไม่อนุญาตให้ดำเนินการ
^ซี
--- สถิติ ping 192.168.122.92 ---
ส่งแพ็กเก็ต 4 แพ็กเก็ต ได้รับ 0 ข้อผิดพลาด +4 แพ็กเก็ตสูญหาย 100% เวลา 3065ms
แก้ไข 1
เนื้อหาของ /etc/sysconfig/network-scripts/ifcfg-eth0
(แขก):
อุปกรณ์=eth0
HWADDR=52:54:00:7B:6C:27
TYPE=อีเธอร์เน็ต
ONBOOT=ใช่
NM_CONTROLLED=ไม่
BOOTPRONTO=ไม่มี
IPADDR=192.168.122.92
NETMASK=255.255.252.0
เกตเวย์=192.168.122.1
DNS1=8.8.8.8
DNS2=8.8.4.4
PEERDNS=ใช่
แก้ไข 2
ผลลัพธ์ของ iptables-บันทึก
(เจ้าภาพ):
# สร้างโดย iptables-save v1.8.4 ในวันจันทร์ที่ 3 มกราคม 22:03:26 น. 2565
* แหลกเหลว
: ยอมรับ [86972:77359835]
: ยอมรับอินพุต [86966:77359331]
:ส่งต่อ ยอมรับ [6:504]
: ยอมรับเอาต์พุต [87805:9060728]
: ยอมรับภายหลัง [69226:7583136]
:LIBVIRT_PRT - [0:0]
-A โพสต์ -j LIBVIRT_PRT
-A LIBVIRT_PRT -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-เติม
ให้สัญญา
# เสร็จสิ้นเมื่อวันจันทร์ที่ 3 มกราคม 22:03:26 น. 2565
# สร้างโดย iptables-save v1.8.4 ในวันจันทร์ที่ 3 มกราคม 22:03:26 น. 2565
*แนท
:PREROUTING ยอมรับ [4:1038]
: ยอมรับอินพุต [3:954]
: ยอมรับเอาต์พุต [19614:1550200]
: ยอมรับภายหลัง [1032:73142]
:LIBVIRT_PRT - [0:0]
-A โพสต์ -j LIBVIRT_PRT
-A LIBVIRT_PRT -s 192.168.122.0/24 -d 224.0.0.0/24 -j ผลตอบแทน
-A LIBVIRT_PRT -s 192.168.122.0/24 -d 255.255.255.255/32 -j กลับ
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-พอร์ต 1024-65535
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j สวมหน้ากาก
ให้สัญญา
# เสร็จสิ้นเมื่อวันจันทร์ที่ 3 มกราคม 22:03:26 น. 2565
# สร้างโดย iptables-save v1.8.4 ในวันจันทร์ที่ 3 มกราคม 22:03:26 น. 2565
*กรอง
: ยอมรับอินพุต [86966:77359331]
:ส่งต่อ ยอมรับ [0:0]
: ยอมรับเอาต์พุต [69220:7582632]
:LIBVIRT_FWI - [0:0]
:LIBVIRT_FWO - [0:0]
:LIBVIRT_FWX - [0:0]
:LIBVIRT_INP - [0:0]
:LIBVIRT_OUT - [0:0]
-อินพุต -j LIBVIRT_INP
-A ส่งต่อ -j LIBVIRT_FWX
-A ส่งต่อ -j LIBVIRT_FWI
-A ส่งต่อ -j LIBVIRT_FWO
-A OUTPUT -j LIBVIRT_OUT
-A LIBVIRT_FWI -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
-A LIBVIRT_FWI -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A LIBVIRT_FWO -s 192.168.122.0/24 -i virbr0 -j ยอมรับ
-A LIBVIRT_FWO -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A LIBVIRT_FWX -i virbr0 -o virbr0 -j ยอมรับ
-A LIBVIRT_INP -i virbr0 -p udp -m udp --dport 53 -j ยอมรับ
-A LIBVIRT_INP -i virbr0 -p tcp -m tcp --dport 53 -j ยอมรับ
-A LIBVIRT_INP -i virbr0 -p udp -m udp --dport 67 -j ยอมรับ
-A LIBVIRT_INP -i virbr0 -p tcp -m tcp --dport 67 -j ยอมรับ
-A LIBVIRT_OUT -o virbr0 -p udp -m udp --dport 53 -j ยอมรับ
-A LIBVIRT_OUT -o virbr0 -p tcp -m tcp --dport 53 -j ยอมรับ
-A LIBVIRT_OUT -o virbr0 -p udp -m udp --dport 68 -j ยอมรับ
-A LIBVIRT_OUT -o virbr0 -p tcp -m tcp --dport 68 -j ยอมรับ
ให้สัญญา
# เสร็จสิ้นเมื่อวันจันทร์ที่ 3 มกราคม 22:03:26 น. 2565
แก้ไข 3
ผลลัพธ์ของ sudo iptables-บันทึก
(แขก):
# สร้างโดย iptables-save v1.4.7 ในวันพฤหัสบดีที่ 6 มกราคม 05:53:35 น. 2565
*กรอง
:อินพุต ยอมรับ [0:0]
:ส่งต่อ ยอมรับ [0:0]
: ยอมรับเอาต์พุต [0:0]
-อินพุต -p tcp -m tcp --dport 22 -m conntrack --ctstate ใหม่ ก่อตั้ง -j ยอมรับ
-A OUTPUT -p tcp -m tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ยอมรับ
ให้สัญญา
# เสร็จสิ้นเมื่อ พฤ. 6 ม.ค. 05:53:35 น. 2565