最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker Redis本地能Ping通但6379端口連不上的排查與解決方法

 更新時間:2026年05月22日 08:45:53   作者:weixin_45363959  
在 Linux 服務(wù)器上部署 Redis Docker 容器,本地連接正常,但遠程主機 telnet 端口不通,經(jīng)過層層排查,最終發(fā)現(xiàn)是 Linux 內(nèi)核參數(shù) net.ipv4.ip_forward 被關(guān)閉導(dǎo)致的,本文記錄了完整的排查思路與解決方案,需要的朋友可以參考下

問題現(xiàn)象

環(huán)境信息:

  • 宿主機 IP192.168.105.222 (CentOS)
  • Redis 版本redis:7.4.6 (Docker)
  • 端口映射0.0.0.0:6379->6379/tcp

故障表現(xiàn):
在宿主機本地使用 redis-cli 連接一切正常,但在遠程 Windows 機器上測試:

  1. Ping 正常(網(wǎng)絡(luò)層通暢)
  2. Telnet 失敗(TCP 連接拒絕/超時)
PS C:\Users\User> ping 192.168.105.222
來自 192.168.105.222 的回復(fù):字節(jié)=32 時間=1ms TTL=64
PS C:\Users\User> telnet 192.168.105.222 6379
正在連接192.168.105.222...無法打開到主機的連接。 在端口 6379: 連接失敗

排查過程

第一步:檢查 Redis 配置(排除法)

最常見的原因是 Redis 開啟了保護模式或設(shè)置了密碼。

$ docker exec redis redis-cli CONFIG GET protected-mode
1) "protected-mode"
2) "no"  ? 已關(guān)閉
$ docker exec redis redis-cli CONFIG GET requirepass
1) "requirepass"
2) ""    ? 無密碼

結(jié)論:Redis 配置沒有問題。

第二步:檢查 Docker 端口映射

確認 Docker 是否真的在監(jiān)聽外部端口。

$ docker ps --format "table {{.Names}}\t{{.Ports}}"
NAMES    PORTS
redis    0.0.0.0:6379->6379/tcp, :::6379->6379/tcp

$ ss -tlnp | grep 6379
LISTEN 0 1024 *:6379 *:* users:(("docker-proxy",pid=44615,fd=4))

結(jié)論:端口映射正常,docker-proxy 正在監(jiān)聽 0.0.0.0

第三步:檢查防火墻與 iptables

$ systemctl status firewalld
Active: inactive (dead)  ? 防火墻已關(guān)閉

$ iptables -L -n | grep 6379
ACCEPT tcp -- 0.0.0.0/0 172.17.0.3 tcp dpt:6379 ? 規(guī)則存在

結(jié)論:防火墻未攔截,NAT 規(guī)則已生成。

第四步:檢查 IP Forwarding(鎖定元兇)

Docker 容器網(wǎng)絡(luò)依賴宿主機的 IP 轉(zhuǎn)發(fā) 功能。如果該功能被禁用,宿主機將無法將數(shù)據(jù)包從物理網(wǎng)卡轉(zhuǎn)發(fā)到 Docker 網(wǎng)橋。

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0  ? 發(fā)現(xiàn)異常!

分析
雖然 iptables 允許了流量,但 Linux 內(nèi)核層面的 IP 轉(zhuǎn)發(fā)開關(guān)是關(guān)閉的 (0)。這意味著當外部請求到達宿主機網(wǎng)卡后,內(nèi)核拒絕將其轉(zhuǎn)發(fā)給 Docker 容器,導(dǎo)致連接在 TCP 層直接被丟棄。

解決方案

方法一:臨時修復(fù)(立即生效,重啟失效)

sudo sysctl -w net.ipv4.ip_forward=1

方法二:永久修復(fù)(推薦,寫入配置)

編輯 /etc/sysctl.conf,添加或修改以下參數(shù):

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sudo sysctl -p

驗證結(jié)果

再次執(zhí)行檢查,確認參數(shù)已變?yōu)?1:

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

此時遠程機器再次嘗試連接:

PS C:\Users\User> telnet 192.168.105.222 6379
Connected to 192.168.105.222.  (連接成功!)

原理分析:為什么需要 ip_forward?

Docker 默認使用 bridge 網(wǎng)絡(luò)模式,這是一種 NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)模式:

[遠程客戶端] -> (宿主機 IP:6379) -> [docker-proxy] -> (iptables NAT) -> [容器 IP:6379]
  1. 接收包:數(shù)據(jù)包到達宿主機的物理網(wǎng)卡(eth0)。
  2. 路由判斷:內(nèi)核發(fā)現(xiàn)目標 IP 是容器 IP(172.17.0.x),需要將包發(fā)送到 docker0 網(wǎng)橋。
  3. 轉(zhuǎn)發(fā)檢查:因為是從一個接口進,另一個接口出,這屬于**轉(zhuǎn)發(fā)(Forwarding)**行為。
    • 如果 net.ipv4.ip_forward = 0:內(nèi)核直接丟棄包 ?
    • 如果 net.ipv4.ip_forward = 1:內(nèi)核允許包通過,交由 iptables 處理 ?

