如何删除host免备案虚拟主机zxhost中的vds配置

单host下Docker的默认网络配置 - 简书
单host下Docker的默认网络配置
本文用到的环境如下:
host: centos7
docker: 通过yum install -y docker安装,版本号为1.10.3
docker镜像:
# Version: 0.0.1 FROM ubuntu:latest MAINTAINER paul liu "pollux." RUN apt-get update RUN apt-get install -y net-tools RUN apt-get install -y iputils-ping CMD /bin/bash
我的host主机接有无线路由器,通过ADSL拨号上网,网卡eth0固定IP为192.168.0.200,网关为路由器的IP 192.168.0.1。
在host上安装docker,并运行容器。
docker0的作用
通过以下命令安装docker,
yum install -y docker
启用docker,
systemctl start docker
然后在host主机运行ifconfig或ip a命令,可以看到除去host原有的网卡eth0和回环lo外,多了个docker0。
docker0 IP为172.17.0.1,所在的网段默认为B类私网地址172.17.0.0/16。可以将docker0看做是host主机的一块虚拟网卡。这样host主机就等同于配置了双网卡,两块网卡之间可以通信,但前提是启用ip_forward。
这是docker0的第一个身份。
运行两个容器docker1,docker2,然后在host主机上运行brctl show查看,
这里可以看出docker0的第二个身份,一个虚拟交换机。每运行一个容器,就会产生一对veth,其中一端连接到docker0上,另一端连接到容器的eth0上。这样,所有连接到docker0的容器组成了一个局域网。如下图:
在host主机上运行ifconfig,也会发现多了两个veth这样的网络接口。
在host主机上运行ip addr show veth6d9a691,可以查看到该veth具有mac地址,这也正说明了docker0的虚拟交换机的身份,交换机是通过mac地址通信的,连接到交换机的设备必须具有mac地址。
由于docker0自身也具有mac地址,这个与纯二层交换机是不同的,并且绑定了IP 172.17.0.1,容器默认把docker0作为了网关。也就是docker0还兼具路由的功能,因此可以把docker0看做是一个三层交换机,可以做二层数据包转发,也可以做三层路由转发。
在容器中运行route -n查看路由如下:
在host主机上运行route -n查看路由如下:
在host中,访问本网段192.168.0.0是通过eth0转发数据包的,访问172.17.0.0网段是通过docker0转发数据包的,而对于其他如公网是通过eth0将数据包转发给网关192.168.0.1,再由该网关进行数据包转发的,比如上网。
容器是如何连接到外部网络的
在容器中运行ping sohu.com或ping 192.168.0.200都可以ping通。
默认情况下,不需要再额外做任何配置,在一台host主机上,通过docker0,各容器之间可以互通,并且可以通过host的eth0连接外网。
通俗的讲,通过docker0组成了一个网段为172.17.0.0/16的以太网,docker容器发起请求时,如果是相同网段则经由docker0转发到目标机器,如果是不同网段,则经由docker0,转发到host的另一块网卡eth0上,由eth0负责下一步的数据包转发,比如公网地址。
下面进一步分析一下报文是怎么发送到外面的。
容器内部发送一条公网请求报文,通过eth0,在veth被接收。此时报文已经来到了主机上,通过查询主机的路由表(route -n),如果发现报文应该通过主机的eth0,从默认网关发送出去,那么报文就被从docker0转发给主机的eth0,但前提是首先启用ip_forward功能,才能在host主机的docker0和eth0两个网卡间传递数据包。
由于目标地址并不属于host主机所在网段,那么会匹配机器上的 iptables中的nat表POSTROUTING链中的规则。
在host主机运行命令iptables -L -n -t nat --line-numbers,查看nat表,这里只看POSTROUTING链:
第一行中说明,对于源地址为172.17.0.0/16网段的数据包,发出去之前通过MQSQUERADE伪装。linux内核会修改数据包源地址为host主机eth0的地址(也就是192.168.0.200),然后把报文转发出去。对于外部来说,报文是从主机eth0发送出去的。
局域网内的机器由于都是私有IP,是无法直接访问互联网的(数据包可以发出去,但回不来。)如果要上网,除了可以通过硬件路由器,也可以通过软件路由,在iptables的nat表中的POSTROUTING链中添加SNAT规则。
测试一下,在host主机运行命令iptables -t nat -D POSTROUTING 1将第一条规则删掉,那么在容器中就运行命令ping sohu.com就ping不通了。但仍然可以ping通host主机。
在host主机运行命令以下命令恢复:
iptables -t nat -I POSTROUTING -s 172.17.0.0/16 -o eth0 -j SNAT --to-source 192.168.0.200
iptables -t nat -I POSTROUTING -s 172.17.0.0/16 -j MASQUERADE
关于SNAT和MASQUERADE,这篇文章已经有过描述,可以参考:
外部网络如何访问容器提供的服务
新建一Dockerfile,用以运行nginx容器:
# Version: 0.0.1 FROM paulliu/ubuntu_ip RUN apt-get install -y nginx EXPOSE 80
在host主机运行构建命令构建镜像docker build -t paulliu/nginx .
在host主机运行容器启动命令docker run -d -p 80 --name nginx1 paulliu/nginx nginx -g ""
在host主机查看容器的端口映射docker port nginx1 80
在host主机运行命令iptables -nat -L -n可以看到在PREROUTING链中多了以下DNAT规则:
也就是在容器启动时通过-p 80将host主机192.168.0.200:32773映射为容器172.17.0.4:80。
注意:docker容器每次启动时获取的IP地址未必是一样的,而且-p 80是在host主机上随机选择一个端口号进行映射,每次启动的端口号也未必是一样的。但iptables中相关的规则是自动变更的。
在host主机运行curl localhost:32773或者在其他主机运行curl 192.168.0.200:32773结果如下:
转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台 -- Do...
注解;来自某位大神的详解,做个笔记。 iptables防火墙简介 Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的安全自由的**基于包过滤的防火墙工具**,它的功能十分强大,使用非常灵活,可以对流入和流出服务...
很多人可能在项目中已经使用docker很长时间,但是却很少有人知道docker的网络是如何实现的。我应该就算是很多人中的一个。 开始前有一点需要注意的是:如果你现在正使用的是docker for mac,建议你还是在mac上安装vagrant,然后使用vagrant开启一台...
关于docker网络模式有四种,内容如下,至于内容从来哪的,我也不知道,反正网上找的 前言:我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式:·host模式,使用--net=host指定。·cont...
五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了端口只能本地访问外,对于容器的另外一个问题是这些 ip 在容器每次启动的时候都会改变。Docker 解决了容器的这两个问题,并且给容器内部服务的访问提供了一个简...
突發其想想寫一篇遊記/美食攻略。給自己記錄的同時也想分享海口美食吃大家:)第一次寫遊記,如有不足,多多包涵啦。 我覺得夏天去海口一定要吃的必須是清補涼!是海口才有的甜品,用上水果,珍珠,涼粉,綠豆,冰淇淋等很多配料加上椰子水/糖水而製成,十分解暑又好吃!夏天必須得來一碗 我...
父母可以有自己的理想,但干涉孩子各自的理想,就等于不承认孩子的人格。青少年不良行为的种子,最初就是从这里萌芽的。——池田大作 最近接了一个小升初的面试课程,目标学校:复旦附中。 第一次上课妆容精致的妈妈带着安然不语的萱萱来到了我们工作室。 课程开始,我让萱萱进行自我介绍,很...
风卷江湖雨暗村,四山声作海涛翻。 溪柴火软蛮毡暖,我与狸奴不出门。 家里有两只猫,一只叫白爪,一只叫黑桃二。 因为吃了一次肉,后来喂猫粮都不怎么好好吃。特别是黑桃二,吃肉吃的特别多,总要吃到肚子一边撑起来为止。胖的要死了还喜欢钻到暖气片和床的角落,卡住出不来杀猪一样求救。在...
今夜风没有来, 偏偏又是个多云的天气, 于是, 月亮被深深的困在了云层里, 等不到风来将云层吹散。 夜越来越冷, 月亮对着云朵说:“我想你!” 而我对着黑夜说:“我想你……” 今夜风没有来, 只是今晚的天空没有云, 你看, 月亮已高高地挂在那夜空中, 找不到风的一丝丝痕迹。...
父亲的‘俭’是一种深至骨髓之俭,影响了我的终身。随手关灯的节电习惯,双面用纸的节纸习惯,废水冲厕的节水习惯……,无一不来自父亲的言传身教。父亲患病后期不能用语言自由表达,有一次他向我指点着床头柜上亮着的台灯,看我不解其意,又指指房顶亮着的顶灯,意思是告诉我没有必要如此地‘灯...1、什么是Linux主机名
无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。但IP地址不方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在(以实验为目的的局域网域网实验性除外),每个域名都对应一个IP地址,但一个IP 地址可有对应多个域名。域名类型 Linux sir.org 这样的;
主机名是用于什么的呢?在一个局域网中,每台机器都有一个主机名,用于主机与主机之间的便于区分,就可以为每台机器设置主机名,以便于以容易记忆的方法来相互访问。比如我们在局域网中可以为根据每台机器的功用来为其命名。主机名相关的配置文件:/etc/
2. Linux主机名配置文件
主机名的配置文件大多是/etc/hosts ;hosts - The static table lookup for Linux hostname(主机名查询静态表);由于 Linux发行版本众多,与主机名相关的配置文件有时也有所不同。现在我们说说常见版本的主机名配置文件;
2.1 Linux主机名置文件 /etc/hostsFedora/Redhat 或以Fedora/Redhat为基础打包的发行版,主机名配置文件是 /etc/hosts Debian或以Debian为基础打包的发行版,主机名配置文件是 /etc/Linux hostname 和/etc/hosts Slackware的主机名配置文件是 /etc/hosts 那我们来读读 /etc/hosts的内容,看这个文件是用来做什么的。
hosts 配置文件是用来把主机名字映射到IP地址的方法,这种方法比较简单。但这种映射只是本地机的映射,也就是说每台机器都是独立的,所有的计算机都不能相互通过Linux hostname来访问。注:在debian 中还有一个/etc/Linux hostname的文件,这个文件就是直接把本地主机名写进去就行了,但要和 /etc/hosts中的本地主机名保持一致。
/etc/hosts 的内容一般有如下类似内容:127.0.0.1 localhost.localdomain localhost 192.168.1.195 debian.localdomain debian注:一般情况下hosts的内容关于主机名(Linux hostname)的定义,每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不被系统解释。
第一部份:网络IP地址;第二部份:主机名.域名,注意主机名和域名之间有个半角的点,比如 localhost.localdomain第二部份:主机名(主机名别名) ,其实就是主机名;当然每行也可以是两部份,就是主机IP地址和主机名;比如 192.168.1.195 debian
127.0.0.1 是回环地址,比如我们不想让局域网的其它机器看到我们测试的网络程序,就可以用回环地址来测试。 为什么需要定义域名呢?其实理解也简单,比如我们有三台主机,每台做不同的事,一台做MAIL服务器,一台做FTP服务器,一台做SMB服务器,所以我们就可以这样来设计Linux hostname;
127.0.0.1 localhost.localdomain localhost
192.168.1.2 ftp.localdomain ftp
192.168.1.3 mail.localdomain mail
192.168.1.4 smb.localdomin smb
把这上面这个配置文件的内容分别写入每台机器的/etc/hosts内容中,这样这三台局域网的机器就可以通过Linux hostname来访问了。
2.2 主机名(Linux hostname)和域名(Domain)的区别
主机名就机器本身的名字,域名是用来解析到IP的。但值得一说的是在局域网中,主机名也是可以解析到IP上的;比如我们前面所说举的例子;
2.3 局域网的机器,不能通过主机名互访的原因;
有的可能会说,我的Linux hostname彼此不能互访,其实这也问题也简单,我们前面已经提到了一个简单的解决办法。就是要让局域网中的所有主机都有一个通用的,并且包含所有主机的/etc/hosts文件;
另一个是做解决办法是做局域网DNS服务器,如果您的主机特别少,就用前面所说的简单方法就行;如何做DNS服务器,我将在以后的文档中专题介绍;不过我值得一提的是做任何服务器都是以效率优先的原则为基础。
比如在局域网中两台机器,还有必要做DNS服务器吗?
3、主机名修改工具 L
其实主机名的修改也有专用工具,就是Linux hostname ;我认为如果用这个工具来修改主机名,不如直接修改 /etc/hosts 来的方便;您可以查看 hosname --help或 man Linux hostname的帮助 。在这里我们只说简单的用法;Linux hostname 工具是用来显示和设置系统主机名,看下面的洋文;Linux hostname - show or set the system’s host name
举例:显示主机名:[root@linuxsir01 ~]# Linux hostname linuxsir01此主机的主机名是linuxsir01,不加参数是用来显示当前操作的主机的主机名;临时设置主机名:我们可以用 Linux hostname 后接主机名,这样就可以设置当前操作的主机的主机名.
比如想把主机名设置为linuxsir02;[root@linuxsir01 ~]# Linux hostname linuxsir02[root@linuxsir01 ~]# Linux hostname 注:显示主机名linuxsir02通过Linux hostname 工具来设置主机名只是临时的,下次重启系统时,此主机名将不会存在;
要永久生效的等话,还是用前面所说的修改主机名配置文件 /etc/hosts;显示主机IP:显示当前主机名的IP,可以用-i参数;[root@linuxsir01 ~]# Linux hostname -i192.168.1.3
4、未尽事宜;
有时在登入桌面时,会提示找不到Linux hostname ,这时修改/etc/hosts,添加一个主机名;
先用 ifconfig -a 来查看主机的IP地址,然后把你主机的IP地址,指定主机名;
如此操作之后,就没有问题了。如何用fiddle来配置host_百度知道
如何用fiddle来配置host
我有更好的答案
方法/步骤我们安装完成后点击运行程序,就可以看到如下图,这是进入Fildder的第一个界面安装好后打开fiddler→选择 Tools &Fildder Options & Httpshttps 勾选下列选项Connection勾选允许远程连接设置完成后点击下面的【OK】按钮保存我们在刚开始进入Fildder的界面上,使用手机或者电脑网上冲浪就可以看到我们的http请求了。END注意事项可以使用Fildder来做某些环境下的软件测试
采纳率:93%
来自团队:
为您推荐:
其他类似问题
fiddle的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 免费虚拟主机zxhost 的文章

 

随机推荐