centos 中,启用了 firewalld 防火墙,docker 内的容器无法访问外网

首先记录几个对 linux 系统服务操作的命令(以下都是对防火墙服务进行操作):

# 启动服务
systemctl start firewalld

# 设置服务自启动
systemctl enable firewalld

# 取消服务自启动
systemctl disable firewalld

# 停止服务
systemctl stop firewalld

# 查看服务状态
systemctl status firewalld

# 重启服务
systemctl restart firewalld

另外如果在防火墙上配置例外端口,可以执行下面命令:

# 添加端口例外(添加时需要开启防火墙服务,添加后需要重启防火墙服务以生效)
firewall-cmd --add-port=8000/tcp --permanent

# 移除端口例外

firewall-cmd --remove-port=8000/tcp –permanent

# 配置 docker 容器内允许访问外部网络(需重启 firewalld、docker 以生效)
firewall-cmd --permanent --zone=trusted --change-interface=docker0

# 验证容器内对外部的访问(检查 DNS 解析结果是否正常)
docker run --rm busybox nslookup baidu.com

下面是一些 linux 中常用的网络命令记录:

# 验证网站访问
curl http://baidu.com/

# 查看 dns
nslookup baidu.com

# 查看网络信息
ifconfig

# 查看网卡
ip link

# 删除网卡
ip link delete docker0

# 查看路由表
ip route

# 查看 nat 表
iptables -t nat -L -n

# 启用 ip 转发
sysctl net.ipv4.conf.all.forwarding=1
sudo iptables -P FORWARD ACCEPT

参考:
https://www.cnblogs.com/zl1991/p/10531726.html
https://unix.stackexchange.com/questions/199966/how-to-configure-centos-7-firewalld-to-allow-docker-containers-free-access-to-th

参考:
https://docs.docker.com/network/bridge/
https://docs.docker.com/v17.09/engine/userguide/networking/default_network/custom-docker0/
https://docs.docker.com/v17.09/engine/userguide/networking/default_network/binding/

原文地址:https://www.cnblogs.com/xwgli/p/12310403.html

时间: 2024-08-29 02:08:19

centos 中,启用了 firewalld 防火墙,docker 内的容器无法访问外网的相关文章

CentOS 7.0 关闭firewalld防火墙指令 及更换Iptables防火墙

CentOS 7.0 关闭firewalld防火墙指令 及更换Iptables防火墙 时间:2014-10-13 19:03:48  作者:哎丫丫  来源:哎丫丫数码网  查看:11761  评论:2 service firewalld stop 1. Disable Firewalld Service. [root@rhel-centos7-tejas-barot-linux ~]# systemctl mask firewalld 2. Stop Firewalld Service. [ro

公司内虚拟机装Linux系统且以NAT模式访问外网

在公司用VMware装centos,以NAT模式访问外网.虚拟机dhclient获取IP为192.168.202.128,因此将网关设置为192.168.202.1,但是怎么都访问不到外网.可以ping通内网. 解决方法如下: 查看虚拟机NAT设置: VMware->编辑->虚拟网络编辑器->NAT模式->NAT设置 在NAT设置界面中可查看网关地址是192.168.202.2:并不是192.168.202.1: 编辑虚拟机配置: [[email protected] ~]# vi

CentOS网络配置后无法访问外网的解决方法

CentOS网络配置后无法访问外网的解决方法 关于CentOS网络的具体配置项,可以参考Mitchell博客之前的那篇文章. 现象: ping内网正常ping外网IP,域名均无法正常,返回错误:connect: Network is unreachable 后面在无意中看到Linux网络配置有添加网关的命令: 复制代码 代码如下: route add default gw 192.168.128.2 dev eth0 按上面操作,添加了默认的网关之后.再次访问外网一切正常. 有这个现象来看,应该

linux内网机器访问外网代理设置

1.检查机器 在操作中发现访问外网的机器本身不能使用yum 安装软件,故需要配置yum安装源.如果可以的,这步可忽略. [[email protected] test]# lsb_release -a LSB Version:    :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.

让devstack中的vm访问外网

devstack默认会建立一个Public网络,地址为172.24.4.0/24,但是这个网络并不是运营商分配给我们的网络,所以只能通过nat的方式让devstack建立的虚拟机访问外网. br-ex和br-phy都不需要绑定到任何的物理网卡,所有网络都是内部的. 想让vm通过Public访问外部网络,需要执行如下命令: ifconfig br-ex 172.24.4.1/24 iptables -t nat -I POSTROUTING -s 172.24.4.0/24 -j MASQUERA

VMWare中CentOS7 设置固定IP且能够访问外网

最近搭建kubernetes集群环境时遇到一个问题,CentOS7在重启后IP发生变化导致集群中etcd服务无法启动后集群环境变得不可用,针对这种情况,必须要对CentOS7设置固定IP且可以访问外网(下载镜像用). 首先关闭VMware的DHCP: 选择编辑-->虚拟网络编辑器 选择VMnet8,去掉使用本地DHCP服务将IP地址分配给虚拟机(D)选项.点击NAT 设置(S)查看一下GATEWAY地址: 设置完,点击OK就可以了. 设置CentOS静态IP: 涉及需要修改的配置文件有:   /

(转)内网网站发布到外网-nat123动态公网IP动态域名解析

环境描述: 路由器分配的是动态公网IP,且有路由器登录管理权限,网站服务器部署在路由器内部网络.如何将内网网站发布到外网大众访问? 解决方案: 内网使用nat123动态域名解析,将域名实时固定解析到路由公网IP,然后在路由器上做网站端口映射.外网访问网站时,使用动态解析域名. 实现过程: 1,明确网站内网访问地址端口,确保网站服务正常,在内网可以正常访问连接.如我内网网站访问地址是192.168.1.22:80.如果本地公网IP的80端口被屏蔽,可以更换其他网站端口,或使用nat123的80映射

sockets+proxychains代理,使内网服务器可以访问外网

Socks5+proxychains做正向代理 1.         应用场景: 有一台能上外网的机子,内网机子都不能连外网,需求是内网机子程序需要访问外网,做正向代理. 2.         软件 Server端:   Client端:       3.SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全.SOCKS5 服务器通过将前端发来的请求转发给真正的目标服

VMware10中的Linux系统利用NAT网络连接方式访问外网配置

一.描述 在VMware10中 提供常见的三种网络连接方式 : 1.Bridge:这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,与linux下一个网卡绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力. 在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了我们真实物理网卡所在的网络上,相当于虚拟机和真实主机处于对等的地位,在网络关系上是平等的,没有谁在谁后面的问题.使用这种方式很简单,前提是你有1个以上的IP地址,这个不太适合使用. 2.na