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-78319

WoJ's questions

Martin Hope
WoJ
Asked: 2022-02-15 07:03:25 +0800 CST

CGNAT如何在客户端路由?

  • 2

在测试 Zscaler POC 时(从安全角度来看),我很难理解CGNAT是如何在客户端上路由的。

我主要关心(和问题)是100.64.xy 路由不在路由表中(Windows 10)。默认网关位于我的本地网络网关上,因此流量也无法到达那里。

CGNAT 流量的路由方式有什么特别之处?

客户端的路由表是

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.43.1   192.168.43.107     50
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
     172.22.208.0    255.255.240.0         On-link      172.22.208.1    271
     172.22.208.1  255.255.255.255         On-link      172.22.208.1    271
   172.22.223.255  255.255.255.255         On-link      172.22.208.1    271
     192.168.43.0    255.255.255.0         On-link    192.168.43.107    306
   192.168.43.107  255.255.255.255         On-link    192.168.43.107    306
   192.168.43.255  255.255.255.255         On-link    192.168.43.107    306
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link    192.168.43.107    306
        224.0.0.0        240.0.0.0         On-link      172.22.208.1    271
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link    192.168.43.107    306
  255.255.255.255  255.255.255.255         On-link      172.22.208.1    271

下面是在 zscaler 上设置的内部公司服务的解析(因此通过 CGNAT 路由)。zscaler 之外的同名指向一个经典的 RFC1918 地址。

> nslookup internalcorporatesite.com
Server:  xxx.com
Address:  192.168.43.1

Non-authoritative answer:
Name:    internalcorporatesite.com
Address:  100.64.1.9

请注意,默认网关192.168.43.1不知道 CGNAT - 它是一个本地网络,并且 zscaler 使用 CGNAT。

routing nat
  • 1 个回答
  • 269 Views
Martin Hope
WoJ
Asked: 2022-02-07 02:55:41 +0800 CST

DNS有特殊性吗?

  • 0

我拥有一个域(例如,example.com)并希望:

  • 使用我的公共 DNS自动更新ext.example.com(通过在 ISP 提供的 IP 更改后进行更新的脚本)→ 这有效
  • 将顶点域 ( example.com) 重定向到ext.example.com)
  • 使用通配符*.example.com指向ext.example.com

为此,我将相关的 DNS 条目设置为 (+ SOA, NS)

           IN DNAME  ext.example.com.
*          IN CNAME  ext.example.com.
ext     60 IN A      350.299.1.1

查询时ext.example.com我得到一个奇怪的答案:递归串联ext

ext.example.com.            3508    IN      CNAME   ext.ext.example.com.
ext.ext.example.com.        3508    IN      CNAME   ext.ext.ext.example.com.
ext.ext.ext.example.com.    3508    IN      CNAME   ext.ext.ext.ext.example.com.
(about 20 such lines in total)

似乎比赛是在*.example.com(the CNAME) 而不是ext.example.com(the Arecord) 上完成的。

有没有办法强制 DNS 的特异性?(即ext.example.com提供更具体的,而不是更通用的通配符)

domain-name-system networking dns-zone
  • 2 个回答
  • 58 Views
Martin Hope
WoJ
Asked: 2020-03-22 06:34:26 +0800 CST

当文件存在时,为什么 docker-compose 会发出“没有这样的文件或目录”?

  • 9

我正在测试我的服务器的裸机恢复,它基本上用我的服务启动了一组 docker 容器。我从备份中恢复/etc/docker,其中保留了所有配置和持久卷。

然后我尝试启动其中一个容器:

root@srv-backup:/etc/docker# docker-compose --verbose -f /etc/docker/docker-compose.d/20-registry.yaml up
compose.config.config.find: Using configuration files: /etc/docker/docker-compose.d/20-registry.yaml
ERROR: compose.cli.main.main: .IOError: [Errno 2] No such file or directory: '/etc/docker/docker-compose.d/20-registry.yaml'

但是该文件在那里:

