问题列表 - 第4898页

KVM/libvirt:如何在具有不同 CPU 的 2 台主机之间迁移

我试图将我的 KVM 主机从带有 AMD cpu 的主机迁移到带有 Intel CPU 的主机,但是当我运行时virsh start guest_name我得到了error: unsupported configuration: CPU model ... is not supported by hypervisor.

我知道 KVM 支持这样的迁移(在 FAQ 中他们甚至谈到了 64 位 AMD/Intel CPU 之间的实时迁移)。我该怎么办?

libvirt kvm-virtualization

4
推荐指数
1
解决办法
3220
查看次数

以“www-data”用户身份重新启动或重新加载Apache

我在我的 Debian/Apache2.4 服务器上有一个用 Python 编写的 webhook 脚本,以便它在推送 GitHub 时运行部署 .sh 脚本。因此,该脚本由标准 Apache 用户“www-data”执行。我的脚本需要重新启动或加载了Apache,但输出表示用户不必这样做的许可:Reloading apache2 configuration (via systemctl): apache2.serviceFailed to reload apache2.service: Access denied。手动执行时的行为与 www-data ( sudo -u www-data /etc/init.d/apache2 reload) 相同。

因此,我尝试通过将以下行添加到我的 visudo 中来使“www-data”具有重新加载或重新启动 Apache 的权限:(www-data ALL = NOPASSWD: /etc/init.d/apache2根据此文档)。

但它不会改变任何东西。为什么?是不是因为Apache无法重新加载自己?如何更改权限以执行此操作?或者我是否需要由另一个用户执行脚本,以及如何执行?

linux permissions bash sudo apache-2.4

1
推荐指数
1
解决办法
5397
查看次数

如何使用 tshark 打印 SSL 数据包详细信息?

我收集了 SSL 客户端和服务器(确切地说是openssls_client和s_server)之间的简短交换,并希望查看 pcap 文件的 ssl 部分tshark。我不需要解密加密部分,但至少想知道未加密字段中的值。

将文件从服务器复制到我的桌面时,我可以使用 Wireshark 打开 pcap 文件并默认查看字段:

线鲨输出

另一方面,tshark -r tls_dump.pcap最多只显示数据包的 TCP 部分。例如,对于同一个数据包:

4 0.000069237    127.0.0.1 ? 127.0.0.1    TCP 373 54312 ? 44330 [PSH, ACK] Seq=1 Ack=1 Win=43776 Len=307 ...
Run Code Online (Sandbox Code Playgroud)

我尝试使用tcpdump -U -i lo 'port 44330' -w tls_dump.pcap和收集数据包tshark -nn -i lo -s 0 -w tls_dump.pcap port 44330(如此处),但是在尝试查看数据包时,结果是相同的。

tshark 我试过的选项:

  • -2 没有效果

  • -2R "ssl" 什么都不显示

  • -Y "ssl" 什么都不显示

  • -o "ssl.desegment_ssl_records: TRUE" -o "ssl.desegment_ssl_application_data: …

ubuntu ssl tshark

4
推荐指数
1
解决办法
3322
查看次数

即使在 gcloud 上添加持久存储后,设备上也没有剩余空间

我是 Google Cloud 新手。我将一些文本文件下载到虚拟机实例中。然后我突然开始收到类似的消息

\n\n
bash: cannot create temp file for here-document: No space left on device\n
Run Code Online (Sandbox Code Playgroud)\n\n

我运行 df -h 并发现我的磁盘正在被 100% 使用

\n\n
/dev/sdb        9.8G  9.3G     0 100% /\n
Run Code Online (Sandbox Code Playgroud)\n\n

我搜索了一下,发现我可能需要添加更多的持久存储。

\n\n

我按照此处的说明进行操作 - > https://cloud.google.com/compute/docs/disks/add-persistent-disk

\n\n

现在,当我运行df -h时,我看到添加了新存储(使用率为 1%)

\n\n
/dev/sdc         20G   45M   20G   1% /mnt/disks/disk2\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我运行lsblk时,我得到:

