docker容器限定ip訪問

docker容器限定ip訪問

  • 一、測試所需環境:
  • 二、使用docker的 iptables 策略
  • 三、Docker使用iptables 與系統Firewalld之間的關系
  • 四、沖突解決方案


一、測試所需環境:

主機1:
ip:192.168.3.117
環境配置:docker、httpd(docker容器)
主機2:
ip:192.168.3.122


二、使用docker的 iptables 策略

默認情況下,允許所有外部源IP連接到Docker主機。要僅允許特定的IP(192.168.3.122)訪問容器,需要在DOCKER-USER過濾器鏈中插入相應規則。具體命令如下:

  1. 查看DOCKER-USER的鏈中的規則信息
#顯示DOCKER-USER的鏈中的規則信息
iptables -nL DOCKER-USER
  1. 主機1httpd容器的默認訪問端口為80,首先要禁止所有IP訪問docker的80端口
# 在主機192.168.3.117執行如下命令:(ens192 為本機網卡,以實際為準)
#禁止所有IP訪問docker的80端口
iptables -I DOCKER-USER -i ens192 -p tcp --dport 80 -j DROP
  1. 限定主機2訪問主機1的httpd容器,刪除DOCKER-USER的鏈中的默認規則(默認規則允許任意ip訪問)
#只允許192.168.3.122訪問docker的80端口
iptables -I DOCKER-USER -i ens192 -s 192.168.3.122 -p tcp --dport 80 -j ACCEPT
#刪除DOCKER-USER的鏈中的默認規則
iptables -D DOCKER-USER -j RETURN
  1. 保存新的DOCKER-USER策略,并設置iptables開機自啟
#保存DOCKER-USER策略
service iptables save
#設置iptables開機自啟,使策略永久生效
systemctl enable iptables.service
#或者
/etc/rc.d/init.d/iptables save

注: 通過iptables 命令設置的規則,默認是臨時性的。若需要規則永久生效,則要將命令寫入iptables配置文件之中。
使用此策略時,Firewall會被關閉

三、Docker使用iptables 與系統Firewalld之間的關系

Docker使用iptables來管理網絡流量和端口轉發。而Firewalld是CentOS/RHEL 7中默認的防火墻管理工具,它也使用iptables來實現規則。
當Firewalld激活時,它會自動配置iptables規則,并將iptables的管理權限交給自己。這就導致了Firewalld會屏蔽Docker容器的網絡訪問。這樣會導致,在系統Firewalld限定ip訪問后,容器的網絡仍舊是任意ip均可訪問。


四、沖突解決方案

禁用 docker 的 iptables 規則,使用系統的Firewalld

#在daemon.json文件加入以下命令,若沒有該文件,需要創建一個
vi /etc/docker/daemon.json
{
"iptables":false
}

開啟網絡地址轉換(NAT)

firewall-cmd --add-masquerade --permanent
#重新加載防火墻設置,使剛才添加的規則生效
firewall-cmd --reload

僅允許主機2訪問主機1的80端口

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.3.122" port protocol="tcp" port="80" accept'
#重新加載防火墻設置,使剛才添加的規則生效
firewall-cmd --reload
#查看防火墻設置
firewall-cmd --list-all

重啟docker

systemctl restart docker

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35847.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35847.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35847.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

你真的了解ORM嗎?通過一個簡單的例子來學習ORM

