Linux
LVS 無法從外部訪問
我目前正忙於設置LVS - Linux 虛擬伺服器:
root@debian1:~# ipvsadm -L IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP debian1.lan:http wlc -> debian2.lan:http Masq 1 0 1 -> debian3.lan:http Masq 1 0 1
debian1.lan 是我的 VIP。debian2 和 3 正在執行 apache。
我可以用來
curl
獲取內容:root@debian1:~# curl debian1.lan <html><body><h1>debian2</h1> <p>This is the default web page for this server.</p> <p>The web server software is running but no content has been added, yet.</p> </body></html>
但是,當我使用 Windows 電腦訪問 debian1.lan (10.0.0.171) 時
firefox
,我收到“連接已超時”消息。Virtualbox是否有可能弄亂了LVS?(debian 1 到 3 是 Virtualbox 中使用橋接適配器的 VM)。
我從
tcpdump
我的 debian2 開始,我看到了數據包(當我使用 時firefox
)雖然我不確定它的含義:root@debian2:~# tcpdump -s 0 -A tcp port http tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 13:07:05.725727 IP My-PC.lan.54663 > debian2.lan.http: Flags [S], seq 1738645408, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0 E..4.M@....- ... ......Pg......... .\............... 13:07:05.725755 IP debian2.lan.http > My-PC.lan.54663: Flags [S.], seq 184008166, ack 1738645409, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 4], length 0 E..4..@.@.%{ ... ....P.. ...g.....9..p.............. 13:07:06.722025 IP debian2.lan.http > My-PC.lan.54663: Flags [S.], seq 184008166, ack 1738645409, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 4], length 0 E..4..@.@.%{ ... ....P.. ...g.....9..p.............. 13:07:08.722729 IP debian2.lan.http > My-PC.lan.54663: Flags [S.], seq 184008166, ack 1738645409, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 4], length 0 E..4..@.@.%{ ... ....P.. ...g.....9..p.............. 13:07:08.723841 IP My-PC.lan.54663 > debian2.lan.http: Flags [S], seq 1738645408, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0 E..4.a@..... ... ......Pg......... .\............... 13:07:08.723849 IP debian2.lan.http > My-PC.lan.54663: Flags [S.], seq 184008166, ack 1738645409, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 4], length 0 E..4..@.@.%{ ... ....P.. ...g.....9..p.............. 13:07:12.722808 IP debian2.lan.http > My-PC.lan.54663: Flags [S.], seq 184008166, ack 1738645409, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 4], length 0 E..4..@.@.%{ ... ....P.. ...g.....9..p.............. 13:07:14.724158 IP My-PC.lan.54663 > debian2.lan.http: Flags [S], seq 1738645408, win 8192, options [mss 1460,nop,nop,sackOK], length 0 E..0.g@..... ... ......Pg.......p. .p........... 13:07:14.724179 IP debian2.lan.http > My-PC.lan.54663: Flags [S.], seq 184008166, ack 1738645409, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 4], length 0 E..4..@.@.%{ ... ....P.. ...g.....9..p.............. 13:07:20.722805 IP debian2.lan.http > My-PC.lan.54663: Flags [S.], seq 184008166, ack 1738645409, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 4], length 0 E..4..@.@.%{ ... ....P.. ...g.....9..p..............
有人可以給我一個幫助提示我下一步可以做什麼或檢查嗎?
我終於得到了這個工作。解決方案是為 LVS 中的真實伺服器創建一個全新的專用網路,我使用 192.168.1.x(當然主管也需要訪問該網路)。對於 VIP,我使用了我的公共 IP 地址 10.0.0.x 。此外,我必須從我的 LVS 中的真實伺服器中刪除舊網路 (10.0.0.x) 中的任何跟踪。
root@debian1:~# ipvsadm -L --stats IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes -> RemoteAddress:Port TCP debian1.lan:http 45 269 167 27483 27061 -> 192.168.1.2:http 21 118 74 11370 11912 -> 192.168.1.3:http 24 151 93 16113 15149
希望這可以幫助有同樣問題的人。