總結(jié)

遇到 “本地能通,遠程不通” 的 Docker 端口問題時,除了檢查防火墻和端口映射,千萬別忽略內(nèi)核參數(shù) net.ipv4.ip_forward

特別是有些系統(tǒng)安全加固腳本或最小化安裝的系統(tǒng),默認會關(guān)閉此參數(shù),導(dǎo)致 Docker 網(wǎng)絡(luò)功能受損。

到此這篇關(guān)于Docker Redis本地能Ping通但6379端口連不上的排查與解決方法的文章就介紹到這了,更多相關(guān)Docker Redis本地能Ping但6379端口連不上內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker-compose管理容器network與ip問題

    docker-compose管理容器network與ip問題

    這篇文章主要介紹了docker-compose管理容器network與ip問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Docker占用的巨大磁盤空間的清理方法

    Docker占用的巨大磁盤空間的清理方法

    我相信很多人在使用 Docker 一段時間后,都會遇到一個常見問題:磁盤空間被迅速吃光,尤其是在進行頻繁的鏡像構(gòu)建、測試和運行容器時,這種情況并不少見,本文會介紹 Docker 為什么會占用這么多空間,以及如何一步步地清理,需要的朋友可以參考下
    2025-09-09
  • docker如何開啟2375端口提供外部訪問docker

    docker如何開啟2375端口提供外部訪問docker

    這篇文章主要介紹了docker如何開啟2375端口提供外部訪問docker問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • docker+mongodb設(shè)置數(shù)據(jù)庫的賬號和密碼的實現(xiàn)步驟

    docker+mongodb設(shè)置數(shù)據(jù)庫的賬號和密碼的實現(xiàn)步驟

    本文主要介紹了docker+mongodb設(shè)置數(shù)據(jù)庫的賬號和密碼的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • docker imageid 和 digest區(qū)別解析

    docker imageid 和 digest區(qū)別解析

    在Docker中,image ID和digest是兩個不同的標識符,用于唯一標識和引用Docker鏡像的不同方面,這篇文章主要介紹了docker imageid 和 digest區(qū)別,需要的朋友可以參考下
    2023-06-06
  • docker-compose如何實現(xiàn)滾動更新

    docker-compose如何實現(xiàn)滾動更新

    這篇文章主要介紹了docker-compose如何實現(xiàn)滾動更新方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • docker unpause詳解(Docker容器管理)

    docker unpause詳解(Docker容器管理)

    本文概述Docker容器暫?;謴?fù)機制,重點解析dockerunpause命令功能、與重啟的對比、應(yīng)用場景及底層實現(xiàn),強調(diào)其在資源高效利用與服務(wù)連續(xù)性中的關(guān)鍵作用,對docker unpause相關(guān)知識感興趣的朋友一起看看吧
    2025-06-06
  • redhat7.7安裝docker全過程

    redhat7.7安裝docker全過程

    文章詳細介紹了如何從二進制文件安裝Docker,并涵蓋了安裝過程中的關(guān)鍵步驟,包括準備工作、卸載舊版本、設(shè)置鏡像倉庫、啟動Docker、設(shè)置開機自啟動以及配置鏡像加速等
    2026-01-01
  • docker?部署?gitlab-ce?16.9.1的詳細過程

    docker?部署?gitlab-ce?16.9.1的詳細過程

    Docker是一個開源的應(yīng)用容器引擎,它允許開發(fā)者將應(yīng)用及其依賴打包到一個可移植的容器中,然后發(fā)布到任何支持Docker的Linux或Windows操作系統(tǒng)上,這篇文章主要介紹了docker?部署gitlab-ce?16.9.1的詳細過程,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2024-04-04
  • Docker中Compose與Kubernetes的區(qū)別詳解

    Docker中Compose與Kubernetes的區(qū)別詳解

    這篇文章主要給大家介紹了關(guān)于Docker中Compose與Kubernetes區(qū)別的相關(guān)資料,Docker Compose和Kubernetes(簡稱k8s)都是容器編排工具,需要的朋友可以參考下
    2023-08-08

最新評論

上高县| 邵阳市| 永宁县| 深州市| 临高县| 长沙县| 晋江市| 潼南县| 长海县| 溆浦县| 海兴县| 丹巴县| 乌兰县| 平泉县| 辽阳县| 徐闻县| 新晃| 旺苍县| 文登市| 敦煌市| 石家庄市| 旬邑县| 汨罗市| 文山县| 临潭县| 江阴市| 东阳市| 西峡县| 遂平县| 灵山县| 台江县| 防城港市| 白城市| 通州市| 南靖县| 榆树市| 冀州市| 陆丰市| 宣城市| 满城县| 江安县|