如何获取网络接口的网关?

如何获取网络接口的网关?

在 SoftEther 上使用 VPN 连接时,我为 VPN 创建了一个虚拟网络接口。现在,为了将 iptables 设置为通过此网络接口进行路由,我需要 VPN 服务器的网关(主机的本地 IP)。有没有简单的方法可以获取它?我试过了,ip neigh但这没有列出我的虚拟网络接口。

答案1

  • 尝试一下ip r。它将以以下形式显示信息

    default via aa.bb.cc.dd ...
    
  • 或者 netstat -r-

    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    
  • traceroute goo.gltracepath goo.gl将显示所有路由器(VPN 网关在顶部)

答案2

说实话,由于您使用的是私人网络,最简单的方法就是询问您的网络管理员。

下一个最简单的方法是使用可用的连接,也许不需要 VPN

然后运行ifconfigip r或类似的命令,您就可以获得有关网络的有用信息,包括网络掩码。

inet 10.0.0.8 网络掩码 255.255.255.0 广播 10.0.0.255

ip r 默认通过 10.0.0.1 dev enp0s3 proto static metric 100 tracepath google.com

如果您无法通过这种方式获得网络架构,那么这将非常困难甚至不可能。

从典型的猜测开始,例如 xxx1 或 xxx254

如果这不起作用,则可能很难甚至不可能,这将取决于网络架构,网关可能被防火墙保护,或者可能仅响应某些功能(如 mac 或 ipaddress,或 802.1x 网络)。即使您知道网关,某些网络也不会允许您连接。

您必须从数据包嗅探器(例如 tcpdump 或 wireshark)开始,捕获网络流量,并猜测网关。

或者你可以尝试使用 nmap 发现主机

nmap -p 22 --open x.x.x.0/24

nmap 命令假定网关在标准端口 22 上运行 ssh

如果这不起作用,你必须更自由地使用 nmap 并猜测网关

注意:即使您发现或猜出了网关,您也可能无法连接。

答案3

使用配置网络接口时,dhclient可以设置详细标志,这将产生类似的结果

~ $  dhclient -v vpn_se
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/vpn_se/00:ac:2b:d3:d9:e8
Sending on   LPF/vpn_se/00:ac:2b:d3:d9:e8
Sending on   Socket/fallback
DHCPDISCOVER on vpn_se to 255.255.255.255 port 67 interval 3 (xid=0xa0efb173)
DHCPREQUEST of 10.211.1.22 on vpn_se to 255.255.255.255 port 67 (xid=0x73b1efa0)
DHCPOFFER of 10.211.1.22 from 10.211.254.254
DHCPACK of 10.211.1.22 from 10.211.254.254
bound to 10.211.1.22 -- renewal in 1403 seconds.

DHCPOFFER其中以 和 开头的行DHCPACK包含客户端的本地 IP 和 VPN 网关。

相关内容