docker - 从 Ubuntu 主机访问在来宾 KVM 上运行的 docker 容器应用程序
问题描述
我的设置是:
- 在无头设备(主机)上运行的 Ubuntu 服务器 16.04
- Windows server 2016 KVM (guest) 在主机之上运行。
- 主机和来宾之间的网络类型是 NAT。整个事情都落后于公司。代理人。
- 主机正在从公司网关获取静态 IP。
在 KVM 上,我正在运行 docker 容器应用程序,该应用程序正在从内部和外部侦听端口 15417 (docker ps: 0.0.0.0:15417 -> 15417/tcp) 容器 IP 地址为 192.168.122.35,而 KVM IP 地址来自NAT 为:192.168.122.82
在 docker 容器上运行的应用程序公开了一个 API,应该从 kvm_ip:15417/api 上的 linux 主机访问该 API
事实:
- 在 Windows FW 上打开端口 15417 用于入站 TCP 连接。
- 有一个从主机到 kvm IP (192.168.122.82) 的有效 ping
- app api可以访问192.168.122.35:15417/api
- docker logs,显示日志,以便应用程序启动并运行。
问题:
- 无法从 localhost:15417/api 或 127.0.0.1:15417/api 上的 KVM 访问 API,我得到的响应
curl localhost:15417/api
是:
目标主机不可达
- 无法从主机上的 192.168.122.82:15417/api (KVM_IP) 访问 API,与
curl 192.168.122.82:15417/api
kvm powershell 上的响应相同。 - 没有从主机 telnet 到 192.168.122.82 15417 或从来宾 telnet 127.0.0.1 15417,而 telnet 到 RDP (3389) 或 vnc (5900) 等其他端口工作正常,这意味着端口都是打开的。
这是我的主机“ifconfig”:
br0 Link encap:Ethernet HWaddr 00:90:0b:67:e3:4c
inet addr:172.28.69.86 Bcast:172.28.69.87 Mask:255.255.255.248
inet6 addr: fe80::290:bff:fe67:e34c/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:597 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:89816 (89.8 KB) TX bytes:648 (648.0 B)
br-ef89294aca4b Link encap:Ethernet HWaddr 02:42:3d:dc:07:b1
inet addr:172.20.0.1 Bcast:172.20.255.255 Mask:255.255.0.0
inet6 addr: fe80::42:3dff:fedc:7b1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:80271 errors:0 dropped:0 overruns:0 frame:0
TX packets:51030 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:98712118 (98.7 MB) TX bytes:4318906 (4.3 MB)
docker0 Link encap:Ethernet HWaddr 02:42:ea:f9:4a:a6
inet addr:172.17.0.1 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
enp2s0 Link encap:Ethernet HWaddr 00:90:0b:67:e3:4b
inet addr:172.28.69.84 Bcast:172.28.69.255
掩码:255.255.255.248 inet6 地址:fe80::290:bff:fe67:e34b/64 范围:链接 UP BROADCAST RUNNING MULTICAST MTU:1500 指标:1 RX 数据包:43437560 错误:0 丢弃:0 超限:0 帧:0 TX数据包:28285024 错误:0 丢弃:0 超限:0 运营商:0 冲突:0 txqueuelen:1000 RX 字节:50031414909(50.0 GB) TX 字节:5610346118(5.6 GB) 内存:df800000-df8fffff
enp3s0 Link encap:Ethernet HWaddr 00:90:0b:67:e3:4c
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Memory:dfe00000-dfe7ffff
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2528921 errors:0 dropped:0 overruns:0 frame:0
TX packets:2528921 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:3180228446 (3.1 GB) TX bytes:3180228446 (3.1 GB)
veth38444b2 Link encap:Ethernet HWaddr b2:43:0f:a2:0e:34
inet6 addr: fe80::b043:fff:fea2:e34/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1728 (1.7 KB) TX bytes:816 (816.0 B)
veth55c3534 Link encap:Ethernet HWaddr 52:e3:a5:c0:54:84
inet6 addr: fe80::50e3:a5ff:fec0:5484/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4329603 errors:0 dropped:0 overruns:0 frame:0
TX packets:4447953 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1018418030 (1.0 GB) TX bytes:1107337021 (1.1 GB)
vetha9c713b Link encap:Ethernet HWaddr 02:96:67:47:1c:72
inet6 addr: fe80::96:67ff:fe47:1c72/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:175785 errors:0 dropped:0 overruns:0 frame:0
TX packets:124544 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:45484242 (45.4 MB) TX bytes:22613601 (22.6 MB)
vethcfde2a8 Link encap:Ethernet HWaddr ca:ab:04:da:b6:98
inet6 addr: fe80::c8ab:4ff:feda:b698/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:990878 errors:0 dropped:0 overruns:0 frame:0
TX packets:1367424 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:212266708 (212.2 MB) TX bytes:287696403 (287.6 MB)
vethd045150 Link encap:Ethernet HWaddr 42:b0:0f:df:b3:ec
inet6 addr: fe80::40b0:fff:fedf:b3ec/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:431061 errors:0 dropped:0 overruns:0 frame:0
TX packets:423829 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:102897883 (102.8 MB) TX bytes:91172674 (91.1 MB)
vethe3e3d6f Link encap:Ethernet HWaddr 76:21:a7:44:81:7d
inet6 addr: fe80::7421:a7ff:fe44:817d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1598 errors:0 dropped:0 overruns:0 frame:0
TX packets:1924 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:597484 (597.4 KB) TX bytes:350579 (350.5 KB)
vethf34ccaa Link encap:Ethernet HWaddr 76:a9:29:e3:b5:2c
inet6 addr: fe80::74a9:29ff:fee3:b52c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2674 errors:0 dropped:0 overruns:0 frame:0
TX packets:3783 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4805257 (4.8 MB) TX bytes:689076 (689.0 KB)
virbr0 Link encap:Ethernet HWaddr 52:54:00:17:94:ca
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:23845306 errors:0 dropped:0 overruns:0 frame:0
TX packets:31454109 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1454280991 (1.4 GB) TX bytes:48875445867 (48.8 GB)
vnet0 Link encap:Ethernet HWaddr fe:54:00:fc:b7:f1
inet6 addr: fe80::fc54:ff:fefc:b7f1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4512098 errors:0 dropped:0 overruns:0 frame:0
TX packets:4084521 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:580069804 (580.0 MB) TX bytes:2979706156 (2.9 GB)
还有我的 KVM (guest) 网络默认配置:
<network>
<name>default</name>
<uuid>9f80b5ad-b4fa-4c7e-a559-d27c23328347</uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:17:94:ca'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
最后KVM网络接口配置为:
<interface type='network'>
<mac address='52:54:00:fc:b7:f1'/>
<source network='default' bridge='virbr0'/>
<target dev='vnet0'/>
<model type='rtl8139'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
我在试图找出中断的过程中苦苦挣扎,我无法从主机访问 KVM 上的应用程序。
解决方案
推荐阅读
- autohotkey - 自动热键 3 键组合
- python - 我需要将字典转换为数据框,但它给了我一个错误
- javascript - 在标签内添加按钮
- python-3.x - Raspberry Pi:SenseHat 无法从 Web 应用程序初始化传感器
- c++ - 生产者-消费者模型
- javascript - React Props 不会将信息传递到确认页面
- java - Spring Boot 从 mysql 创建重复记录
- python - 这个输出的原因是什么
- python - 使用正则表达式从文本中访问多行并在 python 中迭代
- javascript - 无法从 axios 中的错误响应中访问错误字段(与 devtools 不同)