root@srv-backup:/# ll /etc/docker/docker-compose.d/20-registry.yaml
-rwxrwxr-x+ 1 root root 842 Jan 24 15:19 /etc/docker/docker-compose.d/20-registry.yaml*

root@srv-backup:/# cat /etc/docker/docker-compose.d/20-registry.yaml
services:
  registry:
    container_name: registry
    image: registry
    labels:
      - traefik.http.routers.registry.rule=Host(`registry.example.com`)
      - traefik.http.routers.registry.entryPoints=https
      - traefik.http.routers.registry.tls=true
      - traefik.http.routers.registry.tls.certresolver=le
      - traefik.http.middlewares.lan.ipwhitelist.sourcerange=192.168.10.0/24, 192.168.20.0/24
      - traefik.http.routers.registry.middlewares=lan
      - traefik.enable=true
    restart: unless-stopped
    volumes:
      - /etc/docker/container-data/registry:/var/lib/registry
version: '3'

root@srv-backup:/# file /etc/docker/container-data/registry
/etc/docker/container-data/registry: directory

我尝试了各种具有相对路径和完整路径的咒语 - 问题是一样的。

我想知道 docker 守护进程是否可以访问该文件,但它也运行为root:

root@srv-backup:/# ps -ef | grep docker
root      2048     1  0 10:58 ?        00:00:08 dockerd -G docker --exec-root=/var/snap/docker/423/run/docker --data-root=/var/snap/docker/common/var-lib-docker --pidfile=/var/snap/docker/423/run/docker.pid --config-file=/var/snap/docker/423/config/daemon.json
root      2200  2048  0 10:58 ?        00:00:07 containerd --config /var/snap/docker/423/run/docker/containerd/containerd.toml --log-level error

我很茫然为什么它不起作用(docker文件在我试图在这个DRP练习中复制的服务器上正常工作)

docker docker-compose
  • 4 个回答
  • 43558 Views
Martin Hope
WoJ
Asked: 2019-07-12 12:21:39 +0800 CST

如何添加可执行文件有空格且需要参数的服务?

  • 1

我想要一个 python 脚本作为 Windows 服务,使用sc. 问题是可执行文件的路径有空格并且需要参数。

所以

sc create DNSResolver127 binPath= '"C:\Program Files (x86)\Python36-32\python.exe" D:/32dsdnsproxy/32dsdnsproxy.py'

失败(我试图将整个选项括在单引号中)

如何添加这样的服务?

windows
  • 1 个回答
  • 630 Views
Martin Hope
WoJ
Asked: 2019-06-12 01:03:10 +0800 CST

如何以 UDP 模式启动 iperf3 服务器?

  • 6

我想测试 UDP 连接,iperf3但不知道如何在 UDP 服务器模式下启动它。

iperf3 -s只打开一个 TCP 套接字:

root@srv ~# lsof -i -P | grep iperf3
iperf3    21030            root    3u  IPv4 15606995      0t0  TCP *:5201 (LISTEN)
bandwidth
  • 2 个回答
  • 29578 Views
Martin Hope
WoJ
Asked: 2019-03-16 05:16:53 +0800 CST

如何使用 VPN 接口启用正确路由?

  • 0

我安装在 LAN 中的服务器上,两个组件之间wireguard存在单个问题。ping拓扑如下:

  • srv是一台 Linux 机器(Ubuntu 18.04),它有一个带有 IP 的物理接口192.168.10.2和一个带有 IP 的虚拟接口192.168.20.1
  • remote是一台通过 LAN 连接wireguard并具有 IP的机器192.168.20.2
  • internal是局域网上的一台机器,它有 IP192.168.10.5

一般来说,真实局域网上的机器都在192.168.10.0/24.VPN里面192.168.20.0/24.
任何地方都没有iptables限制。
IP 转发在 上启用srv。

问题:我可以从任何地方ping所有东西,除了192.168.10.2192.168.20.2(服务器上的物理网卡IP来自远程机器上的VPN)。

具体来说

  • 我可以从( )remote的srv两侧和 LAN 上的其他任何东西(在上面的列表中)到达。 wireguard192.168.20.1192.156.10.5
    • 我可以remote从srv(通过 VPN)到达

