1. 程式人生 > 實用技巧 >fastdfs 外網對映問題記錄

fastdfs 外網對映問題記錄

fastdfs 服務對映到公網使用問題記錄

作者:張首富
時間:2020-06-01
w x:y18163201

起因

前一陣子在 B 站上分享了自己如何搭建 fastdfs,在生產中碰到時間的坑,有位小夥伴就加了微信問了我一個問題,大概的意思就是我按照你視屏的方法搭建了一個 fastdfs,在內網上傳和下載都是正常的,我在跳板機(不知道是什麼,就認為是個路由器吧)上把 22122 和 8888 埠都映射出來了,能正常訪問裡面上傳的資源,但是沒辦法上傳,java 程式碼報錯連線錯誤。

排查流程如下

以下流程都是因為本人基礎概念不紮實照成的,到最後發現應該是立馬就能反應出來的錯誤。具體排查過程如下:

1,讓他在java 程式碼的這臺機器上 telnet 跳板機 IP+埠,看看埠是否能正常訪問,(結果正常,埠一切都可以訪問)

2,然後為了排除不是他 java 程式碼的問題,我讓他在 java 程式碼執行的那臺機器上執行一個 fastdfs 的 tracker,主要是用容器裡面發 fdfs_upload_file 命令去測試下到底是哪個地方有問題。

更改/etc/fdfs/client.conf 裡面的tracker_server 的地址,然後用 fdfs_upload_file 去上傳檔案,發現返回如下錯誤,看到這個錯誤我就頓悟了,你頓悟了嗎?

返回的這個地址是內網的 23000 埠,腦子裡面想到 client 上傳內容的流程圖,原來問題出在這;

我們能正常的請求 tracker 的 22122 埠 ,就能獲取到 storage 的 IP 地址和埠,問題就出在這裡,這個地方返回的是內網的地址,我們在外網肯定沒有辦法正常請求,於是查閱資料好像沒有辦法獲取 storage 的外網地址,既然服務端不行,那我們就只能從客戶端下手了,讓他在 java 程式碼裡面做個替換,然後他測試下可以正常上傳下載。

總結

這個問題花費了這麼長時間排查,還是因為自己沒有把 fastdfs 的上傳下載流程深深地記在腦子,這次記錄清晰啊。