AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-122863

TCB13's questions

Martin Hope
TCB13
Asked: 2024-02-25 01:03:21 +0800 CST

多个 VLAN 同一端口:带宽使用情况

  • 4

我遇到了一个如下所示的网络:

在此输入图像描述

为了使服务器能够访问公共互联网和内部网络(但不依赖于内部路由器),将路由器的一个端口插回交换机并标记另一个 VLAN,该 VLAN 与公共 VLAN 一起传递到服务器服务器。

考虑内部网络上的恒定带宽使用量约为 500Mbps。该流量是否不断注入回标记为 VLAN 200 的端口 4?是否仅仅因为某些机器在内部网络上传输数据而限制 VLAN 101 的可用带宽?如果是,如果服务器甚至没有为该标记上的 VLAN 标记配置接口,也会发生这种情况吗?

该交换机是廉价的 TL-SG108E,配置如图所示。路由器是运行 OpenWrt 的 GL-MT6000,可将所有 LAN 端口桥接到单个br-lan接口

谢谢。

vlan
  • 1 个回答
  • 60 Views
Martin Hope
TCB13
Asked: 2023-09-29 20:06:25 +0800 CST

nftables:具有动态 IP 的发夹/环回 NAT

  • 5

我有一个 Debian 12 服务器(公共 IP85.xxx.xxx.xxx地址为enp6s0),在网桥上运行一堆 LXC 容器cbr0。

由于公共 IP 是动态的,我必须设置forward规则prerouting才能dnat使传入请求到达容器。例如。端口 80/443 已连接到容器10.10.0.1。这是我的nftables规则:

flush ruleset

table inet filter {
  chain input {
    type filter hook input priority 0; policy drop;

    ct state {established, related} accept
    iifname lo accept
    iifname cbr0 accept
    ip protocol icmp accept
    ip6 nexthdr icmpv6 accept
  }
  chain forward {
    type filter hook forward priority 0; policy accept;
  }
  chain output {
    type filter hook output priority 0;
  }
}

table ip filter {
  chain forward {
    type filter hook forward priority 0; policy drop;

    oifname enp6s0 iifname cbr0 accept
    iifname enp6s0 oifname cbr0 ct state related, established accept
    # Webproxy
    iifname enp6s0 oifname cbr0 tcp dport 80 accept
    iifname enp6s0 oifname cbr0 udp dport 80 accept
    iifname enp6s0 oifname cbr0 tcp dport 443 accept
    iifname enp6s0 oifname cbr0 udp dport 443 accept
  }
}

table ip nat {

  chain postrouting {
    type nat hook postrouting priority 100; policy accept;
  }

  chain prerouting {
    type nat hook prerouting priority -100; policy accept;
    # Webproxy
    iifname enp6s0 tcp dport 80 dnat to 10.10.0.1:80
    iifname enp6s0 udp dport 80 dnat to 10.10.0.1:80
    iifname enp6s0 tcp dport 443 dnat to 10.10.0.1:443
    iifname enp6s0 udp dport 443 dnat to 10.10.0.1:443
  }

}

现在的问题是:发夹NAT。我有多个容器托管网站,有时其中一些容器需要使用域名与其他容器进行通信。当他们对这些域运行 DNS 查询时,他们将获取主机 IP 并且通信失败:

发夹NAT

如何在不诉诸 DNS 攻击的情况下解决这种情况?有没有办法nftables在拥有动态IP的情况下设置在内部转发请求?上面的内容是如何实现iifname的呢?

谢谢。

nat
  • 2 个回答
  • 120 Views
Martin Hope
TCB13
Asked: 2023-09-05 23:15:50 +0800 CST

Debian 12 + LXD/LXC security.idmap.isolated 失败

  • 6

运行 LXD/LXC 并在非特权容器设置上的 Debian 12.1 (6.1.0-11-amd64)security.idmap.isolated=true似乎无法更新容器文件的所有者/组。

这是一个例子:

# lxc launch images:debian/12 debian
(...)

# lxc config get debian volatile.idmap.base
296608

# lxc stop debian
Error: The instance is already stopped

# lxc config set debian security.idmap.isolated true

# lxc config get debian security.idmap.isolated
true

# lxc start debian

现在,如果我列出容器卷上的文件,我会发现它们全部归主机root 用户所有:

