我有两台 Linux 服务器。我想使用 GRE 隧道将所有互联网流量从 ClientBox 通过隧道路由到 GatewayBox,这样,对于互联网的其余部分,我的 ClientBox 看起来就是 GatewayBox,这样我就可以将 GatewayBox 的外部 IP 用于所有 ClientBox互联网使用。我已经在它们之间建立了一条 GRE 隧道(代理无法满足我的特定需求)。
我的 GRE 隧道工作了!我可以 ping 两端。
现在我需要配置 GatewayBox 以实际将这些传入连接从 ClientBox 路由到互联网并返回到 ClientBox。所以我运行了以下脚本:
#! /bin/bash
IPTABLES=/sbin/iptables
WANIF='ens3' # servers from this company use ens3 instead of eth0, it seems
LANIF='gre1' # both boxes have the gre tunnel set up as gre1
# enable ip forwarding in the kernel
echo 'Enabling Kernel IP forwarding...'
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
# flush rules and delete chains …Run Code Online (Sandbox Code Playgroud) 我有一个在裸机上运行的内部 Kubernetes 集群,它由 5 个节点(1 个主节点和 4 个工作节点)组成。我在 master 上本地设置了一个 NFS 服务器,并在 K8s 中启动了 nfs-client 以拥有 nfs 动态配置器。一切正常,我可以通过定义持久卷声明来使用我的应用程序,但我在磁盘上找不到我的数据。
每次启动应用程序时,nfs-client 都会在我的 nfs 服务器的路径上创建一个具有正确名称的新目录,但所有这些目录都是空的。所以我的问题是我的数据在哪里?
我正在使用nfs 客户端的舵图。这是在我的 nfs 服务器路径中创建但空目录的示例:
/var/nfs/general$ tree
.
??? 166-postgres-claim-pvc-37146254-db50-4293-a9f7-13097689610a
? ??? data
??? 166-registry-claim-pvc-fe337e34-d9a5-4266-8178-f67973894584
??? 166-registry-slave-claim-registry-slave-0-pvc-b18d430b-e1fc-4eeb-bd12-cab9340bed69
??? 166-rtspdata-claim-pvc-bf9bc1e3-412f-4627-ade4-50817478308e
??? 172-postgres-claim-pvc-087538cf-5b67-4789-8d8b-117d41c3fe02
? ??? data
??? 172-registry-claim-pvc-7b7d9bb6-a636-4f78-b2fe-924473cb47ab
??? 172-registry-slave-claim-registry-slave-0-pvc-34e62524-fca0-48dd-ba29-b4cf178ca028
??? 172-rtspdata-claim-pvc-211a1aac-409f-431c-b78d-5b87b9017625
??? 173-postgres-claim-pvc-b901449a-0ce7-4ecf-8dfc-e6371dd3a9b4
? ??? data
??? 173-registry-claim-pvc-cd842cde-a3f7-4d54-94d6-c018e42ec495
??? 173-rtspdata-claim-pvc-a95c5748-ebed-4045-98b2-a04e534e0cf6
??? archived-161-postgres-claim-pvc-01cc1ff2-8cc8-4161-8d85-00cb6562e10e
? ??? data
??? archived-161-registry-claim-pvc-9b626e01-a565-4214-b94e-b7ba1e206a5e
??? archived-161-rtspdata-claim-pvc-b079c7e2-248e-4245-b243-5ff7dc3afa82
??? archived-162-postgres-claim-pvc-188af7ca-106d-4f2f-8905-9d7b391e9dce
? ??? data
??? archived-162-postgres-claim-pvc-356e4632-19e2-4ac9-8400-e00d39621b7c …Run Code Online (Sandbox Code Playgroud) 在 Linux(例如 Ubuntu 18.04)中,如何配置sshd以允许尚不存在的 OS 用户使用公钥登录?
例如:
在服务器上:/etc/ssh/sshd_config 有 AuthorizedKeysFile: /etc/ssh/keys/%u
sudo mkdir -p /etc/ssh/keys
sudo tee /etc/ssh/keys/foo <<< "$(cat id_rsa.pub)"
sudo systemctl restart sshd
在客户端:ssh foo@server
In this scenario, the server does NOT have a foo account in /etc/passwd, but I'd like to create one automatically and then use pam_mkhomedir to create its home directory -- all because the user can successfully authenticate using a public key.
My attempt:
/etc/pam.d/sshd comment out @include common-auth (makes no …
几周前,我购买了一台新的 Western Digital Elements 3TB。
像往常一样,我做了所有 SMART 测试,然后是坏块,然后再次进行 SMART 测试。
当我第一次拿到驱动器时,SMART 显示了以下内容:
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 7) minutes.
Run Code Online (Sandbox Code Playgroud)
然后我运行了一个简短的 SMART 测试和一个长时间的 SMART 测试,结果正常:
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed without error 00% 0 -
# 2 Short offline Completed without error 00% 0 -
Run Code Online (Sandbox Code Playgroud)
然后,我运行了完整的badblocks 破坏性写入测试,没有显示坏块。
然后,我运行了另一个 SMART 简短自检,结果也正常:
SMART Self-test log structure revision number …Run Code Online (Sandbox Code Playgroud) 我知道这iotop让我可以实时测量任何或所有进程使用的磁盘带宽。iotop -a测量累积的磁盘带宽,这更接近我想要的。
但是,当我运行的进程终止时,它在 iotop 中消失得太快了,我无法确切地看到进程自启动以来总共使用了多少 I/O。有没有办法在进程结束时记录进程的总 I/O 使用情况,并且可能将其保存到某个文件中以供进一步分析?
请注意,我只是在寻找 Linux 独有的答案,特别是 Ubuntu。
我正在将现有应用程序从在裸 EC2 实例上运行迁移到使用 ECS 的容器化设置。我有两种情况需要在容器之间共享数据。一个是存储一些静态和媒体文件的 EFS 共享,另一个是日志目录,以便我可以使用 sidecar 容器中的 Cloudwatch Logs 代理将日志推送到 Cloudwatch。
网络服务器需要能够将数据写入这两个位置,但到目前为止我还无法实现。日志目录是本地卷,归root:root. 我按照这些说明设置的 EFS 共享归1000:xfs(无用户名)所有。在这两种情况下,我的网络用户 ( www-data) 都不能写入这些位置。
如何告诉 ECS 在具有给定所有者和/或组的容器内安装卷?
我正在尝试删除公开 IIS 版本但无法删除的服务器标头。我将 IIS Express 10 与 ASP.NET Core 3.0 一起使用,并开发了一个 Web API。我尝试了以下选项,但响应中仍然存在标头并显示版本 IIS 10.0。
将 HTTP 参数中的注册表项“DisableServerHeader”更改为 1。它只删除了 http.sys 模块的服务器标头,而不是 IIS 版本。
在<system.webServer>标签内的 applicationhost.config 文件中使用以下代码
<rewrite>
<outboundRules rewriteBeforeCache="true">
<rule name="Remove Server header">
<match serverVariable="RESPONSE_Server" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
</outboundRules>
</rewrite>
列出可用时区显示“UTC”
$ timedatectl list-timezones
UTC
Run Code Online (Sandbox Code Playgroud)
将其设置为 UTC 失败,声称 UTC 是“无效的”。
$ timedatectl set-timezone UTC
Failed to set time zone: Invalid time zone 'UTC'
Run Code Online (Sandbox Code Playgroud)
这是在 Ubuntu 19.10(谷歌云)上
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.10
Release: 19.10
Codename: eoan
Run Code Online (Sandbox Code Playgroud)
为什么这会失败?
因此,我的经理几个月前离开了公司,让我自己管理事务,现在,我正在查看云跟踪事件,发现在我们的一个帐户中,我明确拒绝查看它们。
这是一些背景。我们有一个根帐户,从中我们在其他帐户中承担管理员角色,当我在生产帐户中承担管理员角色时,在尝试查看云跟踪事件时收到明确的拒绝错误消息。
我一直在查看所有对他们有“拒绝”效果的政策,但看起来没有任何相关。此外,我假设的管理员角色不链接到除允许所有策略之外的任何策略。然而,我收到了同样的显式拒绝错误消息。
我可以使用任何神奇的工具来理解显式拒绝的来源吗?
我有一个 Windows 文件服务器 (SMB),用于内部存储。我正在寻找一种添加 Web 界面以通过 HTTPS 公开文件服务器的方法。
要求是:
如果进行此设置是个坏主意,请告诉我。我可以从 Windows 文件服务器 SMB 平台迁移到另一个 Linux 平台。
storage ×2
amazon-ecs ×1
amazon-iam ×1
asp.net ×1
docker ×1
gre ×1
hard-drive ×1
iis-10 ×1
io ×1
iptables ×1
kubernetes ×1
linux ×1
nfs ×1
route ×1
smart ×1
ssh ×1
timezone ×1
ubuntu ×1
web ×1