我使用 2 條 FC 電纜(綁定)直接將 Ubuntu 22.04 伺服器連接到路由器。伺服器和路由器將與子網路 10.27.28.5/30 連接在一起。我在容器中安裝我的應用程式。我使用在環回介面中設定的 1 個公用 IP 來對應此容器。
現在我可以從網際網路 ping 到環回介面中的公用 IP,但無法從伺服器 ping 到 8.8.8.8。我仍然可以追蹤路由到 8.8.8.8,來源是公共 IP,儘管我無法在沒有來源的情況下追蹤路由。
平 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) 位元組資料。
^C
--- 8.8.8.8 ping 統計 ---
發送 5 個資料包,接收 0 個資料包,100% 丟包,時間 4087ms
路由追蹤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
渲染器:網路管理器
乙太網路:
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 原始靜態指標 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 原型核心範圍連結 src 10.27.28.6 公制 300
10.52.17.248/29 dev eno8303 原型內核範圍連結 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上網呢?我檢查應用程式可以訪問互聯網,但伺服器本身不能,所以我可以為其更新資料包。