# ls -la /mnt/NVME1/lxd/containers/debian/rootfs/
total 24
drwxr-xr-x 1 root   root  154 Sep  5 06:28 .
d--x------ 1 296608 root   78 Sep  5 15:59 ..
lrwxrwxrwx 1 root   root    7 Sep  5 06:25 bin -> usr/bin
drwxr-xr-x 1 root   root    0 Jul 14 17:00 boot
drwxr-xr-x 1 root   root    0 Sep  5 06:28 dev
drwxr-xr-x 1 root   root 1570 Sep  5 06:28 etc

我尝试了 LXD/LXC 的多个版本。5.0.2apt以及 4.0 和 5.17(最新)都会发生这种情况snap。

有趣的是,我有另一个 Debian 10 (4.19.0-25-amd64) 正在运行,而较旧的 LXD 4snap则按预期工作:

# ls -la /mnt/NVME1/lxd/containers/debian/rootfs/
total 0
drwxr-xr-x 1 1065536 1065536  138 Oct 29  2020 .
d--x------ 1 1065536 root      78 Oct 14  2020 ..
drwxr-xr-x 1 1065536 1065536 1328 Jul 24 19:07 bin
drwxr-xr-x 1 1065536 1065536    0 Sep 19  2020 boot
drwxr-xr-x 1 1065536 1065536    0 Oct 14  2020 dev
drwxr-xr-x 1 1065536 1065536 1716 Jul 24 19:08 etc

正如您在该系统上看到的,所有文件都属于1065536:1065536.


更新:

我尝试在两台机器中探测地图lxc config show debian,我看到了这一点:

运行 Debian 10 的机器:

security.idmap.isolated: "true"
(...)
volatile.idmap.base: "1065536"
volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1065536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1065536,"Nsid":0,"Maprange":65536}]'
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1065536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1065536,"Nsid":0,"Maprange":65536}]'
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":1065536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1065536,"Nsid":0,"Maprange":65536}]'

运行 Debian 12 的机器:

security.idmap.isolated: "true"
(...)
volatile.idmap.base: "231072"
volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":231072,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":231072,"Nsid":0,"Maprange":65536}]'
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":231072,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":231072,"Nsid":0,"Maprange":65536}]'
volatile.last_state.idmap: '[]'

更新:

我还尝试了全新安装Debian 11 (5.10.0-25-amd64),它按预期工作:

root@vm-debian-11-cli:~# ls -la /mnt/NVME1/lxd/containers/debian/rootfs/
total 24
drwxr-xr-x 1 1065536 1065536  154 Sep  6 06:28 .
d--x------ 1 1065536 root      78 Sep  6 15:31 ..
lrwxrwxrwx 1 1065536 1065536    7 Sep  6 06:25 bin -> usr/bin
drwxr-xr-x 1 1065536 1065536    0 Jul 14 17:00 boot
drwxr-xr-x 1 1065536 1065536    0 Sep  6 06:28 dev
drwxr-xr-x 1 1065536 1065536 1570 Sep  6 06:28 etc

为什么没有填充volatile.last_state.idmap: '[]'?与 Debian 10 和 11 的工作一样,显然这可能与新内核和/或其配置有关。

我该如何修复它?谢谢。

containers
  • 1 个回答
  • 104 Views
Martin Hope
TCB13
Asked: 2022-02-21 03:52:11 +0800 CST

Networkctl:手动 VLAN IP 链接

  • 0

我有一个网络接口eth0,它将我的主网络作为未标记的流量和一个带有 id 标记的流量的“管理”网络18。这是它的配置方式:

10-eth0.network:

[Match]
Name=eth0

[Link]
RequiredForOnline=yes

[Network]
DHCP=v4
VLAN=vlan18

vlan18.netdev:

[NetDev]
Name=vlan18
Kind=vlan

[VLAN]
Id=18

vlan18.network:

[Match]
Name=vlan18

[Network]
Address=10.10.1.1/24

启动时,服务器将开始eth0通过 DHCP 获取 IP,并vlan18@eth0使用静态 IP 创建“管理”网络,10.10.1.1一切正常。

我如何告诉 networkctl 创建vlan18@eth0接口,但在启动时不启动它?这个想法是有一堆脚本可以在需要时执行ip link set vlan18 up/ip link set vlan18 down访问该网络。

谢谢你。

ip systemd systemd-networkd
  • 1 个回答
  • 153 Views
Martin Hope
TCB13
Asked: 2020-11-04 12:42:36 +0800 CST

iptables:容器 NAT 和外部 IP

  • 1