\n\n
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\nsda      8:0    0  10G  0 disk \n\xe2\x94\x94\xe2\x94\x80sda1   8:1    0  10G  0 part /\nsdc      8:32   0  20G  0 disk …
Run Code Online (Sandbox Code Playgroud)

linux debian google-compute-engine

5
推荐指数
1
解决办法
1万
查看次数

如何通过 aws cli 检查是否存在特定的 rds 实例?

我希望我的 bash 脚本能够检测是否已经存在具有特定名称的 AWS RDS 实例。

这是我尝试过的:

#!/usr/bin/env bash

DBINSTANCEIDENTIFIER=greatdb

EXISTINGINSTANCE=$(aws rds describe-db-instances \
    --db-instance-identifier="$DBINSTANCEIDENTIFIER" \
    --输出文本\
    )

我希望得到一个空列表,或者结果为零 - 但我收到一条错误消息:

调用 DescribeDBInstances 操作时发生错误 (DBInstanceNotFound):未找到 DBInstance greatdb。

有谁知道如何在没有错误消息的情况下正确找出实例是否存在?

bash amazon-rds aws-cli

6
推荐指数
1
解决办法
9149
查看次数

如何保护 Web 应用程序免受 IPv6 机器人攻击?

我对保护 Web 应用程序免受机器人攻击的背景感兴趣,但我认为它适用于机器人可以通过 IPv6 进行的所有类型的攻击。

在 Web 应用程序中,您希望保护一些页面免受机器人攻击。

它可能是一个登录页面:您希望避免数百万个尝试用户名/密码组合的请求。

它可能是一个注册页面。您不希望在您的网站上创建数千个机器人帐户。

或者您可能不希望立即下载数据库的全部内容。您认为匿名用户每天向您的数据库发出 100 或 200 个请求来获取一些信息是可以接受的,但您不能接受机器人每分钟执行 1000 个请求来下载您提供的所有内容。

或者只是为了统计目的。您正在记录网站上的访问者活动,并且您不希望机器人完全影响您的数据,例如,人为地点击链接数千次,以便其链接到的文章成为您的新闻网站上“最受欢迎的文章” 。

我经常使用基于 IP 地址的节流/速率限制以及 Nginx 速率限制功能来处理此问题:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/m;    

server {
    location /sensitiveUrl {
        limit_req zone=mylimit;

        proxy_pass http://my_upstream;
    }
}
Run Code Online (Sandbox Code Playgroud)

但对于 IPv6,我不确定这有多有效。我的意思是,使用 IPv4 相对有效,因为攻击者创建和使用数千个 IP 地址的成本很高,但使用 IPv6 似乎任何人都可以创建数百万个 IP。这要怎么处理呢?我应该对 IPv6 网络而不是地址应用限制吗?如果我这样做的话,实际效果如何?

ipv6 web-applications ip-address throttling rate-limiting

3
推荐指数
1
解决办法
711
查看次数

ALB 连接耗尽始终达到“取消注册延迟”

我使用ECS和ALB将我的容器公开到互联网。当我更新容器映像时(我使用CloudFormation更新任务和服务),目标组将与旧容器的连接设置为Draining. 问题是这一步总是需要整整 5 分钟,这与我的属性相同Deregistration Delay。

根据文档,这不应该发生:

取消注册延迟 Elastic Load Balancing 停止向正在取消注册的目标发送请求。默认情况下,Elastic Load Balancing 在完成取消注册过程之前等待 300 秒 [...]。

如果取消注册目标没有正在进行的请求且没有活动连接,Elastic Load Balancing 会立即完成取消注册过程,而无需等待取消注册延迟过去。

明显的解释是我与容器有持久连接。但是,我在测试服务上遇到了这个问题,只有我自己知道。

amazon-elb amazon-ecs amazon-alb

5
推荐指数
1
解决办法
9059
查看次数

如何在映射新驱动器之前清理旧连接?

我在 Windows Server 2008r2 上有一些脚本,可以使用有限的凭据访问其他服务器系统上的特定资源。如果某人或其他脚本也使用不同的凭据从此服务器访问了该系统并且没有注销,则脚本将失败并显示Error 1219 "The network folder specified is currently mapped using a different user name and password"

