จะปิดการใช้งาน ipv6 บนอินเทอร์เฟซเฉพาะใน linux ได้อย่างไร?


24

มีใครช่วยบอกวิธีปิดการใช้งาน ipv6 auto-config บนอินเทอร์เฟซเครือข่ายเฉพาะใน CentOS ได้ไหม

สถานการณ์ปัจจุบันคือ:

พีซีมีอะแดปเตอร์เครือข่ายสองตัวคือ eth0 และ eth1 ที่เชื่อมต่อกับ LAN เดียวกันซึ่งเราเตอร์ IPv6 กำลังโฆษณาคำนำหน้า IPv6 ด้วยแพ็กเก็ต NDRA (Neighbor Discovery Router Advertisements) เป็นผลให้ทั้ง eth0 และ eth1 กำลังกำหนดค่าที่อยู่ IPv6 ด้วยคำนำหน้านั้นโดยอัตโนมัติ

แต่ฉันแค่ต้องการเปิดใช้งาน ipv6 บน eth1 และปิดการใช้งานบน eth0 ฉันได้ลองวิธีต่อไปนี้แล้ว แต่มันไม่ทำงาน

1. / etc / sysconfig / เครือข่าย

NETWORKING_IPV6=no
IPV6_AUTOCONF=no

สิ่งนี้จะปิดใช้งาน ipv6 บนทั้ง eth0 และ eth1

2. / etc / sysconfig / network-สคริปต์ / ifcfg-eth0

IPV6INIT=no
IPV6_AUTOCONF=no

จากนั้นใช้งานไม่ได้ ฉันได้เริ่มบริการเครือข่ายแล้ว ฉันสับสนเล็กน้อยเกี่ยวกับปัญหานี้ ขอบคุณล่วงหน้า.


1
sysconfig.txt บอกเป็นนัยอย่างแน่นอนว่าสิ่งที่คุณทำควรปิดใช้งาน IPv6 บนอินเทอร์เฟซเฉพาะ อย่างไรก็ตามดูเหมือนว่าธงเหล่านั้นจะถูกละเว้น มีรายงานข้อผิดพลาดสองรายการเกี่ยวกับสิ่งนี้ซึ่งถูกละเว้นเช่นกัน ดูbugzilla.redhat.com/show_bug.cgi?id=982740 & bugzilla.redhat.com/show_bug.cgi?id=496444
Stefan Lasiewski

คำตอบ:


41

คุณสามารถปิดการใช้งานได้จาก /etc/sysctl.conf ด้วยบรรทัดนี้:

net.ipv6.conf.eth0.disable_ipv6 = 1

ดูที่ / proc / sys / net / ipv6 / conf / eth0 มีตัวเลือกมากมายที่คุณสามารถตั้งค่าในไดเรกทอรีนั้นได้เช่นเปิดใช้งาน IPv6 ไว้ แต่ปิดการใช้งาน autoconf เป็นต้น


4
FYI สำหรับผู้ที่ต้องการปิดการใช้งานทั้งหมดไม่ใช่เพียงแค่หนึ่งอินเทอร์เฟซเพียงแค่แทนที่ "eth0" ด้วย "all"
Peter

1
จริงๆแล้วแทนที่จะทำการแก้ไข/etc/sysctl.confให้สร้างไฟล์ใน/etc/sysctl.dชื่อเช่น00_ipv6_off.confกับเนื้อหาข้างต้น ifconfigจะแสดงส่วนต่อประสานการทำงานของ IPv6
David Tonhofer

ในหนึ่งบรรทัด:echo "net.ipv6.conf.eth0.disable_ipv6 = 1" > /etc/sysctl.d/00_ipv6_off.conf
David Tonhofer

11
$ sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=1

deprecates

# echo 1 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6

เพื่อให้มั่นใจว่าการเปลี่ยนแปลงนี้จะยังคงมีอยู่ในการรีบูตคุณจะต้องเพิ่มบรรทัดนี้ใน/etc/sysctl.confไฟล์ของคุณ:

net.ipv6.conf.eth0.disable_ipv6=1

โปรดทราบว่าการใช้/etc/sysconfig/network-scripts/ifcfg-eth0ไฟล์นี้ไม่สามารถพกพาได้


3

คุณควรรูทเพื่อตั้งค่าพารามิเตอร์เครือข่ายด้านล่าง:

echo 1 > /proc/sys/net/ipv6/conf/wlan0/disable_ipv6

สิ่งนี้จะทำงานในโปรแกรมติดตั้งเช่นกันหากตัวติดตั้งเดเบียนติดค้างที่การตรวจจับการตั้งค่าเครือข่าย ไปที่คอนโซล (alt + 2) และพิมพ์คำสั่งนี้ กลับไปที่ตัวติดตั้ง กด Ctrl + C เพื่อออกจากการตรวจจับและเริ่มต้นการตรวจจับเครือข่ายอีกครั้ง
lsu_guy

1

การใช้ตัวแปรต่อไปนี้ใน ifcfg-eth0 หรือ ifcfg-eth1:

IPV6INIT=no
IPV6_AUTOCONF=no

ควรทำเคล็ดลับ หากต้องการย้ำ:

/ etc / sysconfig / เครือข่าย

NETWORKING_IPV6=yes
IPV6_AUTOCONF=yes

/ etc / sysconfig / เครือข่ายสคริปต์ / ifcfg-eth0

IPV6INIT=no
IPV6_AUTOCONF=no

/ etc / sysconfig / เครือข่ายสคริปต์ / ifcfg-eth0

IPV6INIT=yes
IPV6_AUTOCONF=yes

จากนั้นตรวจสอบให้แน่ใจว่าคุณรีสตาร์ทบริการเครือข่าย:

% /etc/init.d/network restart

หากคุณเรียกใช้ifconfigคุณควรเห็น inet6 บนอุปกรณ์อีเธอร์เน็ต (ทั้ง eth0 หรือ eth1) ที่เปิดใช้งาน ipv6

% ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 01:26:BD:85:CA:30  
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::226:c7ff:fe85:a720/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2497072 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2253781 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2004576667 (1.8 GiB)  TX bytes:1296051472 (1.2 GiB)

ใช่มันแปลกเล็กน้อย การตั้งค่า "net.ipv6.conf.eth0.disable_ipv6 = 1" เป็นทางออกที่ดี ขอบคุณสำหรับคำตอบ.
Yves Messi

1
อืมฉันไม่ได้นั่งพับเพียบในระบบของฉัน (RH 6.5 X86_64 บนสภาพแวดล้อมแบบเสมือนจริง) ดีที่จะรู้ว่าสิ่งเหล่านั้นสำหรับระบบที่ใช้งานได้ดี
luis.espinal
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.