我有一个 Debian 10 服务器(公共 IP 85.xxx.xxx.xxx 在)在网桥enp6s0上运行一堆LXC 容器。我制定了以下 iptables 规则,以便容器可以与外界通信:cbr0

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i cbr0 -j ACCEPT
iptables -A FORWARD -i cbr0 -o enp6s0 -j ACCEPT
iptables -A FORWARD -i enp6s0 -o cbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o enp6s0 -j MASQUERADE

我创建了一个包含nginx 的容器(10.0.0.1),并将传入的 http 流量重定向到该容器:

iptables -t nat -A PREROUTING -i enp6s0 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.1:80
iptables -A FORWARD -i enp6s0 -o cbr0 -p tcp --dport 80 -j ACCEPT

一切都按预期工作,我可以浏览容器等上的网站。

现在我创建了第二个容器(10.0.0.2),它需要从 nginx 容器中获取一些数据。如果我使用内部 10.0.0.1 IP 进行通信,我的第二个容器能够获取页面。但是,如果我尝试使用服务器的外部 IP:

root@second-container:~# nc example.com 80
example.com [85.xxx.xxx.xxx] 80 (http) : Connection refused

我目前的解决方法是为/etc/hostsnginx 托管的所有域手动添加条目,以便它们解析为 10.0.0.1 而不是其公共 IP。

我还需要哪些规则才能允许使用外部服务器 IP 进行通信?

谢谢你。


这是该问题的附加图表: 在此处输入图像描述

debian nat iptables containers
  • 2 个回答
  • 337 Views
Martin Hope
TCB13
Asked: 2020-11-03 03:12:33 +0800 CST

Pure-FTPd:随机失败,受限 iptables INPUT

  • 0

我已经在使用链的iptables默认DROP策略运行的 Debian 10 机器上安装了 Pure-FTPd。链设置为INPUT。OUTPUTACCEPT

问题:如果我尝试连接 FTP 客户端,它有时只能工作。似乎可以随机列出文件夹或失败。通常重试新连接会起作用。

我的Pure-FTPd 配置了以下端口:

$ cat /etc/pure-ftpd/conf/Bind
85.xxx.xxx.xxx,57419

$ cat /etc/pure-ftpd/pure-ftpd.conf | grep Port
# Port range for passive connections - keep it as broad as possible.
PassivePortRange             30000 50000

要打开我使用的防火墙上的端口:

iptables -A INPUT -p tcp --dport 57419 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:50000 -j ACCEPT

服务器上的日志:

pure-ftpd]: ([email protected]) [INFO] New connection from 176.x.x.x
pure-ftpd]: ([email protected]) [INFO] TLS: Enabled TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384, 256 secret bits cipher
pure-ftpd]: ([email protected]) [INFO] testuser is now logged in
// no more output until the client retries a new connection

现在 FTP 客户端会说它正在列出一段时间,然后: 在此处输入图像描述

现在,如果我将 iptablesINPUT链设置为ACCEPT一切正常,那么 Pure-FTPd 随机尝试使用的某些端口似乎仍然被阻塞,我该如何调试/修复它?

谢谢你。

iptables pureftpd
  • 1 个回答
  • 93 Views
Martin Hope
TCB13
Asked: 2020-10-11 04:45:07 +0800 CST

LXD/LXC:磁盘设备和 lxc.mount.entry 的区别

  • 1

我一直在使用以下内容将 LCX 主机中的文件夹共享到容器中:

lxc config device add containerxyz directoryname disk source=/storage/containerxyz path=/mnt/storage/

这工作得很好,我可以让容器读取和写入文件到/storage/containerxyz主机中的路径,但是我在网上看到有人建议这样做:

lxc.mount.entry = /storage/containerxyz /var/lib/lxc/containerxyz/rootfs/mnt/storage/ none bind 0 0

这两种使主机目录可用于容器的方法之间的实际区别是什么?每种方法的缺点是什么?

mount lxc
  • 1 个回答
  • 1126 Views
Martin Hope
TCB13
Asked: 2018-02-12 14:06:27 +0800 CST

后缀:smtpd_*_restrictions 以拒绝结尾

  • 0

我有一个为我自己的电子邮件运行的 Postfix 服务器,一切正常。smtpd_client_restrictions当我升级机器并决定检查安全设置/阅读并在线实施一些最佳实践时,大多数在线教程告诉我设置main.cf与此类似:

