【Error:無法獲取服務器端鏈接資源】 處理方式
使用單點配置。
在宿主機上通過IDEA測試程序時:
報錯:com.github.tobato.fastdfs.exception.FdfsConnectException: 無法獲取服務端連接資源:can't create connection to/192.168.77.130:22122
處理方法:
1. 在虛擬機上判斷本機是否能正常上傳。
[root@localhost ~]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.jpg
正常上傳時,返回內容為文件id:
group1/M00/00/00/wKhNgl7E09iAPSsrAABslsuRKAU663.jpg
2. 考慮宿主機與虛擬機80端口能否正常通信:
參考資料:https://cloud.tencent.com/developer/article/1495437
參考資料中在宿主機測試能否ping通虛擬機80端口:
telnet 192.168.114.128 80
如果提示 “ telnet 不是內部或外部命令,也不是可運行程序 ” 錯誤,需要在window控制面板 -> 程序 -> 啟用或關閉windows功能 -> 勾選“Telnet客戶端”。(參考操作:https://jingyan.baidu.com/article/375c8e19bff04625f3a22961.html)
3. 修改虛擬機防火牆:
僅限於防火牆開啟的狀態進行修改,可以直接跳轉至頁面最后查看關閉防火牆的方法。
由於我使用的系統為 CentOS 7, 修改防火牆的方法與第二步參考資料的方法不同,因此單獨列出。
CentOS 7 通過 firewall 控制防火牆。
啟動 80 端口:
--zone #作用域
--add-port=80/tcp #添加端口,格式為:端口/通訊協議
--permanent #永久生效,沒有此參數重啟后失效
[root@localhost ~]#firewall-cmd --zone=public --add-port=80/tcp --permanent
重啟防火牆:
[root@localhost ~]#firewall-cmd --reload
查詢80端口是否開啟:
(如果打開端口后直接查詢可能會是no, 因此打開端口后一定要先重啟一下防火牆)
[root@localhost ~]# firewall-cmd --query-port=80/tcp
查詢開啟的端口列表:
[root@localhost ~]#firewall-cmd --list-port
總結:
我這里報錯主要就是因為 centOS 7 的防火牆設置有問題。
一定要打開 80, 22122(tracker service), 23000(storage service)這三個端口。
打開以后,運行正常,可以返回文件ID。
也可以直接關閉防火牆:
systemctl stop firewalld
通過以下指令可以查看防火牆的開啟狀態:
Active:inactive(dead) 說明當前防火牆已經是關閉狀態了
systemctl status firewalld