我使用 2 根 FC 电缆(绑定)将我的 Ubuntu 22.04 服务器直接连接到路由器。服务器和路由器将通过子网 10.27.28.5/30 连接在一起。我在容器中安装我的应用程序。我将此容器映射到在环回接口中设置的 1 个公共 IP。
现在我可以从互联网 ping 到环回接口中的公共 IP,但我无法从服务器 ping 到 8.8.8.8。我仍然可以通过源是公共 IP 来跟踪路由到 8.8.8.8,尽管我无法在没有源的情况下进行跟踪路由。
ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84)字节数据。
^C
--- 8.8.8.8 ping 统计 ---
发送了 5 个数据包,接收了 0 个数据包,100% 数据包丢失,耗时 4087 毫秒
跟踪路由 8.8.8.8
跟踪路由至 8.8.8.8 (8.8.8.8),最多 30 跳,60 字节数据包
1 _网关 (10.27.28.5) 1.602毫秒 1.592毫秒 1.609毫秒
2 * * *
3 * * *
跟踪路由 8.8.8.8 -s
跟踪路由至 8.8.8.8 (8.8.8.8),最多 30 跳,60 字节数据包
1 _网关 (10.27.28.5) 1.600 毫秒 1.790 毫秒 1.943 毫秒
2 10.52.226.145 (10.52.226.145) 1.425毫秒 10.52.226.149 (10.52.226.149) 1.570毫秒 1.566毫秒
...
13 * * *
14 8.8.8.8 (8.8.8.8) 45.061 毫秒 45.418 毫秒 45.377 毫秒
我通过 netplan 配置 IP 和路由
'# 让 NetworkManager 管理此系统上的所有设备
网络:
版本:2
渲染器:NetworkManager
以太网:
eno8403:
dhcp4: false
dhcp6: false
dhcp4-overrides:
use-routes: false
eno8303:
addresses: [10.52.17.251/29]
routes:
- to: 10.24.4.0/24
via: 10.52.17.249
- to: 10.24.5.0/24
via: 10.52.17.249
- to: 10.27.10.0/24
via: 10.52.17.249
- to: 10.27.11.0/24
via: 10.52.17.249
dhcp6: false
dhcp4: false
dhcp4-overrides:
use-routes: false
enp1s0f0np0:
dhcp4: false
enp1s0f1np1:
dhcp4: false
loop1:
renderer: networkd
dhcp4: false
dhcp6: false
addresses:
- *.*.*.*/32
dhcp4-overrides:
use-routes: false
债券:
bond0:
interfaces: [enp1s0f0np0,enp1s0f1np1]
mtu: 9000
parameters:
mode: balance-rr
mii-monitor-interval: 100
addresses:
- 10.27.28.6/30
routes:
- to: default
via: 10.27.28.5
IP 路由表
默认通过 10.27.28.5 dev bond0 proto 静态度量 20300
10.24.4.0/24 通过 10.52.17.249 dev eno8303 原始静态度量 100
10.24.5.0/24 通过 10.52.17.249 dev eno8303 原始静态度量 100
10.27.10.0/24 通过 10.52.17.249 dev eno8303 原始静态度量 100
10.27.11.0/24 通过 10.52.17.249 dev eno8303 原始静态度量 100
10.27.28.4/30 dev bond0 proto 内核范围链接 src 10.27.28.6 度量 300
10.52.17.248/29 dev eno8303 proto 内核范围链接 src 10.52.17.251 度量 100
169.254.0.0/16 dev docker0 范围链接指标 1000
172.17.0.0/16 dev docker0 proto 内核范围链接 src 172.17.0.1
那么我该如何设置默认使用公共 IP 上网。我检查应用程序可以上网,但服务器本身不能,所以我可以更新它的数据包。