smtpd_client_restrictions = 
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_invalid_hostname,
    reject_unknown_client_hostname,
    reject_rbl_client zen.spamhaus.org,
    reject_rbl_client bl.spamcop.net,
    reject_rbl_client cbl.abuseat.org

同时我也看到人们将submission服务设置master.cf为:

submission inet  n       -       y       -       -       smtpd
 (...)
 -o smtpd_client_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_mynetworks,permit_sasl_authenticated,reject

我的问题:为什么smtpd_client_restrictions下面的submission结尾reject和下main.cf没有人建议以结尾reject?根据文档,它们不是一样的吗:

-o name=value(缩写形式)覆盖命名的 main.cf 配置参数。参数值可以引用其他参数如 $name 等,就像在 main.cf 中一样。有关语法,请参见 postconf(5)。 http://www.postfix.org/master.5.html

还,

限制按指定的顺序应用;第一个匹配的限制获胜。http://www.postfix.org/postconf.5.html#smtpd_client_restrictions

如果“匹配的第一个限制获胜”规则真的适用,它不会以它结束reject会导致根本无法发送电子邮件?

谢谢你。

postfix
  • 1 个回答
  • 445 Views
Martin Hope
TCB13
Asked: 2017-09-20 14:29:12 +0800 CST

Debian 9.1:无法禁用 IPv6 自动配置

  • 2

我已经将机器更新到 Debian 9.1,一切似乎都很好,但是我无法禁用 IPv6 自动配置。

背景:我只想在我定义的机器上使用一些特定的 IPv6 地址/etc/systemd/network/10-static-eth0.network:

[Match]
Name=eth0

[Network]
Address=2a04:52c0:xxx:xxx::xxx/48
Address=2a04:52c0:xxx:xxx::xxx/48
Address=2a04:52c0:xxx:xxx::xx/48
Gateway=2a04:52c0:xxx::1

Address=5.2.xxx.xxx/25
Address=5.2.xxx.xxx/25
Address=5.2.xxx.xxx/25
Gateway=5.2.xxx.xxx

要禁用 IPv6 自动配置,我在末尾添加了以下内容/etc/sysctl.conf:

net.ipv6.conf.default.autoconf=0
net.ipv6.conf.all.autoconf=0
net.ipv6.conf.eth0.autoconf=0

net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.eth0.accept_ra=0

net.ipv6.conf.default.accept_dad=0
net.ipv6.conf.all.accept_dad=0
net.ipv6.conf.eth0.accept_dad=0

重新启动后没有动态/自动配置 IPv6 地址,但过了一会儿它出现在ip addr show:

inet6 2a04:52c0:xxxx:xxxx:xxxx:xxx:xxxx:1e3d/64 scope global mngtmpaddr noprefixroute dynamic 
   valid_lft 2590732sec preferred_lft 603532sec

我怎样才能避免这个自动配置 IPv6 地址并确保只有静态地址才能工作?

谢谢你。

debian
  • 1 个回答
  • 2767 Views
Martin Hope
TCB13
Asked: 2016-07-26 06:06:33 +0800 CST

交互式应用程序:确保每 30 分钟找到一次特定的输出

  • 1

因此,由于一些非常糟糕的设计选择,我被一个复杂且不可替代的交互式控制台应用程序所困扰,该应用程序永远在 Debian 机器上运行。

这个应用程序重复执行一些任务,并返回stdout如下结果:

InvetoryOpt: Finished
PBridged: Finished
FLoot: ERROR

我需要确保每 x 分钟我都会InvetoryOpt: Finished在程序的输出中得到字符串。如果不是我需要杀死它,运行其他脚本,再次启动程序并检查。

我怎样才能做到这一点?我正在考虑,expect但我没有太多经验,我不确定我是否能够每 x 分钟检查一次输出是否与字符串匹配。

笔记:

  • 该程序还输出了许多我不关心的其他垃圾;
  • 该程序可以InvetoryOpt: Finished在 30 分钟内多次输出相同的字符串,或者根本不输出任何内容。所以拖尾文件的末尾不会这样做,因为它会匹配该字符串的最后一个输出。

谢谢你。

bash command-line-interface
  • 1 个回答
  • 34 Views
Martin Hope
TCB13
Asked: 2016-04-10 06:30:28 +0800 CST

doveadm:删除早于日期的消息

  • 14

我有一种情况,一些用户在他们的邮箱中保留了非常旧的邮件(+5 年),这只是浪费空间,出于安全原因也应该删除。

