Ipv6

debian 8:我的機器開始僅將 IPv6 用於 outgoing 連接。如何回到 IPv4?

  • May 22, 2022

debian 8在我的伺服器上執行。最近,伺服器開始只對所有傳出 TCP 連接使用 IPv6。但是,它仍然接受 IPv4 的傳入連接。

因此,我現在無法訪問任何網站(埠 80),建立任何 ssh 連接(埠 22),也無法通過伺服器上的任何 TCP 埠訪問任何其他傳出主機。

iptables -F我通過後跟完全禁用了所有 iptables 規則iptables -X,問題仍然存在。

以下是一些可能相關的命令輸出:

% sudo ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host 
      valid_lft forever preferred_lft forever
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
   link/ether aa:bf:5c:77:b2:82 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
   link/ether f2:3c:91:96:da:28 brd ff:ff:ff:ff:ff:ff
   inet 45.33.123.70/24 brd 45.33.123.255 scope global eth0
      valid_lft forever preferred_lft forever
   inet 45.33.5.47/24 scope global eth0:1
      valid_lft forever preferred_lft forever
   inet 192.168.135.4/17 scope global eth0:2
      valid_lft forever preferred_lft forever
   inet6 2600:3c00::f03c:91ff:fe96:da28/64 scope global mngtmpaddr dynamic 
      valid_lft 87sec preferred_lft 27sec
   inet6 fe80::f03c:91ff:fe96:da28/64 scope link 
      valid_lft forever preferred_lft forever
4: teql0: <NOARP> mtu 1500 qdisc noop state DOWN group default qlen 100
   link/void 
5: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
   link/ipip 0.0.0.0 brd 0.0.0.0
6: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000
   link/gre 0.0.0.0 brd 0.0.0.0
7: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1476 qdisc noop state DOWN group default qlen 1000
   link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
8: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1464 qdisc noop state DOWN group default qlen 1000
   link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
9: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
   link/ipip 0.0.0.0 brd 0.0.0.0
10: ip6_vti0@NONE: <NOARP> mtu 1364 qdisc noop state DOWN group default qlen 1000
   link/tunnel6 :: brd ::
11: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
   link/sit 0.0.0.0 brd 0.0.0.0
12: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1000
   link/tunnel6 :: brd ::
13: ip6gre0@NONE: <NOARP> mtu 1448 qdisc noop state DOWN group default qlen 1000
   link/gre6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

% sudo route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         45.33.123.1     0.0.0.0         UG    0      0        0 eth0
45.33.5.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
45.33.123.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.128.0   0.0.0.0         255.255.128.0   U     0      0        0 eth0

我不知道是什麼導致了這種對僅 IPv6 輸出的更改。但無論如何,我只想回到 IPv4 作為所有傳出連接的預設值。

感謝您的任何見解和建議。

在涉及 IPv6 時,我採用“從軌道上核對它”的方法。

添加ipv6.disable=1到您的核心選項,/etc/default/grub然後執行update-grub並重新啟動:

GRUB_CMDLINE_LINUX_DEFAULT="... ipv6.disable=1"

或者,如果您不能輕鬆修改核心參數,請將其添加到您的 sysctl.conf 或執行 sysctl 以手動設置:

net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1

另一種可能有效的方法是將您的機器配置為首選IPv4。所以它會先嘗試 IPv4,但如果失敗了再嘗試 IPv6。

這可以在/etc/gai.conf

precedence ::ffff:0:0/96  100
scopev4 ::ffff:0.0.0.0/96       14

這告訴getaddrinfo()呼叫優先考慮 IPv4 結果。

引用自:https://unix.stackexchange.com/questions/703459