我如何找到我的 DHCP 服务器?

我如何找到我的 DHCP 服务器?

我的 LAN 上正在运行多个 DHCP 服务器,并且它们都在同一范围内。

现在我使用一台具有来自 DHCP 服务器的动态 IP 地址的机器。我必须知道它来自哪个服务器。

怎么做?!

答案1

要查找为您提供 IP 的 DHCP 服务器,只需按键盘上的Ctrl+ Alt+T打开终端即可。打开后,运行以下命令:

cat /var/lib/dhcp3/dhclient.leases

或者您也可以使用 grep 命令来获取 DHCP 服务器地址。

grep dhcp-server-identifier /var/lib/dhcp3/dhclient.leases

或者

grep dhcp-server-identifier /var/lib/dhcp/dhclient.leases

对于 Ubuntu 14.04、16.04 和 17.10,您可以使用:

dhclient -d -nw eth0

示例输出:

Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:0c:29:49:3e:67
Sending on   LPF/eth0/00:0c:29:49:3e:67
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x4f723f9)
DHCPREQUEST of 192.168.138.136 on eth0 to 255.255.255.255 port 67 (xid=0x4f723f9)
DHCPOFFER of 192.168.138.136 from 192.168.138.254
DHCPACK of 192.168.138.136 from 192.168.138.254
RTNETLINK answers: File exists
bound to 192.168.138.136 -- renewal in 892 seconds.

答案2

在 Ubuntu 14.04 中,是空的。实际的租约文件可以在命令行/var/lib/dhcp/dhclient.leases中找到。查找选项。此命令应该适用于 Ubuntu 14.04 安装dhclientps-lf(截至 17.10 仍然有效)

cat $(ps aux | grep -o '[/]var/lib/NetworkManager/\S*.lease') | grep dhcp-server-identifier

答案3

和:

  • nmap来源DHCPv6):

    sudo nmap --script broadcast-dhcp-discover -e eth0  # DHCPv4
    sudo nmap --script broadcast-dhcp6-discover -6      # DHCPv6
    
  • 转储来源):

    sudo dhcpdump -i eth0
    
  • tcpdump来源):

    sudo tcpdump -i eth0 -nev udp port 68
    

其他的:

答案4

使用新的iproute2(就我的情况而言是 Ubuntu 22.04.1 LTS):

$ ip route | grep default

default via 1xx.1xx.xxx.xxx dev gpd0 metric 10 
default via 192.168.xxx.xxx dev wlp0s proto dhcp metric 100 

DHCP 服务器 IP 是via您指定的每个网络接口的关键字后给出的 IP。

ip r | grep default也有效。

来自男人:

ip route
   Show table routes.

帮助:

$ ip route help

$ ip route help
Usage: ip route { list | flush } SELECTOR
       ip route save SELECTOR
       ip route restore
       ip route showdump
       ip route get [ ROUTE_GET_FLAGS ] ADDRESS
                            [ from ADDRESS iif STRING ]
                            [ oif STRING ] [ tos TOS ]
                            [ mark NUMBER ] [ vrf NAME ]
                            [ uid NUMBER ] [ ipproto PROTOCOL ]
                            [ sport NUMBER ] [ dport NUMBER ]
       ip route { add | del | change | append | replace } ROUTE
SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]
            [ table TABLE_ID ] [ vrf NAME ] [ proto RTPROTO ]
            [ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
             [ table TABLE_ID ] [ proto RTPROTO ]
             [ scope SCOPE ] [ metric METRIC ]
             [ ttl-propagate { enabled | disabled } ]
INFO_SPEC := { NH | nhid ID } OPTIONS FLAGS [ nexthop NH ]...
NH := [ encap ENCAPTYPE ENCAPHDR ] [ via [ FAMILY ] ADDRESS ]
      [ dev STRING ] [ weight NUMBER ] NHFLAGS
FAMILY := [ inet | inet6 | mpls | bridge | link ]
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ as [ to ] ADDRESS ]
           [ rtt TIME ] [ rttvar TIME ] [ reordering NUMBER ]
           [ window NUMBER ] [ cwnd NUMBER ] [ initcwnd NUMBER ]
           [ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ]
           [ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ]
           [ features FEATURES ] [ quickack BOOL ] [ congctl NAME ]
           [ pref PREF ] [ expires TIME ] [ fastopen_no_cookie BOOL ]
TYPE := { unicast | local | broadcast | multicast | throw |
          unreachable | prohibit | blackhole | nat }
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]
PREF := [ low | medium | high ]
TIME := NUMBER[s|ms]
BOOL := [1|0]
FEATURES := ecn
ENCAPTYPE := [ mpls | ip | ip6 | seg6 | seg6local | rpl | ioam6 ]
ENCAPHDR := [ MPLSLABEL | SEG6HDR | SEG6LOCAL | IOAM6HDR ]
SEG6HDR := [ mode SEGMODE ] segs ADDR1,ADDRi,ADDRn [hmac HMACKEYID] [cleanup]
SEGMODE := [ encap | inline ]
SEG6LOCAL := action ACTION [ OPTIONS ] [ count ]
ACTION := { End | End.X | End.T | End.DX2 | End.DX6 | End.DX4 |
            End.DT6 | End.DT4 | End.DT46 | End.B6 | End.B6.Encaps |
            End.BM | End.S | End.AS | End.AM | End.BPF }
OPTIONS := OPTION [ OPTIONS ]
OPTION := { srh SEG6HDR | nh4 ADDR | nh6 ADDR | iif DEV | oif DEV |
            table TABLEID | vrftable TABLEID | endpoint PROGNAME }
IOAM6HDR := trace prealloc type IOAM6_TRACE_TYPE ns IOAM6_NAMESPACE size IOAM6_TRACE_SIZE
ROUTE_GET_FLAGS := [ fibmatch ]

当前版本:

$ ip -V
ip utility, iproute2-5.15.0, libbpf 0.5.0

更多:
网站:https://wiki.linuxfoundation.org/networking/iproute2
Git.内核:https://git.kernel.org/pub/scm/network/iproute2/iproute2.git
Github:https://github.com/shemminger/iproute2

相关内容