我发现我可以使用doveadm它,但是运行类似:

doveadm expunge -u [email protected] mailbox INBOX savedbefore 1-Jan-2011

没有任何作用。据我了解,电子邮件客户端expunge在服务器上运行之前将电子邮件标记为删除以实际删除它们。

如何将它们标记为删除doveadm,然后在之前或doveadm直接运行命令并完全删除它们?

maintenance dovecot
  • 1 个回答
  • 28443 Views
Martin Hope
TCB13
Asked: 2016-04-02 17:54:20 +0800 CST

后缀:基于别名的 SMTP 中继(来自地址)

  • 2

我最近注意到,当我向 Gmail 帐户添加别名时,他们要求我提供远程 SMTP 服务器、用户名和密码。然后,每当我尝试使用该别名发送电子邮件时,它都会由 Gmail 中继到提供的 SMTP 服务器。

有没有办法可以在 Postfix 安装上完成此设置?

澄清一下,如果他发送电子邮件,我的服务器上有一个虚拟用户[email protected](使用别名:[email protected]和):[email protected]

  • from地址为= [email protected]> 服务器将进行默认交付;
  • from地址=> 服务器将使用(使用适当的凭据)[email protected]中继电子邮件;smtp.xpto.com
  • from地址=> 服务器将使用(使用适当的凭据)[email protected]中继电子邮件;smtp.corpx.com

理想情况下,如果我可以有一个包含外部 SMTP 服务器域、端口、用户名和密码的外部别名(对于每个虚拟用户)的 MySQL 表,那就太好了。=> 这样我就可以设置一个小的网络界面,这样我的用户就可以使用他们自己的所有外部别名...

谢谢你。

email
  • 1 个回答
  • 2326 Views
Martin Hope
TCB13
Asked: 2015-11-23 07:07:49 +0800 CST

用于多域群发邮件的 Postfix 服务器

  • 0

我目前正在为非营利组织的群发邮件设置邮件服务器。我决定使用 Postfix,因为我有一些配置经验。然而,我的经验是针对由 MySQL DB 支持的多域环境,而不是群发邮件解决方案。

我要完成的工作需要满足以下条件:

  1. 允许从他们选择的任何电子邮件地址/域发送电子邮件的 SMTP 服务器;
  2. 只允许从服务器本身发送带有这些域的电子邮件,以避免将其作为开放中继运行并出现垃圾邮件问题;
  3. 仍然有一个基于 MySQL 数据库的配置,因此我可以创建内部电子邮件以virtual_aliases用作电子邮件退回/返回路径以跟踪错误;mailbox-domainsmailbox-maps@massmail.example

我当前的配置是一个多域环境,我能够将域和用户添加到 MySQL DB[email protected]中,连接到 SMTP,通过 IMAP 发送邮件和接收。一切正常。

但是,我应该如何实现这部分:“从他们选择的任何电子邮件地址/域发送电子邮件”?

要从 发送电子邮件[email protected],我应该:

  1. 将域添加non-profit.com到virtual_domains表中并在 中创建用户[email protected],virtual_users使用该地址登录并发送电子邮件?
  2. 使用内部退回电子邮件登录,[email protected]使用它发送电子邮件,但将FROM标题更改为[email protected]?

就垃圾邮件检测批量发送合规性而言,正确的选项是什么?以上任何一种还是其他?像邮件黑猩猩这样的平台如何处理这个问题?

我尝试了选项 (2),例如,gmail 是这样说的: 在此处输入图像描述

email
  • 1 个回答
  • 1446 Views
Martin Hope
TCB13
Asked: 2015-10-18 04:31:31 +0800 CST

Lighttpd:重定向域但不重定向子域

  • 1

过去,我在 Lighted 上有以下配置,这将允许我将我拥有的一些辅助域重定向到我的主域。

$HTTP["host"] =~ "superdomain\.net|superdomain\.eu" {
    url.redirect = ( "^/(.*)" => "http://mything.com/" )
}

这工作正常。如果有人试图去superdomain.net他将被重定向到http://mything.com也保持完整的 URL 查询。

但是,今天我试图在之前的规则上设置子域webmail.superdomain.net和 Lighted 匹配webmail.superdomain.net并将用户重定向到http://mything.com.

子域的配置是:

$HTTP["host"] == "webmail.superdomain.net" {
    var.domain = "webmail.superdomain.net"
    include "/var/webconfig/config/template/domain-generic.conf"
}

