我安装了 fedora budgie spin 发行版,需要更改设置中的组合,但我无法更改组合键来将语言布局从 super + space 更改为 ctrl + Lshift。
我的服务器位于专用网络上:10.17.0.0/16。我决定根据第18个掩码来分割这个网络。10.17.0.0/18——产品服务器。在此子网上,机器之间可以不受限制地相互通信。其余范围(10.17.64.0/18、10.17.128.0.0/18...)无法访问这些服务器。
我的几乎所有应用程序都在 Docker 中运行。我为输入和输出配置了防火墙规则(iptables),一般来说一切正常。但是,我有以下问题:
Docker 在启动时将自己的规则添加到 FORWARD 链中。这些规则允许任何流量在私有 docker 网络内通过。这样,所有子网中的所有计算机都可以访问我的应用程序(值得补充的是,每台计算机都有一个白色 IP)。
我向 FORWARD 链添加了一条规则(第一名):
iptables -I FORWARD 1 ! -s 10.17.0.0/18 -m conntrack --ctstate NEW -j DROP
一般来说它是有效的。我保存规则 ( service netfilter-persistent save
) 并重新启动机器。连接后我看到以下内容:
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
DROP all -- !10.17.0.0/18 anywhere ctstate NEW
也就是说,我的规则已经下移了,现在不能正常工作了!我做了一个小技巧:我将上面的命令添加到 /etc/bash.bashrc 中,现在规则已正确添加。但这是一个可怕的拐杖,根本不可扩展,并且与良好实践不相似(现在每次连接到机器时都会添加此规则,如果我想添加几个特定规则怎么办?..)
请告诉我为了避免在 bash 中编写脚本并使我的规则优先于 docker 规则,应该以哪种方式查看、研究什么。
--- 更新 ---
我有一个 Kafka 容器(带有 Kraft)。我向 DOCKER-USER 添加了以下规则:
iptables -I DOCKER-USER 1 -s 10.17.64.0/18 -j RETURN
iptables -I DOCKER-USER 2 -s 172.0.0.0/8 -j RETURN
iptables -I DOCKER-USER 3 -j DROP
我使用 Kafka 容器将这些规则添加到服务器中。
我使用它是10.17.64.0/18
因为我正在不同的电路中进行实验。
当我添加这些规则时,从应用程序(在同一子网(10.17.64.0/18
)中的另一台主机上)到我的kafka的连接不起作用...
PS
我正在使用带有docker的纯iptables规则。在我对这个电路的所有更改中,只有
PSS上面写的那些。
值得注意的是,否则它可以工作。我正在运行一个 nginx 容器,它只能从专用网络访问;尝试通过 ext-ip 访问它会失败并超时。但 kafka 不再遵守这些规则:(
使用mv命令,我将一个大于 450 GB 的文件移动到另一个目录中。动作被打断了。告诉我,在这种情况下源文件保持不变?
我在 VMWare Workstation 上安装了运行Alt Server Virtualization v 9.2 的虚拟机。该机器已经预装了libvirt
. virt-install
当我尝试通过(执行嵌套虚拟化)在此虚拟机内创建新虚拟机时,出现错误:host does not support domain type kvm for virtualization type hvm with architecture x86_64
我使用了该命令lsmod | grep kvm
,但没有任何结果。我发现这是由于系统上没有加载KVM虚拟化的内核模块造成的。我开始谷歌搜索并找到了通过命令的方法modprobe
。我注册了它modprobe kvm-install
并收到以下错误:modprobe: error: could not insert 'kvm_intel': operation not permitted
。我在 root 下完成了所有操作。我做的最后一件事是使用该命令dmesg | grep kvm
并收到以下消息:kvm: no hardware support
。实际的问题是:是否有可能以某种方式在这样的虚拟机上启用硬件虚拟化,如果可以,如何实现?我将非常感谢您的答复。
我得到日期和时间
#include <time.h>
#include <stdio.h>
int main(int argc , char *argv[])
{
struct timespec ts;
timespec_get(&ts, TIME_UTC);
char buff[100];
strftime(buff, sizeof buff, "%Y-%m-%d %H:%M:%S", gmtime(&ts.tv_sec));
printf("[%s.%09ld]\n", buff, ts.tv_nsec);
return 0;
}
但我不知道如何将结果放入变量而不将其添加到
printf("[%s.%09ld]\n", buff, ts.tv_nsec);
并使用一个变量作为最终结果,例如: printf(end_result)?