Openwrt的在pppd上遇到的resolv.conf.auto问题

在OpenWrt系统中,当有多个WAN接口,包括有线和PPP拨号时,resolv.conf.auto文件可能出现域名解析冲突。为解决这个问题,需要在pppd的ipcp.c文件中修改,确保pppd拨号成功后,向resolv.conf.auto追加而不是覆盖nameserver记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当有多个wan口时,有线的wan口与ppp拨号形成的wan口,在域名解析文件/tmp/resolv.conf.auto会有冲突。导致某个网卡无法正确解析域名。

为了解决此问题,在pppd文件夹下的ipcp.c,修改pppd拨号成功后,不仅向resolv.conf.ppp,也向resolv.conf.auto中写nameserver,并且是继续写入,而非覆盖。


找到下面的函数,其中,_PATH_RESOLV代表前者,_PATH_RESOLV_AUTO1代表后者。

fprintf的参数为w,表示写入覆盖,为a表示继续写入,不覆盖。


/*
 * create_resolv - create the replacement resolv.conf file
 */
static void
create_resolv(peerdns1, peerdns2)
    u_int32_t peerdns1, peerdns2;
{
   
    FILE *f;


    f = fopen(_PATH_RESOLV, "w");
    if (f == NULL) {
error("Failed to create %s: %m", _PATH_RESOLV);
return;
    }

fprintf(f, "# Interface pppd\n"); 

  &nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值