MENU

Linux双栈网卡优先使用IPv4

February 20, 2025 • Read: 70 • Linux

在Linux系统中,如果你有一个双栈网卡(同时支持IPv4和IPv6),并且希望优先使用IPv4,可以通过配置系统的路由表和网络策略来实现。以下是几种常见的方法:

方法1:使用sysctl配置
你可以通过修改/etc/sysctl.conf文件来设置网络协议栈的优先级。

打开/etc/sysctl.conf文件:

vi /etc/sysctl.conf

添加或修改以下行来优先使用IPv4:

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

这些设置将禁用IPv6,从而优先使用IPv4。

保存并退出,然后应用更改:

sysctl -p

方法2:使用ip rule和ip route命令
可以通过创建自定义路由策略来优先使用IPv4。

创建一个优先级更高的IPv4路由表:

ip rule add from all fwmark 0x1 lookup 100 prio 100
ip route add default via <IPv4_gateway> dev <interface> table 100

其中<IPv4_gateway>是你的IPv4网关地址,是你的网卡接口名称。

验证配置:

ip rule list
ip route show table 100

方法3:使用/etc/gai.conf配置
/etc/gai.conf文件可以用来配置DNS解析时IPv4和IPv6的优先级。

打开/etc/gai.conf文件:

vi /etc/gai.conf

添加或修改以下行来优先使用IPv4:

precedence ::ffff:0:0/96  100

保存并退出。

方法4:使用iptables设置优先级
你可以使用iptables标记流量并设置优先级。

创建一个标记规则:

iptables -t mangle -A OUTPUT -p tcp --sport 80 -j MARK --set-mark 1

创建一个路由表来处理标记的流量:

ip rule add fwmark 1 table 100
ip route add default via <IPv4_gateway> dev <interface> table 100

总结
以上方法都可以帮助你在Linux系统中优先使用IPv4。根据你的需求和系统配置,选择适合的方法进行设置。

Last Modified: March 29, 2025
Archives QR Code
QR Code for this page
Tipping QR Code