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 去上傳文件,發現返回如下錯誤,看到這個錯誤我就頓悟了,你頓悟了嗎?

image-20200531205526759

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

image-20200601083923760

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

總結

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM