V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yubai9366
V2EX  ›  问与答

在目标主机禁 ping 的情况下,怎么判断 ip 是否被占用

  •  
  •   yubai9366 · 2020-02-29 16:06:19 +08:00 · 3601 次点击
    这是一个创建于 1755 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景: 产品界面提供 ip 修改功能,并且在保存的时候会去测试该 ip 是否被占用(原理:ping 得通表示被占用,ping 不通则表示可以使用)

    问题: 如果目标 ip 在 ping 测试的时候没有被 ping 通,但该 ip 实际已经已经被其他主机占用,且该主机开启禁 ping 选项,则会出现误判导致产品的 network 服务起报错不来( CentOS 7 )

    尝试: 我有尝试用 nmap 来扫描指定 ip,但是耗时较长且效果不好

    不知道各位有什么解决方案没

    15 条回复    2020-02-29 19:10:06 +08:00
    lhx2008
        1
    lhx2008  
       2020-02-29 16:08:18 +08:00 via Android
    没看懂这个是什么骚操作
    BingoXuan
        2
    BingoXuan  
       2020-02-29 16:13:04 +08:00
    要不试一下 arp ?
    xratzh
        3
    xratzh  
       2020-02-29 16:15:56 +08:00
    没看懂意思,猜一下答案:
    ssh 试试? ip 没被占用和 ip 占用后,ssh 的回传信息不一样
    ThirdFlame
        4
    ThirdFlame  
       2020-02-29 16:16:13 +08:00
    nc 一下这个 ip 某个端口(端口开不开放都无所谓,开放更好,就直接连上了)。如果不开放次端口, 你会发现存活的 和 不存活的错误代码不同。端口开不开放都无所谓。

    但是如果主机或者网络设备专门设置的有 drop 规则,那么此方法无效。
    singerll
        5
    singerll  
       2020-02-29 16:17:39 +08:00 via Android
    云平台分资源时用的吗?。。。。个人感觉没啥办法,考虑极端下别人防火墙全开,只出不进的情况。
    话说没有元数据库吗?
    villivateur
        6
    villivateur  
       2020-02-29 16:39:23 +08:00
    tcping 试试
    binux
        7
    binux  
       2020-02-29 16:42:13 +08:00 via Android
    既然 IP 修改功能是你产品提供的,用没有你自己不知道?
    zmj1316
        8
    zmj1316  
       2020-02-29 17:11:24 +08:00 via Android
    同网段的话,能不能用 arp 扫一下?
    gamexg
        9
    gamexg  
       2020-02-29 17:14:43 +08:00
    看意思是同网段,那么 arp 就行
    yubai9366
        10
    yubai9366  
    OP
       2020-02-29 17:15:41 +08:00
    @ThirdFlame 这个方法有效,测了十几台机器都可以用,不过还是得加个异常判断回滚机制,虽然我这边主机群应该都是常规配置,但是还是得上个保险
    yubai9366
        11
    yubai9366  
    OP
       2020-02-29 17:18:09 +08:00
    @singerll 防火墙全开的情况有考虑,所以加了一层回滚机制,至少保证原来的 ip 能还原
    billlee
        12
    billlee  
       2020-02-29 17:25:06 +08:00
    arping
    trepwq
        13
    trepwq  
       2020-02-29 18:52:25 +08:00 via iPhone
    @ThirdFlame 都禁 ping 了,肯定有防火墙规则了,估计不行
    ThirdFlame
        14
    ThirdFlame  
       2020-02-29 18:59:25 +08:00
    @trepwq 你试试就知道了。 防火墙好多是 deny 规则,而不是 drop 规则。nc 连过去 错误代码是不一样的。
    trepwq
        15
    trepwq  
       2020-02-29 19:10:06 +08:00 via iPhone
    @ThirdFlame 我知道不一样,我一般都是用 drop,哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3351 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:19 · PVG 19:19 · LAX 03:19 · JFK 06:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.