上的路由表srv(br0是“物理”接口,实际上这是一个网桥,但在这里无关紧要)

default via 192.168.10.1 dev br0 proto dhcp metric 1024
192.168.10.0/24 dev br0 proto kernel scope link src 192.168.10.2
192.168.20.0/24 via 192.168.20.1 dev wg0 proto static
192.168.20.0/24 via 192.168.10.2 dev br0 proto dhcp metric 1024

路由表在remote

Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      10.237.76.1      10.237.78.2     25
      10.237.76.0    255.255.252.0         On-link       10.237.78.2    281
      10.237.78.2  255.255.255.255         On-link       10.237.78.2    281
    10.237.79.255  255.255.255.255         On-link       10.237.78.2    281
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
     192.168.10.0    255.255.255.0     192.168.20.1     192.168.20.2    135
     192.168.20.0    255.255.255.0         On-link      192.168.20.2    291
     192.168.20.2  255.255.255.255         On-link      192.168.20.2    291
   192.168.20.255  255.255.255.255         On-link      192.168.20.2    291
     192.168.56.0    255.255.255.0         On-link      192.168.56.1    281
     192.168.56.1  255.255.255.255         On-link      192.168.56.1    281
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    281
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    281
        224.0.0.0        240.0.0.0         On-link       10.237.78.2    281
        224.0.0.0        240.0.0.0         On-link      192.168.20.2    291
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    281
  255.255.255.255  255.255.255.255         On-link       10.237.78.2    281
  255.255.255.255  255.255.255.255         On-link      192.168.20.2    291

192.168.20.2发送数据包但未192.168.20.1到达的原因可能是什么192.168.10.2?

networking
  • 1 个回答
  • 1873 Views
Martin Hope
WoJ
Asked: 2019-03-16 02:24:22 +0800 CST

/config/config.boot 与 /etc/dnsmasq.d 中的 DNS/DHCP 配置

  • 0

我有一个 Edgerouter 4,我试图理解 DHCP 和 DNS 的配置区域,何时use-dnsmasq enable设置。

我看到可以进行配置的四个地方:

  1. 从命令行(set service dns forwarding ... 似乎是提供 DNS 参数的方式(但不是 DHCP?))

  2. 通过编辑(编辑:副本)/config/config.boot并加载它

这两个似乎紧密联系在一起,命令行配置似乎被写入/config/config.boot

  1. 通过配置/etc/dnsmasq.conf

  2. 通过将文件添加到/etc/dnsmasq.d

配置遵循dnsmasq配置文件,我/etc/dnsmasq.d/dnsmasq-dhcp-config.conf有为我创建的文件。

注意:我非常喜欢/etc/dnsmasq.conf像今天一样将所有内容都注释掉的方法,并将我所有的 DNS 和 DHCP cpnfiguration 文件保存在/etc/dnsmasq.d. 我可以接受从 GUI(在DNS页面中)看不到此配置。

我的问题

  • 这些配置方法如何协同工作?
  • 是否可以只使用方法 3. 或 4.?
  • 如果是:
    • 有缺点吗?(= 不便之处,例如在升级期间需要备份文件、GUI 中缺乏可见性等)
    • 有不兼容的地方吗?(= 可以通过 1.、2. 或 3./4. 专门配置某些东西?)
dnsmasq
  • 1 个回答
  • 277 Views
Martin Hope
WoJ
Asked: 2019-02-09 03:27:13 +0800 CST

多级主机名是否会产生实际影响?

  • 10

可以注册的A记录hello.world.example.com

  • 作为hello域中的条目world.example.com
  • 或作为hello.world域中的条目example.com

从解析名称的服务的角度来看,这两种方法之间是否存在实际区别?

据我所知,它们的解析产生了价值 A 记录(IP),因此客户无法识别回复。

domain-name-system
  • 2 个回答
  • 1186 Views
Martin Hope
WoJ
Asked: 2018-08-06 23:54:17 +0800 CST

如何覆盖 bind9 视图中的一个条目?

  • 2

我有两个用于区域的辅助 DNS 服务器。这些服务器之一,当接收到来自特定范围的请求时,应该修改其中一个记录。

为了拆分答案,我打算使用一个视图:

acl dmz { 192.168.0.0/24; localhost; };
acl lan { 10.0.0.0/8; };

view dmz {
  match-clients { dmz; };
  zone "example.info" {
    type slave;
    masters { 10.100.10.254; };
    file "/etc/bind/db.example-dmz.info";
  };

};

view lan {
  match-clients { lan; };
  zone "example.info" {
    type slave;
    masters { 10.100.10.254; };
    file "/etc/bind/db.example-lan.info";
  };

};

上面的配置拆分了答案,但答案是一样的。

我想,当设备192.168.0.10(in dmz) 请求 , 的分辨率时foo.example.info,发送回192.168.0.20而不是来自传输区域的答案。

如何覆盖这个单一条目?

domain-name-system
  • 2 个回答
  • 549 Views
Martin Hope
WoJ
Asked: 2018-04-10 06:22:38 +0800 CST

如何推送特定域的 DNS 服务器?

  • 3

我有一个域 ( example.com),它设置为有两个视图。host1.example.com从外部查询时,将10.0.0.1位于内部网络和149.120.10.14(公共 IP)中。

这意味着连接到 Internet 的设备应该正常使用其通常的 DNS 集(例如从 DHCP 获得的 DNS 8.8.8.8),并且它们将解析host1.example.com为其外部 IP。

然而,当通过 VPN 连接时,该设备应该从 OpenVPN 服务器接收特定的 DNS 来解析example.com (并且仅example.com)。

我的理解是使用

push "dhcp-option DNS 10.10.10.100"

10.10.10.100内部的、VPN 可访问的 DNS 服务器在哪里会覆盖设备上的 DNS 服务器,从而丢失它已经拥有的那些。

有没有一种方法可以推送 DNS 名称服务器,并且可以选择仅将其用于特定域并保留现有的其他 DNS(用于 Internet/公司解析)?

openvpn
  • 2 个回答
  • 9453 Views
Martin Hope
WoJ
Asked: 2018-03-03 01:06:02 +0800 CST

如何从服务器推送脚本,在客户端运行?

  • 1

我有一个无法再连接的设备(ssh、salt、...),没有简单的物理访问权限 - 但它仍然打开到我的服务器的 OpenVPN 会话。为了尝试恢复它,我想:

  • 在服务器上强制重新连接此客户端
  • 当客户端重新连接时 - 推送客户端将执行的脚本(首先我会通过日志和配置的转储查看正在发生的事情,然后可能恢复正确的设置)

有脚本在客户端连接后运行的解决方案,但都假设这是客户端的选择(= 配置在客户端)。我正在寻找相反的方式。

我可以看到这种方法存在安全问题(VPN 提供商可以接管客户端计算机),但也许有一种方法在文档中并不明显?

openvpn
  • 1 个回答
  • 818 Views
Martin Hope
WoJ
Asked: 2018-01-29 00:07:09 +0800 CST

客户端系统如何处理裸通用顶级域?

  • 0

可以获得通用 TLD,例如.example. DNS 搜索example会通过根服务器,根服务器会找到粘合记录example并将请求转发到指定的 NS。这与其他人没有什么不同.com。

这意味着我可以提供电子邮件地址,例如hello@example并在example.

如何在客户端(DNS 的客户端,这些可以是服务器或实际的最终用户机器)上解析这些裸名?

  • 具有典型分辨率的 Linux 服务器server.foo.com会将它所在的域附加到这样一个裸查询 - 假设该请求是针对其域上的主机的。然后它会请求 的分辨率example.foo.com,这不是预期的

  • 我相信 Windows 服务器也会发生同样的情况(?)

  • 在最终用户方面,输入example例如 Chrome 将触发对 word 的搜索example,因为它缺少完整的虚线地址

domain-name-system
  • 1 个回答
  • 235 Views
Martin Hope
WoJ
Asked: 2017-02-18 11:43:19 +0800 CST

尽管在绑定中禁用了 IPv6,为什么我看到 IPv6 解决错误?

  • 2

我看到诸如

Feb 13 21:45:48 srv named[2355]: address not available resolving 'secure.gravatar.com/A/IN': 2a04:fa87:ffff::c6b5:7405#53
Feb 13 21:42:29 srv named[2355]: address not available resolving 'la1.akamaiedge.net/AAAA/IN': 2001:500:a8::e#53

/var/log/syslog尽管仅在bindIPv4 模式下运行

srv # cat /etc/default/bind9
# run resolvconf?
RESOLVCONF=no

# startup options for the server
OPTIONS="-u bind -4"

为什么会这样?

linux bind nameserver linux-networking
  • 4 个回答
  • 18425 Views
Martin Hope
WoJ
Asked: 2016-12-08 02:23:52 +0800 CST

如何将域附加到 PTR 解析?

  • 1

我有bind9我的域的权威服务器example.com。前向解析有效,PTR 也可以达到一定程度。

我目前有

254.10.10   IN  PTR srv.

在我的 PTR 区域中10.x,正确解析为

root@srv ~# dig -x 10.10.10.254
(...)
;; ANSWER SECTION:
254.10.10.10.in-addr.arpa. 604800 IN    PTR     srv.

我希望分辨率为 FQDN,因此在上面的配置中替换srv.为srv(删除点),导致分辨率为

root@srv ~# dig -x 10.10.10.254
(...)
;; ANSWER SECTION:
254.10.10.10.in-addr.arpa. 604800 IN    PTR     srv.10.in-addr.arpa.

我如何通知bind9将 10.10.10.254 解析为srv.example.com而不是srv.10.in-addr.arpa?

注意:我知道我可以

254.10.10   IN  PTR srv.example.com.

在我的配置中。我正在寻找的是如何设置默认附加域。

domain-name-system bind reverse-dns dns-zone
  • 2 个回答
  • 1303 Views
Martin Hope
WoJ
Asked: 2016-12-03 05:24:50 +0800 CST

是否可以编辑 docker inspect 返回的数据?

  • 5

docker inspect返回有关 docker 图像或容器(或另一个对象)的各种有趣信息。

这些信息存储在哪里?是否可以编辑它?

docker
  • 3 个回答
  • 7315 Views
Martin Hope
WoJ
Asked: 2016-12-02 05:08:43 +0800 CST

如何编辑现有容器的选项?

  • 3

我docker create从正在使用的图像EXPOSE 22创建了一个容器 ()Dockerfile

我通过启动它并通过docker start <container name or ID>访问它ssh。

我现在需要再公开一个在此容器中运行的服务的端口。我无法重新创建它,它必须更改其启动参数才能公开那个额外的端口。这可能吗?

我希望这docker start将允许与docker createor相同的参数,docker run但事实并非如此。

注意:我知道 docker 的理念是创建临时容器。我必须处理这个高度定制的容器(而不是重新创建它),这是一个不争的事实

docker
  • 2 个回答
  • 7084 Views
Martin Hope
WoJ
Asked: 2016-11-29 08:19:26 +0800 CST

尽管有适当的配置,为什么不转发 syslog 消息?

  • 3

我想将 ( rsyslog 8.4.2-1) 所有 syslog 消息转发到127.0.0.1. 为此,我在以下位置添加了一个文件/etc/rsyslog.d/expose-42000.conf:

*.* @127.0.0.1:42000

重新启动 rsyslog(日志中没有错误消息)后,我尝试收听传入消息:

netcat -u 127.0.0.1 42000

尽管出现了消息,但没有输出/var/log/syslog。

为了确保确实包含该文件,我在调试模式下运行了 rsyslogd,我看到包含发生了:

# rsyslogd -dn
(...)
8836.556859167:main thread    : requested to include config file '/etc/rsyslog.d/expose-42000.conf'
8836.556895084:main thread    : config parser: pushed file /etc/rsyslog.d/expose-42000.conf on top of stack
Next token is token PRIFILT ()
Shifting token PRIFILT ()
Entering state 14
Reading a token: Next token is token LEGACY_ACTION ()
Shifting token LEGACY_ACTION ()
Entering state 12
Reducing stack by rule 35 (line 168):
   $1 = token LEGACY_ACTION ()
8836.557893160:main thread    : tried selector action for builtin:omfile: -2001
8836.557908388:main thread    : tried selector action for builtin:ompipe: -2001
8836.557923233:main thread    : tried selector action for builtin-shell: -2001
8836.558022055:main thread    : tried selector action for builtin:omdiscard: -2001
8836.558038075:main thread    : tried selector action for builtin:omfwd: 0
8836.558052488:main thread    : Module builtin:omfwd processes this action.
8836.558136499:main thread    : template: 'RSYSLOG_TraditionalForwardFormat' assigned
8836.558160039:main thread    : action 1 queue: parameter dump:
8836.558174916:main thread    : action 1 queue: queue.filename '[NONE]'
8836.558273542:main thread    : action 1 queue: queue.size: 1000
8836.558288080:main thread    : action 1 queue: queue.dequeuebatchsize: 16
8836.558302414:main thread    : action 1 queue: queue.maxdiskspace: 0
8836.558368788:main thread    : action 1 queue: queue.highwatermark: -1
8836.558384865:main thread    : action 1 queue: queue.lowwatermark: -1
8836.558413762:main thread    : action 1 queue: queue.fulldelaymark: -1
8836.558442666:main thread    : action 1 queue: queue.lightdelaymark: -1
8836.558470770:main thread    : action 1 queue: queue.discardmark: 980
8836.558552633:main thread    : action 1 queue: queue.discardseverity: 8
8836.558594909:main thread    : action 1 queue: queue.checkpointinterval: 0
8836.558608920:main thread    : action 1 queue: queue.syncqueuefiles: 0
8836.558623042:main thread    : action 1 queue: queue.type: 3 [Direct]
8836.558691335:main thread    : action 1 queue: queue.workerthreads: 1
8836.558727077:main thread    : action 1 queue: queue.timeoutshutdown: 0
8836.558741599:main thread    : action 1 queue: queue.timeoutactioncompletion: 1000
8836.558827751:main thread    : action 1 queue: queue.timeoutenqueue: 50
8836.558855694:main thread    : action 1 queue: queue.timeoutworkerthreadshutdown: 60000
8836.558869846:main thread    : action 1 queue: queue.workerthreadminimummessages: -1
8836.558884102:main thread    : action 1 queue: queue.maxfilesize: 1048576
8836.558950182:main thread    : action 1 queue: queue.saveonshutdown: 1
8836.558983020:main thread    : action 1 queue: queue.dequeueslowdown: 0
8836.558997187:main thread    : action 1 queue: queue.dequeuetimebegin: 0
8836.559011113:main thread    : action 1 queue: queuedequeuetimend.: 25
8836.559025491:main thread    : Action 0xb97a40: queue 0xb99120 created
-> $$ = nterm s_act ()
Stack now 0 1 14
Entering state 22
Reducing stack by rule 32 (line 164):
   $1 = nterm s_act ()
-> $$ = nterm actlst ()
Stack now 0 1 14
Entering state 21
Reading a token: 8836.559386173:main thread    : config parser: reached end of file /etc/rsyslog.d/expose-42000.conf
8836.559390418:main thread    : config parser: resume parsing of file /etc/rsyslog.conf at line 51
(...)

有什么我想念的吗?

syslog rsyslog
  • 1 个回答
  • 679 Views
Martin Hope
WoJ
Asked: 2016-11-28 10:10:45 +0800 CST

什么使用 docker 容器端口?

  • 1

在设置我的第一个docker环境时,我创建了一个特定的网络:

root@srv /e/docker# docker network inspect docker
[
    {
        "Name": "docker",
        "Id": "7b20560b36032d36ffe6c0ebece6b4408355d207f4e203a2957b0434ee0afdc1",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "10.200.0.0/24"
                }
            ]
        },
        "Internal": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