如何确保我的脚本在尝试映射新驱动器之前删除与该特定计算机的所有连接?

C:\> net use //server /d  
Run Code Online (Sandbox Code Playgroud)

本身不起作用。我可以跟进并net use看到驱动器仍然共享:

C:\> net use \\server /d
\\server was deleted successfully.


C:\> net use
New connections will be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
Disconnected           \\server\somedrive       Microsoft Windows Network
The command completed successfully.
Run Code Online (Sandbox Code Playgroud)

断开的驱动器仍然会导致相同的情况Error 1219。

任何人都可以提出比删除该计算机上存在的所有共享的详尽列表更优雅的解决方案吗?

net use \\server\share1 /d
net use \\server\share2 /d
net use \\server\share3 /d
etc... …
Run Code Online (Sandbox Code Playgroud)

networking windows-server-2008 network-share

5
推荐指数
1
解决办法
1万
查看次数

如何为 HA 设置 Traefik?在 Traefik 前需要反向代理吗?

我正在尝试在生产站点上设置 Traefik,但我正在努力解决一些高可用性问题。我认为我们在 Traefik 集群前面仍然需要一个反向代理。以下是我考虑过的潜在设置,以及为什么似乎需要反向代理:

  1. 设置 DNS A 记录以指向每个 Traefik 节点以进行负载平衡和故障转移。

    • 根据包括this SO question和this SF question在内的多个站点,不鼓励这种做法。

    • 由于 DNS 缓存和 TTL 问题,即使使用像 DNSMadeEasy 这样的服务似乎也不受欢迎。

  2. 将一条 DNS 记录指向运行 Traefik 的节点之一。

    • 该节点成为 SPOF。我的节点在 CoreOS 上运行,每次更新后都会重新启动,因此我们可以保证每周有几分钟的停机时间。

    • 我们可以在预计停机时将 DNS 记录移动到备用节点。这将是手动管理的痛苦。我可以设想一个与 locksmithd 配对的解决方案可以自动处理这个问题,但我真的不想构建它,它也不会处理意外停机时间。

    • 使用 Docker Swarm(或 Kubernetes)的部分理由是使节点可互换。

  3. 在 Traefik 集群前面放置一个负载均衡器/反向代理。反向代理可以在所有 Traefik 节点之间提供故障转移,DNS 将指向反向代理。

    • 是的,这是一个 SPOF,但根据我的经验,通过这种设置很容易获得良好的正常运行时间。如果需要偶尔维护,可以将 DNS 记录指向新的代理。

我是错过了什么还是想多了?

high-availability reverse-proxy

6
推荐指数
1
解决办法
5369
查看次数

如何重新同步 saltstack?reposync 失败,并显示错误消息“由于缺少 GPG 密钥,正在删除 [...]。”

在 RHEL 7.4 系统上,我添加了 salt-latest 存储库,如下所示:

yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
Run Code Online (Sandbox Code Playgroud)

请注意,除其他事项外,这会创建以下两个 GPG 密钥文件:

/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-Salt
/etc/pki/rpm-gpg/saltstack-signing-key
Run Code Online (Sandbox Code Playgroud)

为了供以后参考,请注意 CentOS 密钥的指纹以 f4a80eb5 结尾:

# gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-Salt

pub  4096R/F4A80EB5 2014-06-23 CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>
      Key fingerprint = 6341 AB27 53D7 8A78 A7C2  7BB1 24C6 A8A7 F4A8 0EB5
Run Code Online (Sandbox Code Playgroud)

尝试重新同步下载:

mkdir /root/foobar

reposync --gpgcheck --plugins --repoid=salt-latest --download_path=/root/foobar --newest-only --downloadcomps --delete --download-metadata
Run Code Online (Sandbox Code Playgroud)

它失败并出现如下错误:

Removing babel-0.9.6-8.el7.noarch.rpm, due to missing GPG key.
Removing libyaml-0.1.4-11.el7_0.i686.rpm, due to missing GPG key.
Removing libyaml-0.1.4-11.el7_0.x86_64.rpm, due to …
Run Code Online (Sandbox Code Playgroud)

gpg saltstack reposync

5
推荐指数
1
解决办法
5540
查看次数