Elasticsearch(以下簡稱ES)是一種基於Lucene的高度可擴展的分散式全文搜索引擎,除了全文搜索,還提供了包括數據聚合和分析等在內的多種強大的數據處理能力。ES在默認情況下使用9200埠進行HTTP協議的訪問,本文將從多個方面對ES默認埠進行詳細的闡述。
一、ES默認埠的作用
ES默認埠是ES集群與外部應用程序進行通信的時候使用的埠,它扮演著促進交流的角色。通常而言,你可以使用默認埠以HTTP和JSON形式請求ES。比如,當你需要創建一個新的索引,你可以使用CURL命令來創建:
curl -X PUT "localhost:9200/my_index"
可以看到,上述命令就是使用ES默認的9200埠進行請求的。在你對ES配置或者調試的時候,你經常可以看到這個埠的存在。
二、開放ES默認埠的風險
ES默認埠為9200,然而你卻不應該將其直接暴露在公網中。如果你的ES暴露在公網上,並且沒有採取相應的安全措施進行保護,那麼黑客可以藉助各種攻擊技術來對其進行攻擊。
黑客可以通過訪問ES默認埠來執行惡意操作,比如添加新的數據、刪除數據,甚至執行任何他們想要的任何操作,這些都是非常危險的操作,並有可能導致嚴重後果。而且,黑客還可以通過暴力猜解密碼、注入代碼等方式來獲取ES的控制權,從而掌控整個ES系統。
為了避免這種情況的發生,最好的方法就是將ES默認埠綁定到本地IP地址。這樣可以限制訪問ES的用戶僅限於你的本地計算機。
三、如何修改ES默認埠
在某些情況下,你可能想要修改ES默認埠。比如,如果你需要將多個版本的ES部署在同一台計算機上,或者需要將ES與其他應用程序分開,以便你更好地管理和保護它們。下面我們將介紹如何修改ES默認埠:
1、在ES安裝目錄下,打開config/elasticsearch.yml文件:
nano /etc/elasticsearch/elasticsearch.yml
2、找到http.port 並修改為你想要的埠號
# 埠號修改為9205 http.port: 9205
3、保存並關閉elasticsearch.yml文件,並重啟ES服務
# 重啟elasticsearch服務 systemctl restart elasticsearch
以上就是修改ES默認埠的詳細過程。當然,你也可以使用其他埠,比如80、8080、3333等等,只需在http.port配置中修改即可。
四、ES默認埠雖然重要,並不是唯一的方式進行通信
默認埠雖然是ES集群與外部通信的最常用方式,但並不是唯一的方式。ES允許你使用多種不同的協議和埠來與它進行通信,例如:
- 附加TCP埠:默認情況下,ES只監聽HTTP埠(9200),但是你可以通過添加新的tcp設置來使用不同的埠。
- 節點間通訊:ES節點之間通過9300埠進行通信,使用的是自己的專有協議,稱為Transport協議。
- REST(Representational State Transfer)ful API:您可以使用ES的RESTful API,該API支持多種協議和格式的數據交換,例如JSON、XML、YAML和Cbor。
- Java API:Elasticsearch可以通過Java API進行編程訪問,該API集成了連接、序列化和反序列化等一些基本功能。
以上就是ES默認埠及其它方式通信的詳細闡述,ES具有很多強大的功能,對於熟練掌握ES的用戶來說,可以將ES的功能最大化地發揮出來,提升工作效率與搜索體驗。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/283509.html