我从一个具有特定 IP 的网络的图像创建了一个容器:

root@srv /e/docker# docker create --network docker --ip 10.200.0.2 --hostname dev -p 22:22 --name dev base
807f3892241d314d20837c4c749912097e1f34c62884401acd9a06e201cb5876

然后我启动了这个容器并得到:

root@srv /e/docker# docker start dev
Error response from daemon: driver failed programming external connectivity on endpoint dev (807f3892241d314d20837c4c749912097e1f34c62884401acd9a06e201cb5876): Error starting userland proxy: listen tcp 0.0.0.0:22: bind: address already in use
Error: failed to start containers: dev

实际上,它已经supervisord开始sshd -D默认绑定到该主机的所有可用 IP 地址。由于它的 IP 是10.200.0.2,我希望sshd绑定到它的127.0.0.1和10.200.0.2. 看起来这个端口被什么东西占用了,但是什么?

主机确实有一个sshd运行,但这对于来宾容器来说应该没关系,对吧?(因为它生活在自己的世界中,只知道上面的两个 IP)?

评论后编辑:换句话说,我想sshd绑定到容器的 IP(它看到的那个 = 10.200.0.2),并让这个端口暴露在容器外部,在同一个 IP 上。或者,实际上,我希望能够从主机ssh root@10.200.0.2到达并到达sshd容器。

networking network-share docker
  • 3 个回答
  • 622 Views
Martin Hope
WoJ
Asked: 2016-11-27 11:07:19 +0800 CST

如何在 docker 中使用多个网桥?

  • 0

我正在测试 docker 作为systemd-nspawn. 我想每个容器使用一个单独的网桥。

我看到的所有文档都是关于使用docker0或创建替代桥 - 供所有容器(共享同一个桥)使用。

这对docker有可能吗?

networking bridge docker
  • 1 个回答
  • 69 Views
Martin Hope
WoJ
Asked: 2016-11-20 13:53:55 +0800 CST

尝试访问 OpenVPN 服务器时的 P_CONTROL_HARD_RESET_CLIENT_V2

  • 1

我想从 Ubuntu 主机连接到 OpenVPN 服务器,该主机还用作其他内部连接的防火墙(两个 AP 和几个在该服务器上运行的虚拟机)。

我的连接挂在

Sat Nov 19 22:09:41 2016 UDPv4 link remote: [AF_INET]185.145.38.234:1194
Sat Nov 19 22:10:41 2016 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sat Nov 19 22:10:41 2016 TLS Error: TLS handshake failed
Sat Nov 19 22:10:41 2016 SIGUSR1[soft,tls-error] received, process restarting
Sat Nov 19 22:10:41 2016 Restart pause, 2 second(s)

Atcpdump的连接表明

root@srv ~# tcpdump -i any host 185.145.38.234
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
22:35:38.933443 IP 192.168.0.10.41552 > 185.145.38.234.openvpn: UDP, length 42
22:35:40.116782 IP 192.168.0.10.41552 > 185.145.38.234.openvpn: UDP, length 42
22:35:44.849548 IP 192.168.0.10.41552 > 185.145.38.234.openvpn: UDP, length 42

我可以从同一提示连接到任何服务,允许所有流量。当尝试专门连接到该端口时,我得到

root@srv ~# nc -v -u 185.145.38.234 1194
Connection to 185.145.38.234 1194 port [udp/openvpn] succeeded!

我对tcpOpenVPN 连接有相同的行为(包括成功的nc)。

我能想到这种行为的第一个原因(客户端发送请求但没有得到任何回复)是错误的路由或防火墙。但是来自同一系统的任何其他连接(curl www.google.com例如,相同的提示)都会成功。那个地方没有防火墙(流量完全开放)。

另一个原因可能是上游(ISP)的一些过滤。情况并非如此,因为 LAN 上的客户端(通过上面的机器并最终通过同一接口退出)可以成功连接。

此消息和连接失败的其他原因可能是什么?

openvpn
  • 1 个回答
  • 6627 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