奇怪的 DNS 问题,太多程序能修改系统 DNS 了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
dbg
V2EX    Linux

奇怪的 DNS 问题,太多程序能修改系统 DNS 了

  •  
  •   dbg 2022-12-15 16:36:09 +08:00 5021 次点击
    这是一个创建于 1038 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在用 tailscale ,这虚拟组网工具配置起来超简单,太爱这样的工具了,在我所有的 windows 操作机和 Linux VPS 上安装都非常顺利,唯独在我的 Arch Linux 笔记本电脑上出了问题:启动 tailscale 后能连通虚拟网的 IP ,但是 DNS 有问题,无法使用 VPS 作为出口( exit node )。按照官网的说明调整了还是没用。
    https://tailscale.com/kb/1188/linux-dns/#dhcp-dhclient-overwriting-etcresolvconf
    最后发现是 Arch Linux 的 dhcpcd 在自动更新 resolv.conf 导致的,最终解决方法如下:

    #不要让 dhcpcd 接管 resolv.conf ,增加如下配置
    vim /etc/dhcpcd.conf
    nohook resolv.conf

    systemctl reload dhcpcd

    #不要让 NetworkManager 接管 resolv.conf
    vim /etc/NetworkManager/NetworkManager.conf 文件:
    [main]
    dns=none

    systemctl reload NetworkManager

    #让 systemd-resolved 接管 resolv.conf
    ln -rsf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
    systemctl enable --now systemd-resolved

    #重启 tailscaled
    systemctl restart tailscaled

    问题解决。

    在 Linux 平台上,能设置系统 DNS 的程序,真是不少,看来以后要多注意了。
    11 条回复    2022-12-16 14:28:50 +08:00
    dagouxiong
        1
    dagouxiong  
       2022-12-15 16:40:04 +08:00
    使用 VPS 作为出口( exit node ),怎么实现,1.这个 VPS 开启 exit node 功能,2.其他机器是把网关指向到这个 IP 吗?
    dbg
        2
    dbg  
    OP
       2022-12-15 16:43:10 +08:00
    @dagouxiong 使用如下命令
    sudo tailscale up --exit-node=<你有 exit node 功能的节点名称或者 IP>
    这样就可以把本机流量全部转发给 exit node 处理了,这个功能很方便,还能用来科学上网。
    dagouxiong
        3
    dagouxiong  
       2022-12-15 16:46:53 +08:00
    @dbg 最近我也安装了 tailscale +DERP 服务器,做了异地虚拟组网,确实挺方便的。exit node 功能又看过,还没实验下,我去试试看。
    wwbfred
        4
    wwbfred  
       2022-12-15 22:13:02 +08:00
    我改 DNS 都是删了 resolv.conf 的软链接,然后直接建立一个文件,写入想用的 DNS 地址。
    别的方法都是在搞笑,折腾半天也不好使。尤其是 Ubuntu 自带的那个 systemd-resolved 还是什么玩意,我到现在都没搞清楚那玩意究竟怎么修改配置。
    root01
        5
    root01  
       2022-12-16 09:09:32 +08:00
    @dagouxiong 教程分享一下呢
    dagouxiong
        6
    dagouxiong  
       2022-12-16 10:38:23 +08:00
    @root01 安装 tailscale ,直接去官网用一键脚本,debian 系统很顺利。安装完成之后,假设本机器内网 IP 是 192.168.99.X ,命令
    tailscale up --auth-key=秘钥 --accept-routes --advertise-exit-node --advertise-routes=192.168.99.0/24
    参数说明

    --accept-routes
    允许使用其他机器的子网路由

    --advertise-exit-node
    允许本机器设置为 出口节点

    --advertise-routes=192.168.99.0/24
    设置本机器为子网路由,

    --auth-key=秘钥,秘钥从哪来。授权秘钥 https://login.tailscale.com/admin/settings/keys 菜单路径 Personal-- Settings--Auth keys
    dagouxiong
        7
    dagouxiong  
       2022-12-16 10:40:21 +08:00
    @root01 有需要的话,还要去网页端开启 子网路由 出口节点 功能。可以参考这个博文 https://imnks.com/5554.html
    AlynxZhou
        8
    AlynxZhou  
       2022-12-16 11:40:39 +08:00   1
    首先问题在于你开了 NetworkManager 为什么要开 dhcpcd ,NetworkManager 本身就是全功能的网络管理,他们之间功能有重复。

    然后我最近恰好研究了一下到底该让谁管 DNS 解析,我的结论是普通用户全都交给 NetworkManager 就可以了,其它的尽量关掉,普通使用也没必要用 systemd-resolved ,除非你真的有什么特殊需求要用它:<https://sh.alynx.one/posts/Who-Moved-My-DNS-Resolving/>
    pagxir
        9
    pagxir  
       2022-12-16 13:00:13 +08:00 via Android
    systemd 跑去管 dns 感觉是最离谱的事情。
    root01
        10
    root01  
       2022-12-16 13:59:36 +08:00
    @dagouxiong 我是说服务端部署的方法,抱歉哈
    dagouxiong
        11
    dagouxiong  
       2022-12-16 14:28:50 +08:00
    @root01 Headscale 私有部署,我没整。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2666 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 09:45 PVG 17:45 LAX 02:45 JFK 05:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86