我把这条规则放在另一条之前,但仍然没有运气。有没有办法可以将第一条规则更改为仅匹配域而不匹配子域?

谢谢你。

redirect
  • 1 个回答
  • 430 Views
Martin Hope
TCB13
Asked: 2015-05-30 11:24:34 +0800 CST

Debian 8 + PHP:/tmp/ 权限被拒绝

  • 0

我有一个在 Debian 7 + PHP 5.6 上运行良好的网站,最近决定将我的 Debian 安装升级到 Debian 8。一切都很好,除了一件小事。

在运行相同的代码时,似乎 PHP 无法向 写入任何内容/tmp/,现在我收到如下消息:

errno: 2,
errstr: "ZipArchive::extractTo(): Permission denied",
errcontext: {
    Filepath: "/tmp/phpVTUxDh",
    Options: null,
    Zip: {
       status: 0,
       statusSys: 0,
       numFiles: 12,
       filename: "/tmp/phpVTUxDh",
       comment: ""
    },
Status: true

显然,该方法extractTo()很难写入\tmp系统上是否有任何可能导致此问题的特定更改?新的 systemdPrivateTmp东西怎么样?

我试图添加PrivateTmp=false到文件中:

/etc/systemd/system/multi-user.target.wants/lighttpd.service
/etc/systemd/system/multi-user.target.wants/php5-fpm.service

但是,它在那里似乎没有任何区别。

无论如何,为什么\tmp现在总是空的有什么具体原因?另外,tmp的新位置在哪里?

谢谢你。

debian
  • 1 个回答
  • 1049 Views
Martin Hope
TCB13
Asked: 2015-05-23 05:50:20 +0800 CST

IPv6:无 NAT / 本地寻址 + ISP 离线

  • 3

我一直在阅读一些关于 IPv6 的文章,我目前正在使用 VPS 上的一些地址。

最近我在考虑一个典型的家庭/办公室 IPv4 网络。我们习惯于让本地 DHCP 服务器运行RFC1918为我们的机器提供私有 IP,然后使用 NAT 来转换公共 ISP 提供的 IP 和我们的内部网络之间的流量。

我确实理解 NAT 转换只是处理 IPv4 终结的一种措施,并且由于我们有大量可用的 IPv6 寻址空间,我们可以为世界上的每台计算机提供一个唯一的 IPv6 而不必担心它——网络安全将仍然由防火墙以非阻止所有 NAT 方式解决。

但是......如果每个主机都有一个公共 IPv6,如果 ISP 死亡/更改/外部网络由于某种原因而关闭,我的网络会发生什么?如何确保本地通信?如果 ISP 发生变化(因为 IPv6 前缀会发生变化),如何避免重新配置大量软件?

解决这些问题的正确方法是什么?我可以interlay使用一台机器总是有相同的IP吗?即使那个IP是公开的?我听说过 IPv6 中的私有 IP 空间,它的工作方式与 IPv4 相同还是“附加”到我的 IPS 前缀?机器到底是如何获得 IP 的?他们应该将它们配置为静态吗?

谢谢你。

ipv6
  • 1 个回答
  • 429 Views
Martin Hope
TCB13
Asked: 2015-05-21 11:09:27 +0800 CST

Bind9: Master->Slave Notify IPv6 with fallback to IPv4

  • 1

我在双 IP 堆栈中运行 Debian 8 + Bind9 的两台机器之间设置了一个小的 Master->Slave DNS 方案。

主从都拥有绑定使用的 IPv4 和 IPv6,由配置参数强制执行listen-on listen-on-v6 transfer-source transfer-source-v6 notify-source notify-source-v6 query-source address query-source-v6 address。

目前我的主人设置为通知奴隶:

notify yes;
also-notify { xxxx:xxxx:xxxx:xxxx::xxx5; x.x.x.5; };

正如我的奴隶在区域配置上的那样:

zone "example.dev" {
    type slave;
    masters { xxxx:xxxx:xxxx:xxxx::xxx2; x.x.x.2; };
    file "...";
};

此设置工作正常,但是通过检查日志文件(正如我所料),主控会在每次区域更改时通知从属两次:

May 20 20:57:53 salvedns named[8568]: zone example.dev/IN: notify from x.x.x.2#52041: zone is up to date
May 20 20:57:53 salvedns named[8568]: zone example.dev/IN: notify from xxxx:xxxx:xxxx:xxxx::xxx2#51347: zone is up to date

一次是通过 IPv4,另一次是通过 IPv6。

有没有一种方法可以告诉绑定服务器xxxx:xxxx:xxxx:xxxx::xxx5 x.x.x.5确实是同一 DNS 服务器的地址,并尝试首先通过 IPv6 通知它,如果失败则通过 IPv4 重试?另外,如何在药膏masters声明上做同样的事情?

谢谢你。

bind
  • 1 个回答
  • 1933 Views
Martin Hope
TCB13
Asked: 2015-05-20 12:41:53 +0800 CST

OpenVPN:流量重定向不起作用

  • 1

tl;dr(在使用@krisFR 进行数小时调试后):至少在 Debian 8 下,不要为 OpenVPN 使用虚拟接口(eth0:1),而是应用iproute2此处描述的新 debian 方法(手动方法):https://wiki。 debian.org/NetworkConfiguration#iproute2_method。它将很好地路由流量。


我试图在所有客户端流量都应该通过隧道发送的机器上设置 OpenVPN,所以这是我的服务器配置的一部分:

local x.x.x.243
port 443
proto udp
dev tun
server 172.31.1.0 255.255.255.0 
push "redirect-gateway def1 bypass-dhcp"

我的客户端配置:

pull
resolv-retry infinite
mute-replay-warnings 
redirect-gateway def1
script-security 1

客户端能够连接到 VPN,并且可以 ping VPN 主机172.31.1.1,但是如果我尝试通过域或 IP ping google.com,我会收到一条Request timeout for icmp_seq 0消息...

这可能是什么原因造成的?旁注,我已经卸载了任何防火墙,并且我目前正在将 IPTables 设置为:

iptables -A INPUT -i eth0:1 -m state --state NEW -p udp --dport 443 -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -o eth0:1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0:1 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.31.1.0/24 -o eth0:1 -j MASQUERADE
iptables -A OUTPUT -o tun+ -j ACCEPT

谢谢你。


因此,我尝试在客户端213.30.5.46(Google 的 IP 之一)上 ping 通,但没有成功,但是我得到了以下结果:

侦听传出 VPN IP (eth0:1):tcpdump -i eth0 -t host x.x.x.243

IP [CLIENT_IP x..].51060 > vpn.exampledomain.com.https: UDP, length 113
IP [CLIENT_IP x..].51060 > vpn.exampledomain.com.https: UDP, length 145
IP vpn.exampledomain.com.https > [CLIENT_IP x..].51060: UDP, length 81
IP [CLIENT_IP x..].51060 > vpn.exampledomain.com.https: UDP, length 145
IP [CLIENT_IP x..].51060 > vpn.exampledomain.com.https: UDP, length 145
IP [CLIENT_IP x..].51060 > vpn.exampledomain.com.https: UDP, length 145

同时,在 tun0 上听,我得到了这个:tcpdump -i tun0

23:40:39.864798 IP 172.31.1.10 > cache.google.com: ICMP echo request, id 17942, seq 0, length 64
23:40:40.925951 IP 172.31.1.10 > cache.google.com: ICMP echo request, id 17942, seq 256, length 64
23:40:41.886679 IP 172.31.1.10 > cache.google.com: ICMP echo request, id 17942, seq 512, length 64
23:40:42.906125 IP 172.31.1.10 > cache.google.com: ICMP echo request, id 17942, seq 768, length 64

这是输出iptables -L -n -v:

Chain INPUT (policy ACCEPT 34772 packets, 2265K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  eth0:1 *       0.0.0.0/0            0.0.0.0/0            state NEW udp dpt:443
   13  1092 ACCEPT     all  --  tun+   *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1437 96985 ACCEPT     all  --  tun+   *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  tun+   eth0:1  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth0:1 tun+    0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 32574 packets, 7919K bytes)
 pkts bytes target     prot opt in     out     source               destination         
   13  1092 ACCEPT     all  --  *      tun+    0.0.0.0/0            0.0.0.0/0           

注意: /proc/sys/net/ipv4/ip_forward设置为1.


tcpdump -i eth0:1 -t host 213.30.5.46ping目标时定位:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0:1, link-type EN10MB (Ethernet), capture size 262144 bytes
IP 172.31.1.10 > cache.google.com: ICMP echo request, id 16920, seq 0, length 64
IP 172.31.1.10 > cache.google.com: ICMP echo request, id 16920, seq 256, length 64
IP 172.31.1.10 > cache.google.com: ICMP echo request, id 16920, seq 512, length 64
IP 172.31.1.10 > cache.google.com: ICMP echo request, id 16920, seq 768, length 64

客户端没有显示,ping 最终超时。


OpenVPN 使用的 IP地址local x.x.x.243设置\etc\network\interfaces如下:eth0:1eth0

 auto eth0:1
  iface eth0:1 inet static
   address x.x.x.243
   gateway x.x.x.129
   netmask 255.255.255.128
   dns-nameservers x.x.x.4 x.x.x.104
openvpn
  • 1 个回答
  • 612 Views
Martin Hope
TCB13
Asked: 2015-05-19 16:41:53 +0800 CST

BIND9:发送特定 IP 地址的通知

  • 2

我一直在尝试在两台机器之间实现绑定 master->slave 设置,但我对主机上用于通知我的从机的 IP 地址 BIND 存在问题。

这是我的设置:

Master: master.site.com - 10.0.0.2
Slave: slave.site.com - 10.0.0.10

Master 有一个权威区域site.com,它被配置为在区域更改时通知所有从站。该区域工作正常。它对查询和dig @10.0.0.2 -t SOA site.com

所以,在主人我有这个named.conf.options:

options {
    directory "/var/cache/bind";

    dnssec-validation auto;
    auth-nxdomain no;

    listen-on { 10.0.0.2; };
    listen-on-v6 { any; };
    allow-query     { any; };
    recursion yes;
    allow-recursion { localhost; };
    allow-notify { localhost; };
    allow-transfer { localhost; 10.0.0.10; };
    version none;

    notify yes;
    also-notify { 10.0.0.10; };

};

在奴隶上:

options {
    directory "/var/cache/bind";

    dnssec-validation auto;
    auth-nxdomain no;

    listen-on { 10.0.0.10; };
    listen-on-v6 { any; };
    allow-query     { any; };
    recursion yes;
    allow-recursion { localhost; };
    allow-notify { localhost; 10.0.0.2; };
    allow-transfer { localhost; 10.0.0.2; };
    version none;
};

首先,通知似乎不起作用,tcpdump在从机上使用我收到以下消息:

02:32:50.269377 IP 10.0.0.1.15271 > 10.0.0.10.53: 64103 notify [b2&3=0x2400] [1a] SOA? site.com. (85)
02:32:50.269662 IP 10.0.0.10.53 > 10.0.0.1.15271: 64103 notify Refused- 0/0/0 (27)

正如您所看到的,虽然主服务器设置为10.0.0.2在发送通知时监听,但它使用它的主 IP 地址发送它们,10.0.0.1并且逻辑上我的从服务器拒绝了通知......

为什么主人不发送通知10.0.0.2?有没有我可以强制执行的配置?这台机器拥有 3 个 IP,一个用于网站,另一个用于电子邮件,另一个用于 DNS……我需要让它仅用于10.0.0.2DNS,但显然listen-on似乎不适用于传出流量……

我怎样才能解决这个问题?

domain-name-system
  • 1 个回答
  • 2719 Views
Martin Hope
TCB13
Asked: 2015-03-02 13:37:10 +0800 CST

bind9 + lighttpd:接受来自某些名称服务器的所有请求并使用静态页面进行回复

  • 1

所以,我有这种情况:

一台服务器(在 CentOS 下)有很多域,它们下有大约 2 TB 的数据,我正在将它全部迁移到另一台具有更快 I/O 的机器上。迁移细节/软件在这里并不重要。

由于一些内部原因,我将整个系统映像并将其部署到新机器中,然后进行适当的调整。为此,您必须关闭机器并等待一两个小时才能传输图像。

我的问题是:显示静态网页的最佳方式是什么,说明该网站目前无法维护?没有更改所有域的名称服务器,而真正的服务器处于脱机状态?

该服务器上的所有域当前都指向名称服务器ns1.example.com和ns2.example.com.

我的想法是将ns2.example.comIP从真实服务器更改为小型VPS,希望每个浏览指向那里的域的人最终都会在小型VPS上显示一个静态页面,说明该网站当前无法维护。

如果我是正确的,我该如何配置 bing9 和一个像 lighttpd 这样的网络服务器来回复传入的 DNS 查询,认为ns2.example.com它有自己的 IP,然后 lighttpd 显示任何域的静态页面?像通配符...

谢谢你。

bind
  • 1 个回答
  • 100 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve