首页 > 其他分享 >解决Docker端口映射后外部访问未开启的端口问题

解决Docker端口映射后外部访问未开启的端口问题

时间:2024-04-09 10:00:17浏览次数:25  
标签:8080 宿主机 端口 防火墙 访问 Docker 端口映射

在使用Docker时,经常会遇到需要将容器内部的服务映射到宿主机上的端口,以便外部可以访问。但有时候会遇到这样的问题:即使宿主机上未开启对应的端口,外部依然可以通过这些端口直接访问到服务,这可能存在一定的安全隐患。本文将介绍如何解决这个问题。

首先,让我们了解一下Docker端口映射的原理。当我们使用docker run命令启动一个容器时,可以使用-p参数将容器内部的端口映射到宿主机上。例如:

docker run -p 8080:80 nginx

这个命令将容器内部的80端口映射到宿主机的8080端口上。这样外部可以通过访问宿主机的8080端口来访问容器内的Nginx服务。

然而,有时候我们可能会发现即使宿主机上未开启8080端口,外部依然可以通过8080端口直接访问到Nginx服务。这是因为Docker在进行端口映射时,并不会检查宿主机上端口的状态,而是直接将流量转发到容器内部的对应端口。

为了解决这个问题,我们可以采取以下两种方式之一:

1. 使用防火墙规则
我们可以在宿主机上设置防火墙规则,禁止外部访问未开启的端口。例如,使用iptables命令:

sudo iptables -A INPUT -p tcp --dport 8080 -j DROP

这个命令会将对8080端口的所有访问请求直接丢弃,从而阻止外部对未开启的端口的访问。

2. 使用Docker的防火墙规则
从Docker 1.13版本开始,Docker引入了一个新的功能——Docker的防火墙规则(Docker Firewall)。这个功能可以在Docker守护程序层面上设置防火墙规则,从而保护Docker容器的网络安全。我们可以通过修改Docker的防火墙规则来限制外部对未开启的端口的访问。

综上所述,通过设置防火墙规则,我们可以有效地解决Docker端口映射后外部访问未开启的端口的问题,提高系统的安全性。

最后

注:麻烦大家关注我的公众号,会每日更新,面试题笔试题都会更新,麻烦大家多多关注
欢迎欢迎

标签:8080,宿主机,端口,防火墙,访问,Docker,端口映射
From: https://blog.csdn.net/marakaih/article/details/137539790

相关文章

  • 如何使用Docker容器化改善你的开发流程
    使用Docker容器化技术可以大大改善开发流程,提高软件开发和部署的效率。Docker提供了一个轻量级的、可执行的包装环境,使得应用程序可以在几乎任何地方以相同的方式运行,这减少了从开发到生产环境的“它在我的机器上可以正常工作”的问题。参考文档:如何使用Docker容器化改善你的开......
  • 在GitHub上用HTTP端口使用ssh
    问题:在实现本地仓库与GitHub仓库相关联时出现下图问题尝试了很多方法包括但不限于:更改公私钥密码,更改防火墙,检查仓库UPL等方法但都没有效果解决方法:通过HTTPS端口使用SSH测试有时,防火墙完全拒绝允许SSH连接。如果无法使用带有凭据缓存的HTTPS克隆,则可以尝试使用通过......
  • docker部署clickhouse
    拉取镜像最新镜像不加版本号即可dockerpullclickhouse/clickhouse-server:latest宿主机创建目录mkdir-p/usr/local/docker/clickhouse/conf/usr/local/docker/clickhouse/data/usr/lcoal/docker/clickhouse/log启动临时容器获取配置文件dockerrun--rm-d--nam......
  • asp.core生成docker镜像(使用本地nuget)
    生成Dockerfilevs自带生成Dockerfile功能了使用本地的nuget包加入nuget配置文件NuGet.ConfigNuGet.Config配置文件,配置地址如果没有配置生成镜像会报错,没找到package生成镜像生成Docker映像(想深入了解,可以网上看看dockerbuild的参数)dockerbuild-f"C:\Projec......
  • 配置交换机 SSH 管理和端口安全——实验1:配置交换机基本安全和 SSH管理
    实验目的通过本实验可以掌握:交换机基本安全配置。SSH的工作原理和SSH服务端和客户端的配置。实验拓扑交换机基本安全和SSH管理实验拓扑如图所示。                                         交换机基本安全和SSH管理实验拓......
  • [docker] rockylinux8安装docker
    rockylinux8默认使用podman代替podman,但是在使用podman+portainer时出现不少问题,所以打算安装回docker,在此记录一下安装dockeryuminstall-yhttps://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.4.3-3.1.el8.x86_64.rpmyuminstall-yyum-......
  • ubuntu下实现一个端口到另一个IP和端口的映射
    要在Ubuntu上实现一个端口到另一个IP地址和端口的映射,通常有几种方法。这里,我们将讨论两种常用的方法:使用iptables和使用SSH端口转发。方法1:使用iptablesiptables是Linux上用于配置防火墙的工具。它允许你根据指定的规则对进出网络数据包进行控制。首先,确保你已经......
  • Docker 三要素:镜像 容器 仓库
    镜像、容器、仓库为docker的三要素。首先,我们来了解一下docker容器实例吧。   所谓的镜像就是Book,在java里面叫做(类模板),所谓的newBook();基于同一份镜像模板,基于同一项java对象弄出来的,不同的实例对象,模板均来自同一份,等号左边叫类模板,等号右边叫整体叫做实例对象。 ......
  • Docker部署xxl-job
    官方文档:https://www.xuxueli.com/xxl-job/#《分布式任务调度平台XXL-JOB》参考文档:https://www.jianshu.com/p/c47a405e98c4安装正常情况下,mysql的账号和密码如果和xxl-job上面的密码是一样的话,直接使用官方文档命令行即可:dockerrun-p8080:8080-v/tmp:/data/applogs--n......
  • 查看端口
    lsof命令lsof(listopenfiles)命令可以列出当前系统中打开的所有文件,包括网络端口。可以使用lsof命令查看某个端口被哪个进程占用。具体的命令为:sudolsof-i:端口号,其中端口号为需要查询的端口号。netstat命令使用netstat命令:netstat命令可以显示网络连接、路由表和网络接......