我已经管理了我可以访问的服务器。我请求了基于位置的防火墙规则(例如确保没有人可以SSH访问服务器,除非他们从特定的公共 IP 连接。
我希望能够从许多不同的 IP 进行测试。如何以经济的方式从终端进行测试?
我能想到的唯一方法(这会很昂贵而且效率不高)是在不同地区的 DO、Linode、AWS 等中创建服务器。或者购买在多个地区都有位置的 vpn 服务并在我的 Linux 机器上使用它。
PS:我不确定这是否更适合网络工程(人们现在可能知道测试网络防火墙规则)或超级用户。
我已经管理了我可以访问的服务器。我请求了基于位置的防火墙规则(例如确保没有人可以SSH访问服务器,除非他们从特定的公共 IP 连接。
我希望能够从许多不同的 IP 进行测试。如何以经济的方式从终端进行测试?
我能想到的唯一方法(这会很昂贵而且效率不高)是在不同地区的 DO、Linode、AWS 等中创建服务器。或者购买在多个地区都有位置的 vpn 服务并在我的 Linux 机器上使用它。
PS:我不确定这是否更适合网络工程(人们现在可能知道测试网络防火墙规则)或超级用户。
我使用 shell 脚本来启动 AWS 实例正是为了这种目的,但它们受到以下两方面的影响:
如果你想每天测试一次,这还可以,但如果你想每十分钟一次,那么几个 ping 数据包的成本很高,因为你必须让它一直运行。这可能不方便。
另一种方法是使用 AWS Lambda 服务,您只需编写几行代码。这些按 100 毫秒收费,因此此类任务的成本要低得多,并且触发器的延迟也很好。
我刚刚尝试的(整个)功能是:
import socket
def lambda_handler(event, context):
skt = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
skt.sendto("lambda", ('1.2.3.4', 12345))
return 'Hello from Lambda'
您可以构建一些东西来完成您的 ping/udp/tcp 获取,然后将系统日志消息发送到您的日志主机。
编辑:我试过了,30 行 python 非常适合测试非连接、SSH 打开响应、超时和记录到 syslog。如果你在 Stack Overflow 上提问,很高兴会发布 python;在这里肯定是无能为力的。