我正在尝试编写一个脚本,列出 LAN 上的所有主机(大约有 20 个)并在每个主机旁边写入 ping 状态。我有 DHCP 租约文件,所以我有所有的 IP(比如 10.0.0.1、10.0.0.2 等),我需要的只是每个主机的 ping 状态。
因此,我的脚本为每个主机启动一个 ping:
ping -c 1 10.0.0.1
Run Code Online (Sandbox Code Playgroud)
不幸的是,当主机离线时,ping 需要很长时间才能超时。我查了一下man ping,似乎有两个选项可以设置超时延迟:-w deadline和-W timeout。我想我对后者感兴趣。
所以我试过这个:
ping -c 1 -W 1 10.0.0.1
Run Code Online (Sandbox Code Playgroud)
但是每个离线主机等待一秒钟仍然太长。我试图将其设置为低于一秒,但它似乎根本没有考虑该参数:
ping -c 1 -W 0.1 10.0.0.1 # timeout option is ignored, apparently
Run Code Online (Sandbox Code Playgroud)
有没有办法将超时设置为较低的值?如果没有,是否有其他选择?
编辑
ping -b例如)。编辑 #2
我接受了fping解决方案(感谢所有其他答案)。这个命令完全符合我的要求:
fping -c1 -t500 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4
Run Code Online (Sandbox Code Playgroud)
此命令最多需要 500 毫秒才能完成,并一次为我提供所有主机的 ping …
我有一台装有 MacOSX Leopard (10.6.2) 的 MacBook,我用它通过 SSH 连接到一些服务器(他们的操作系统是 Debian Lenny)。我使用 RSA 密钥登录到服务器A,然后从那里“弹跳”到其他服务器B、C和D。我在我的笔记本电脑中.ssh/config为服务器A激活了代理转发,以便能够连接到A,然后从A到B、C或D “反弹” ,而不必每次都输入我的密码。它工作正常。
但是我读到代理转发有一个安全漏洞:如果黑客root访问服务器A,他将能够劫持代理转发机制并连接到服务器B、C和D ,而无需任何密码。
显然,一种解决方案是使用ssh-add's-c选项:每次服务器A想要使用我的 RSA 密钥时,它应该要求我确认。但由于某种原因,它失败了:
miniquark@mylaptop:~$ ssh-add -c
Enter passphrase for /Users/miniquark/.ssh/id_rsa:
Identity added: /Users/miniquark/.ssh/id_rsa (/Users/miniquark/.ssh/id_rsa)
The user has to confirm each use of the key
miniquark@mylaptop:~$ ssh serverA …Run Code Online (Sandbox Code Playgroud) 我有一个连接到 Linux 路由器的 WiFi 接入点。路由器本身连接到 Internet。出于多种原因(主要是为了控制安全性和服务质量),我想强制所有用户的流量都经过 Linux 路由器,甚至是用户之间的流量。
为此,我禁用了 AP 中的站对站通信(我使用 D-Link DWL-7200 AP)。以下是我配置 AP 的方法:
ssh admin@accesspoint1
D-Link Access Point wlan1 -> set sta2sta disable
D-Link Access Point wlan1 -> reboot
Run Code Online (Sandbox Code Playgroud)
这工作正常:无线用户无法再相互通信。至少不是直接的。我的目标是强制流量到达路由器并返回。
要做到这,我能在Linux的路由器代理ARP:
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
Run Code Online (Sandbox Code Playgroud)
这是大图。
10.0.0.0/8 subnet
____________________|______________________
/ \
| |
(sta2sta disabled)
UserA----------------AP---------------------Router-------------------Internet
10.0.0.55 / eth1 eth0
/ 10.0.0.1 203.0.113.15
/ proxy-arp enabled
UserB____________/
10.0.0.66
Run Code Online (Sandbox Code Playgroud)
如果 UserA ping UserB,我希望会发生以下情况:
我在俄勒冈州的 Amazon VPC 中为我的服务设置了生产环境:
目前大约有 25 个虚拟机,希望它会增长。
现在我要设置登台环境,但我不确定把它放在哪里:
登台环境的重点是与生产环境相同(或尽可能接近)。所以在不同的亚马逊地区设置临时环境感觉是错误的:这排除了选项 3,不是吗?
选项 1 最接近于尽可能接近生产的目标。但是在同一个子网中拥有临时环境和生产环境感觉有点像潜在的安全问题,对吧?所以我有点倾向于选项 2,但我想知道潜在的安全问题是否严重到足以证明需要管理两倍的子网?
那么测试环境呢?它也应该类似于生产,但它不需要如此紧密地匹配:一切都可以适合几个实例,不需要 ELB 和一切。也许这个环境可以全部放入同一个 VPC 中的单个专用子网中?在同一个 VPC 中,它可以轻松访问 git 存储库和厨师服务器以及监督工具和 openvpn 访问等。
相信很多人都经历过这些考虑吧?你怎么看?
谢谢。