สรุป
คุณควรตรวจสอบขอบเขตของที่อยู่ IP ของอินเทอร์เฟซเครือข่ายของคุณ ถ้ามันเป็นlink
ที่แหล่งที่อยู่ IP 0.0.0.0
ของแพ็กเก็ตที่ส่งออกนอกท้องถิ่นของคุณจะถูกแทนที่ด้วย ถ้าเป็นglobal
เช่นนั้นคุณจะเข้าสู่อินเทอร์เน็ตตามปกติ
ขอบเขตที่อยู่ IP สามารถพบได้ในip address show
ผลลัพธ์คำสั่งในส่วนของอินเทอร์เฟซเครือข่ายของคุณ
ในการเปลี่ยนขอบเขตคุณสามารถใช้ip address del
เพื่อลบที่อยู่ IP ของโฮสต์ของคุณแล้วใช้ip address add
เพื่อเพิ่มขอบเขตอีกครั้งด้วยขอบเขตที่เหมาะสม หากคุณทำเช่นนั้นเกตเวย์เริ่มต้นจะถูกลบออกจากตารางเส้นทาง ดังนั้นคุณควรเพิ่มด้วยตนเอง
นั่นคือทั้งหมดที่ หลังจากขั้นตอนข้างต้นอินเทอร์เน็ตควรใช้งานได้
ตัวอย่าง
นี่คือตัวอย่าง (เอาต์พุตที่ไม่เกี่ยวข้องบางส่วนถูกตัดทอนและอีกอันคือ (un) เยื้อง):
# ip addr
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:d1:09:56 brd ff:ff:ff:ff:ff:ff
inet 169.254.55.3/16 brd 169.254.255.255 scope link dynamic ens33
valid_lft 1596sec preferred_lft 1596sec
# ip addr del 169.254.55.3/16 dev ens33
# ip addr add 169.254.55.3/16 dev ens33 scope global
# ip addr
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:d1:09:56 brd ff:ff:ff:ff:ff:ff
inet 169.254.55.3/16 scope global ens33
valid_lft forever preferred_lft forever
# ip route add default via 169.254.0.34 dev ens33
# ip route
default via 169.254.0.34 dev ens33
169.254.0.0/16 dev ens33 proto kernel scope link src 169.254.55.3
ทดสอบกับ Fedora 23 และ Centos 7.2 Live CDs
หมายเหตุ
- โซลูชันนี้มีข้อเสียเปรียบหลักในการใช้ที่อยู่แบบคงที่ มันไม่เหมาะกับ LANs และ DHCP ของโฮสเทล
- ฉันค่อนข้างแน่ใจว่ามีบรรทัดการกำหนดค่าอย่างง่าย ๆ อยู่ที่ไหนสักแห่งเพื่อสั่งให้ระบบกำหนดขอบเขตทั่วโลกไปยังที่อยู่การเชื่อมโยงท้องถิ่น (169.254.0.0/16) แต่ฉันยังไม่พบมัน โปรดแจ้งให้เราทราบถ้าคุณทำ
- โปรดทราบว่า distros ที่เก่าแก่และเก่าแก่แล้วไม่มีปัญหานี้ ตัวอย่างเช่น Fedora 12 และ Centos 6.8 ใหม่ (ทั้งหมดมีเคอร์เนลเก่า 2.6.32) ให้ขอบเขตทั่วโลกไปยังที่อยู่ลิงค์ท้องถิ่น
- หากหนึ่งในขอบเขตการเปลี่ยนแปลงที่จะเชื่อมโยงกับ distors เหล่านั้นเขาจะทำงานเป็นปัญหาที่กล่าวถึง: แหล่งที่อยู่ IP ของทุกนอกท้องถิ่น IP
0.0.0.0
แพ็กเก็ตขาออกจะถูกแทนที่ด้วย
- มันน่าสนใจที่จะรู้ว่าอะไรทำให้สิ่งนี้มาแทนที่ ถ้าฉันรู้สิ่งนี้ฉันก็จะหาคำตอบของข้อ 2
- ด้วยขอบเขตทั่วโลกแพ็คเก็ต IP ที่ไม่ใช่ท้องถิ่นจะถูกส่งไปอย่างสมบูรณ์แบบโดยเราเตอร์ NAT ที่สร้างขึ้นใน VMWare Workstation ล่าสุดและโดยเครื่อง Linux ที่มี Fedora 12 ทำงานเป็นเราเตอร์แม้จะเป็น RFCs