如何查找网络上连接的主机(vpn 或 lan)

如何查找网络上连接的主机(vpn 或 lan)

我曾在 stackOverflow 上发布过同样的内容,有人指出这应该放在这里...

我正在寻找以下需求的可能解决方案:

我配置了一个 VPN(顺便说一下,使用 Linux 上的 openVPN),我想随时知道哪些主机连接到了它。我认识到这可能与尝试知道哪些主机连接到局域网相同,因此任何解决方案都可以完成工作...

事实上,我曾经在 Linux 上使用过 hamachi vpn,通过它我有机会知道哪些主机连接到了我所属的特定网络,所以我想知道在 openVPN(甚至任何 VPN 和/或任何 LAN)中是否可以实现类似的事情。

最好,我正在寻找开源/免费的软件解决方案,或者可能是我自己编程的提示(如果可能的话,以最简单的方式,并不是说我不知道​​如何编程,而是我试图以一种简单的方式实现这一点)。但无论如何,如果没有操作系统/fsw 解决方案,任何其他解决方案都可以……

多谢!

哈维尔,墨西哥城


好的!谢谢你的回复

我正在尝试部署管理界面,但遇到了一些我不知道如何处理的麻烦。

我在服务器配置文件中添加了以下行:

management 10.8.0.1 2308 /etc/openvpn/password

我确信端口 2308 未被使用,而 10.8.0.1 恰好是 openVPN 提供给我的服务器的地址(我这样说对吗?也许我理解错了 :( )并且我将我选择的密码回显到密码文件中。

重新启动 openvpn 后我得到这个:

MANAGEMENT: Cannot bind TCP socket on 10.8.0.1:2308: Cannot assign requested address (errno=99)

有任何想法吗?

答案1

OpenVPN 带有管理界面,可以提供一些有用的信息。请参阅http://openvpn.net/index.php/open-source/documentation/miscellaneous/79-management-interface.html
它需要对你的 OpenVPN 配置文件进行一些更改:你可以通过添加以下行来激活管理界面


management 192.168.0.100 5555 /etc/openvpn/password

将地址 192.168.0.100 更改为 OpenVPN 默认地址,将 5555 更改为任何未使用的端口,设置一个包含管理接口密码的文件(例如 /etc/openvpn/password)。稍后像这样对目标执行 telnet:


telnet 192.168.0.100 5555

此外,你还可以使用 Python 脚本管理谁连接到你的 OpenVPN 服务器,请查看ovpn视图

答案2

在您的 OpenVPN server.conf 文件中,如果尚不存在指令:“status /var/log/openvpn-status.log”,请包含该指令。(如果您必须进行此更改,请重新启动 OpenVPN。)

...然后,查看哪些主机是远程连接的:

$ cat /var/log/openvpn-status.log

你会得到类似这样的结果:

----- 8< -----

OpenVPN CLIENT LIST
Updated,Mon Aug 17 12:20:18 2009
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
siteX,x.x.x.x:16597,14377206,74214704,Mon Aug 10 13:36:21 2009
siteY,y.y.y.y:6983,42178125,396122560,Thu Aug  6 00:30:17 2009
[...]
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.100.7.0/24,siteX,x.x.x.x:16597,Mon Aug 17 12:19:18 2009
10.100.8.0/24,siteY,y.y.y.y:6983,Mon Aug 17 12:19:18 2009
[...]
GLOBAL STATS
Max bcast/mcast queue length,0
END

----- 8< -----

希望这可以帮助 :)

答案3

如果基于 red-hat 操作系统

grep openvpn /var/log/消息

如果基于 Debian

grep openvpn /var/log/syslog

相关内容