![无法删除 IPv6 默认网关](https://linux22.com/image/1078663/%E6%97%A0%E6%B3%95%E5%88%A0%E9%99%A4%20IPv6%20%E9%BB%98%E8%AE%A4%E7%BD%91%E5%85%B3.png)
下面的命令应该很容易理解。请注意,我失败的路线是由 RA 获得的,并且有效期很短(e
标记在 中UDAe
)。
@vm:~$ ip -6 route
2001:4860:4001:800::1002 via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
2001:4860:4001:800::1003 via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
2001:4860:4001:800::1005 via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
2001:4860:4001:803::100e via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
fd00:ffff:ffff:fff1::/64 dev eth1 proto kernel metric 256 expires 2592300sec
fe80::/64 dev eth1 proto kernel metric 256
default via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1
default via fe80::20c:29ff:fe87:f9e7 dev eth1 proto kernel metric 1024 expires 1776sec
@vm:~$
@vm:~$
@vm:~$
@vm:~$ sudo route -6 delete default gw fe80::20c:29ff:fe87:f9e7
@vm:~$ ip -6 route
2001:4860:4001:800::1002 via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
2001:4860:4001:800::1003 via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
2001:4860:4001:800::1005 via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
2001:4860:4001:803::100e via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
fd00:ffff:ffff:fff1::/64 dev eth1 proto kernel metric 256 expires 2592279sec
fe80::/64 dev eth1 proto kernel metric 256
default via fe80::20c:29ff:fe87:f9e7 dev eth1 proto kernel metric 1024 expires 1755sec
@vm:~$
@vm:~$
@vm:~$ sudo route -6 delete ::/0 gw fe80::20c:29ff:fe87:f9e7 dev eth1
SIOCDELRT: No such process
@vm:~$
@vm:~$
@vm:~$ route -n6
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
2001:4860:4001:800::1002/128 fe80::20c:29ff:fe87:f9e7 UG 1024 0 0 eth1
2001:4860:4001:800::1003/128 fe80::20c:29ff:fe87:f9e7 UG 1024 0 0 eth1
2001:4860:4001:800::1005/128 fe80::20c:29ff:fe87:f9e7 UG 1024 0 0 eth1
2001:4860:4001:803::100e/128 fe80::20c:29ff:fe87:f9e7 UG 1024 0 0 eth1
fd00:ffff:ffff:fff1::/64 :: UAe 256 0 0 eth1
fe80::/64 :: U 256 0 0 eth1
::/0 fe80::20c:29ff:fe87:f9e7 UGDAe 1024 0 0 eth1
::/0 :: !n -1 1 349 lo
::1/128 :: Un 0 1 3 lo
fd00:ffff:ffff:fff1:a00:27ff:fe7f:7245/128 :: Un 0 1 0 lo
fd00:ffff:ffff:fff1:fce8:ce07:b9ea:389f/128 :: Un 0 1 0 lo
fe80::a00:27ff:fe7f:7245/128 :: Un 0 1 0 lo
ff00::/8 :: U 256 0 0 eth1
::/0 :: !n -1 1 349 lo
@vm:~$
更新:另一个问题是链接本地地址作为默认路由有什么用?
答案1
您尝试删除的路由看起来像是内核响应路由器通告 (RA) 自动添加的路由。请注意,如果您删除它,那么当路由器发出另一个通告时,它可能会在 5 分钟内自行恢复,因为它通常会定期发出另一个通告。如果您不想让您的机器监听路由器通告,那么您可能需要执行以下操作:
echo 0 >/proc/sys/net/ipv6/conf/eth1/accept_ra
如果您这样做,您甚至不必费心手动将其删除:它会在几分钟内自然过期时消失。
不过,如果您愿意,您可以手动删除它。只是看起来该route
命令无法做到这一点。请ip
改用以下命令:
ip route del ::/0 via fe80::20c:29ff:fe87:f9e7 dev eth1
事实上,如果你只在 Linux 下工作,那么我建议你始终使用该ip
命令作为全部以下命令:route
、ifconfig
和netstat
。它的语法比任何其他命令都更容易处理,它将它们全部统一在一起,并且只有通过它才能使用某些功能(例如ip rule
和)。ip tunnel