首先我要说的是,我不是网络专家。话虽如此,我需要一些帮助,因为我已经为这个问题绞尽脑汁两天了。我有几个问题,但只关注一个特定的问题。
我订购了一台 hetzner 根服务器并安装了 Ubuntu 20.04。我订购了辅助 IP,因为我需要它用于我的 docker 设置,我希望两个容器可以直接在这两个 IP 地址上访问?这两个 IP 地址都是 Hetzner 分配的 /32 公共地址。我的主 IP 地址可以从互联网访问,我可以从外部 ping 它。
请求第二个 IP 后,我收到了 Hetzner 发来的一封邮件,告知我订单成功,我可以配置第二个 IP。我在 Hetzner 文档中读到,这应该很简单,只需将第二个 IP 地址添加到addresses
中的部分/etc/netplan/01-netcfg.yaml
即可。此文件现在如下所示:
network:
version: 2
renderer: networkd
ethernets:
enp9s0:
addresses:
- 50.50.50.201/32
- 50.50.50.199/32
routes:
- on-link: true
to: 0.0.0.0/0
via: 50.50.50.193
nameservers:
addresses:
- ...
保存文件后,我立即运行netplan try
,报告成功并点击enter
保存新配置。运行后,ip addr
我得到:
...
2: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether a8:a1:22:1f:22:82 brd ff:ff:ff:ff:ff:ff
inet 50.50.50.201/32 scope global enp9s0
valid_lft forever preferred_lft forever
inet 50.50.50.199/32 scope global enp9s0
valid_lft forever preferred_lft forever
...
现在我可以从服务器成功 ping 第二个 IP (.199),但不能从 www ping 通。有人知道为什么会这样吗?我想确保我的第二个 IP 也可以从网络访问。我在这个配置中缺少什么?提前谢谢!
编辑: 我正在运行 docker,但此时,我在此处所述的所有内容都在主机中。因此 Docker 尚未参与...
ip -br link
给我:
$ ip -br link
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
enp9s0 UP a8:a1:22:1f:22:82 <BROADCAST,MULTICAST,UP,LOWER_UP>
docker0 DOWN 02:42:f8:c5:ee:a9 <NO-CARRIER,BROADCAST,MULTICAST,UP>
br-ef57c188e0de DOWN 02:42:dc:79:c6:f6 <NO-CARRIER,BROADCAST,MULTICAST,UP>
和...
$ ip -4 -br address
lo UNKNOWN 127.0.0.1/8
enp9s0 UP 50.50.50.201/32 50.50.50.199/32
docker0 DOWN 172.17.0.1/16
br-ef57c188e0de DOWN 172.18.0.1/16
和...
$ ip route
default via 50.50.50.193 dev enp9s0 proto static onlink
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-ef57c188e0de proto kernel scope link src 172.18.0.1 linkdown
和...
$ ip rule
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
和...
$ ip neigh
172.18.0.2 dev br-ef57c188e0de FAILED
50.50.50.193 dev enp9s0 lladdr a8:a1:22:1f:22:82 REACHABLE
fe80::1 dev enp9s0 lladdr a8:a1:22:1f:22:82 router STALE
最后……
$ iptables-save -c
# Generated by iptables-save v1.8.4 on Sat May 14 17:40:11 2022
*filter
:INPUT ACCEPT [1021:88276]
:FORWARD DROP [233:12218]
:OUTPUT ACCEPT [920:161517]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
[12631:643908] -A FORWARD -j DOCKER-USER
[12631:643908] -A FORWARD -j DOCKER-ISOLATION-STAGE-1
[105:5500] -A FORWARD -o br-ef57c188e0de -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-ef57c188e0de -j DOCKER
[6:324] -A FORWARD -i br-ef57c188e0de ! -o br-ef57c188e0de -j ACCEPT
[0:0] -A FORWARD -i br-ef57c188e0de -o br-ef57c188e0de -j ACCEPT
[521962:778892991] -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o docker0 -j DOCKER
[132612:7158451] -A FORWARD -i docker0 ! -o docker0 -j ACCEPT
[0:0] -A FORWARD -i docker0 -o docker0 -j ACCEPT
[6:324] -A DOCKER-ISOLATION-STAGE-1 -i br-ef57c188e0de ! -o br-ef57c188e0de -j DOCKER-ISOLATION-STAGE-2
[132612:7158451] -A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
[686521:790836880] -A DOCKER-ISOLATION-STAGE-1 -j RETURN
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-ef57c188e0de -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
[132618:7158775] -A DOCKER-ISOLATION-STAGE-2 -j RETURN
[709846:791932195] -A DOCKER-USER -j RETURN
COMMIT
# Completed on Sat May 14 17:40:11 2022
# Generated by iptables-save v1.8.4 on Sat May 14 17:40:11 2022
*nat
:PREROUTING ACCEPT [585:28528]
:INPUT ACCEPT [357:16571]
:OUTPUT ACCEPT [12:720]
:POSTROUTING ACCEPT [12:720]
:DOCKER - [0:0]
[25260:1227195] -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
[3:252] -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
[3:180] -A POSTROUTING -s 172.18.0.0/16 ! -o br-ef57c188e0de -j MASQUERADE
[64:3912] -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
[0:0] -A DOCKER -i br-ef57c188e0de -j RETURN
[0:0] -A DOCKER -i docker0 -j RETURN
COMMIT
# Completed on Sat May 14 17:40:11 2022
此外,我还没有在 Hetzner 端设置任何防火墙规则。感谢您的时间!
答案1
感谢大家的帮助,特别是AB
ping 仍然不起作用。我阅读了所有 Hetzner 文档,但找不到任何线索,直到我偶然发现了这篇文章Hetzner 附加 IP。我之前已经激活了我请求的附加 IP 的 MAC 地址,因为我认为有必要在 docker 中创建一个 macvlan。我禁用虚拟 MAC 地址在 Hetzner 服务器门户中,现在我可以从其他 IP ping 出并发送到其他 IP。我尚未弄清楚的事情在另一篇文章中描述:为docker容器分配32个ip地址。任何帮助都欢迎。干杯!