双网卡主机如何让另一台双网卡主机的 avahi 只能发现本机的其中一个网卡上的的服务? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
wniming
V2EX    Linux

双网卡主机如何让另一台双网卡主机的 avahi 只能发现本机的其中一个网卡上的的服务?

  •  
  •   wniming 2 天前 1162 次点击

    我的所有双网卡主机都有一个网络用来访问互联网(以下简称 eth ),另一个网络用于局域网设备之间互相访问(以下简称 lan ,这个带宽更高),linux 通过 avahi 来提供 mdns 服务让其他主机可以发现本机上的服务,默认情况下 avahi 会随机使用 eth 或 lan 其中一个的 ip ,我希望始终使用的是 lan 的 ip ,这个要如何实现?

    这个问题我尝试过以下方法:

    1 ,通过修改/etc/avahi/avahi-daemon.conf 的 allow-interfaces 来强制 avahi 只为 lan 提供服务,但是这会导没有 lan 网络的设备无法访问本机的服务。

    2 ,通过 iptables 阻止其他的双网卡主机通过 eth 来访问本机的 avahi 服务,结果 iptables 的方法也不管用,具体情况如下:

    root@server:/home/d# iptables -L INPUT -v -n Chain INPUT (policy ACCEPT 2698 packets, 253K bytes) pkts bytes target prot opt in out source destination 20 4975 DROP udp -- * * 192.168.1.4 0.0.0.0/0 udp dpt:5353 20 4894 DROP udp -- * * 10.0.0.3 0.0.0.0/0 udp dpt:5353 root@server:/home/d# 

    上面的两条规则阻止了 develop 这台机通过 eth 或 lan 来访问本机的 avahi 服务,结果在 develop 这台机上仍然可以看到本机的 smb 服务:

    d@develop:~$ avahi-browse -atp | grep -i server +;lan-br;IPv4;SERVER;_device-info._tcp;local +;eth-br;IPv4;SERVER;_device-info._tcp;local +;lan-br;IPv4;SERVER;_smb._tcp;local +;eth-br;IPv4;SERVER;_smb._tcp;local d@develop:~$ 

    我完全想不通 iptables 为啥不管用,除了 iptables 我也想不到有其他方法能实现我想要的效果,希望有经验的 v 友能指导一下。

    第 1 条附言    1 天前
    找到解决办法了,如果想让某一台机通过 avahi 能固定得到本机的 lan 网络 ip ,只需要在那一台机上用 iptables 把本机到那一台机的 5353 端口的 INPUT 流量给 DROP 就可以了。

    之前觉得 iptables 不起作用是因为以为要在提供服务的那台机上 block 端口,其实是应该在要访问服务的那台机上 block 端口,也就是说 iptables 规则只会影响本机通过 avahi 得到的其他机器 ip 是 eth 的还是 lan 的 ip 。
    11 条回复    2025-10-08 11:17:47 +08:00
    wniming
        1
    wniming  
    OP
       2 天前
    举一个用例:
    KDE 的 Dohpin 文件浏览器使用 Avahi 发现其他机器上的 SMB 服务, 默认情况下会出现拷贝文件时有时通过 eth 拷贝,有时通过 lan 拷贝到情况。
    bhy
        2
    bhy  
       2 天前
    我觉得你这么折腾,不如直接 LAN 里固定好 SMB 服务器的 IP ,或者设置好 DNS ,Dohpin 配置到访问指定的 IP/域名就行了。
    wniming
        3
    wniming  
    OP
       2 天前
    @bhy 我机器比较多,每台都配置也麻烦, 想找个一劳永逸的办法。
    qping
        4
    qping  
       2 天前 via iPhone
    > 通过修改/etc/avahi/avahi-daemon.conf 的 allow-interfaces 来强制 avahi 只为 lan 提供服务,但是这会导没有 lan 网络的设备无法访问本机的服务

    不太理解,你既要 avahi 为内网提供服务,又希望非内网机器能访问服务,这不是矛盾了?
    wniming
        5
    wniming  
    OP
       2 天前 via Android
    @qping 没有 lan 网络的备也是内网设备,比如手机平板这些,lan 网络只不过是给台式机另外多加的万兆网络
    kome
        6
    kome  
       2 天前
    取消 1G eth 网络, 只使用 10G lan 不行么, 你这既没做网络硬件隔离, 也没做网络软件隔离, 还想内外网互访, 这不是什么问题都没解决, 反而又多了其他问题么.
    如果希望服务只在内网使用, 那就服务绑定内网 IP 就行, 没必要广播到外网. 而且, 很多交换机支持 mdns 中继.
    最后, mdns 好像是本设备主动发起, 其他设备被动接收的服务类型.
    wheat0r
        7
    wheat0r  
       2 天前
    这种拓扑是如何形成的
    qiuyue0
        8
    qiuyue0  
       2 天前
    avahi-publish -a -R openwrt.local 192.168.1.254
    wniming
        9
    wniming  
    OP
       1 天前
    @kome 两个网络比单个网络的好处主要有 2 点:

    1 ,10G lan 可以纯粹用来进行存储相关的服务,不会对访问互联网的网速有影响,(比如对于运行旁路由虚拟机的 all in one 服务器来说即便 lan 口跑满也不影响其他设备通过旁路由下载大文件的速度)

    2 ,两个网卡方便网络配置维护,其中一个网卡断网时还可以用另一个网卡 ssh 进去配置网络。
    wniming
        10
    wniming  
    OP
       1 天前
    @wheat0r 就是每台双网卡的台式机都有以下两个网段的网卡:

    192.168.1.0/24
    10.0.0.0/24

    192.168.1.0/24 这个网段有网关可以用来访问互联网
    VXF2016
        11
    VXF2016  
       1 天前
    avahi 支持这种功能吗?建议高速网卡用 ip 访问。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2810 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 12:47 PVG 20:47 LAX 05:47 JFK 08:47
    Do have faith in what you're doing.
    ubao 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