什么是ORM ORM(Object-Relational Mapping)是一種將面向對象程序數據模型與關系數據庫之間進行映射的技術。 比如數據庫表user,它有id、name、age字段映射到Java實體類就是User類,有id、name、age屬性。 CREATE TABLE user (id…

2023國賽 高教社杯數學建模ABCDE題思路匯總分析

文章目錄 0 賽題思路1 競賽信息2 競賽時間3 建模常見問題類型3.1 分類問題3.2 優化問題3.3 預測問題3.4 評價問題 4 建模資料 0 賽題思路 (賽題出來以后第一時間在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 競賽信息 全國大學生數學建模…

echarts加釣魚島赤尾嶼(vue)(親測有效)

1.首先引入json文件,node_modules/echarts中就有 import chinaData from "../../node_modules/echarts/map/json/china.json" 2.初始化地圖,在初始化地圖的時候加入釣魚島和赤尾嶼的數據,在chinaData下的features中加入即可&#x…

Design-Pattern設計模式

Design-Pattern設計模式 圖說設計模式 圖說設計模式 在線書籍 軟件模式是將模式的一般概念應用于軟件開發領域,即軟件開發的 總體指導思路或參照樣板。軟件模式并非僅限于設計模式,還包括 架構模式、分析模式和過程模式等,實際上&#xff…

FFmpeg常見命令行(四):FFmpeg流媒體

前言 在Android音視頻開發中,網上知識點過于零碎,自學起來難度非常大,不過音視頻大牛Jhuster提出了《Android 音視頻從入門到提高 - 任務列表》,結合我自己的工作學習經歷,我準備寫一個音視頻系列blog。本文是音視頻系…

leetcode做題筆記77組合

給定兩個整數 n 和 k,返回范圍 [1, n] 中所有可能的 k 個數的組合。 你可以按 任何順序 返回答案。 思路一:直接求出組合數將每個組合放進數組中 int** combine(int n, int k, int* returnSize, int** returnColumnSizes) {int size 0, num 1, i;in…

Rust中的智能指針:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak<T>

Rust中的智能指針是什么 智能指針(smart pointers)是一類數據結構,是擁有數據所有權和額外功能的指針。是指針的進一步發展 指針(pointer)是一個包含內存地址的變量的通用概念。這個地址引用,或 ” 指向”…

UML 類圖的畫法

1.類圖的畫法 類 整體是個矩形,第一層類名,第二層屬性,第三層方法。 :public- : private# : protected空格: 默認的default 對應的類寫法。 public class Student {public String name;public Integer age;protected I…

2023杭電第七場補題報告1002 1004 1011 1013

2023杭電第七場補題報告1002 1004 1011 1013 1002 B. Random Nim Game (hdu.edu.cn) 思路 手推一下就可以發現其實除了一次必定結束的其他情況概論都是 1 2 \frac{1}{2} 21? 代碼 #include <bits/stdc.h> using namespace std; #define int long long void solve()…

【hello C++】特殊類設計

目錄 一、設計一個類&#xff0c;不能被拷貝 二、設計一個類&#xff0c;只能在堆上創建對象 三、設計一個類&#xff0c;只能在棧上創建對象 四、請設計一個類&#xff0c;不能被繼承 五、請設計一個類&#xff0c;只能創建一個對象(單例模式) C&#x1f337; 一、設計一個類&…

Sentinel使用實例

不說了&#xff0c;直接上官方文檔 https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/readme-zh.md Sentinel Example 項目說明 本項目演示如何使用 Sentinel starter 完成 Spring Clo…

【金融量化】對企業進行估值的方法有哪些?

估值的方法有哪些&#xff1f; 如何對企業進行估值&#xff1f;有2個方法估算。 1 絕對估值法 它是一種定價模型&#xff0c;用于計算企業的內在價值。 比如說你可以根據公司近N年的現金流情況。借此去預測未來N年的現金流情況。所有的現金流數據都可以在年報上查詢到。最后…

ios 知識

IOS 類文件.h和.m中interface的區別 大家都知道我們在創建類文件時會發現&#xff1a; #import <UIKit/UIKit.h>interface ViewController : UIViewControllerend和 #import "ViewController.h"interface ViewController ()end那么他們之間有何區別呢&#x…

【Ajax】回調地獄解決方法

回調地獄&#xff08;Callback Hell&#xff09;是指在異步編程中&#xff0c;特別是在嵌套的回調函數中&#xff0c;代碼變得深度嵌套、難以閱讀和維護的現象。這通常發生在處理多個異步操作時&#xff0c;每個操作都依賴于前一個操作的結果。回調地獄使代碼變得難以理解、擴展…

顯卡服務器適用于哪些場景

顯卡&#xff08;GPU&#xff09;服務器&#xff0c;簡單來說&#xff0c;GPU服務器是基于GPU的應用于視頻編解碼、深度學習、科學計算等多種場景的快速、 穩定、彈性的計算服務。那么壹基比小鑫告訴你顯卡服務器主要的用途有哪一些。 一、運行手機模擬器 顯卡服務器可支持…

力扣:62. 不同路徑(Python3)

題目&#xff1a; 一個機器人位于一個 m x n 網格的左上角 &#xff08;起始點在下圖中標記為 “Start” &#xff09;。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角&#xff08;在下圖中標記為 “Finish” &#xff09;。 問總共有多少條不同的路徑&…

WebRTC音視頻通話-WebRTC本地視頻通話使用ossrs服務搭建

iOS開發-ossrs服務WebRTC本地視頻通話服務搭建 之前開發中使用到了ossrs&#xff0c;這里記錄一下ossrs支持的WebRTC本地服務搭建。 一、ossrs是什么&#xff1f; ossrs是什么呢&#xff1f; SRS(Simple Realtime Server)是一個簡單高效的實時視頻服務器&#xff0c;支持RTM…

STM32CubeIDE的安裝和黑色主題及自動補全代碼

STM32CubeIDE之前用過一點時間&#xff0c;但后來因為不習慣放棄了最近在新電腦上又用起來了&#xff0c;感覺相對之前好了很多&#xff0c;其實如果在工作中基本使用的是STM32,用意法的生態軟件也挺好的&#xff0c;意法最近在這塊也在大力發展&#xff0c;STM32CubeIDE安裝包…

【BASH】回顧與知識點梳理(十三)

【BASH】回顧與知識點梳理 十三 十三. 文件內容查閱13.1 直接檢視文件內容&#xff1a;cat, tac, nlcat (concatenate)tac (反向列示)nl (添加行號打印) 13.2 可翻頁檢視&#xff1a;more, lessmore (一頁一頁翻動)less (一頁一頁翻動) 13.3 資料擷取&#xff1a;head, tailhea…

【Linux】云服務器自動化部署VuePress博客(Jenkins)

前言 博主此前是將博客部署在 Github Pages&#xff08;基于 Github Action&#xff09;和 Vercel 上的&#xff0c;但是這兩種部署方式對于國內用戶很不友好&#xff0c;訪問速度堪憂。因此將博客遷移到自己的云服務器上&#xff0c;并且基于 Jenkins&#xff08;一款開源持續…