mergely_CodeMirror_DiffMatchPatch前端文本diff

Posted by 夏泽民

CodeMirror CodeMirror Github: https://github.com/codemirror/CodeMirror CodeMirror Demo: http://codemirror.net/demo/merge.html



pipework 为docker容器配置独立IP

Posted by 夏泽民

环境:安装docker 关闭selinux 开启路由转发(net.ipv4.ip_forward = 1) 一、将 Docker 容器配置到本地网络环境中 为了使本地网络中的机器和 Docker 容器更方便的通信,我们经常会有将 Docker 容器配置到和主机同一网段的需求。这个需求其实很容易实现,我们只要将 Docker 容器和主机的网卡桥接起来,再给 Docker 容器配上 IP 就可以了。 下面我们来操作一下,我主机 A 地址为 192.168.157.128/24,网关为 192.168.157.2,需要给 Docker容器的地址配置为 192.168.157.150/24。在主机 A 上做如下操作: 安装 pipework 下载地址:wget https://github.com/jpetazzo/pipework.git unzippipework-master.zip cp -p /root/pipework-master/pipework/usr/local/bin/ 启动 Docker 容器。 docker run -itd–name test1 镜像 /bin/bash 配置容器网络,并连到网桥 br0 上。网关在 IP 地址后面加@指定。 pipework br0 test1192.168.157.150/24@192.168.157.2 将主机 eno16777736 桥接到 br0 上,并把 eno16777736 的 IP 配置在 br0 上。 p addradd 192.168.157.128/24 dev br0 ip addrdel 192.168. 157.128/24 dev eno16777736 brctladdif br0 eno16777736 ip routedel default ip routeadd default via 192.168.157.2 dev br0 注:如果是远程操作,中间网络会断掉,所以放在一条命令中执行。 ip addradd 192.168.157.128/24 dev br0;ip addr del 192.168. 157.128/24 deveno16777736;brctl addif br0 eno16777736;ip route del default;ip route add default via 192.168.157.2dev br0 完成上述步骤后,我们发现 Docker 容器已经可以使用新的 IP 和主机网络里的机器相互通信了



调用namespace的API

Posted by 夏泽民

Linux内核中就提供了这六种namespace隔离的系统调用,如下表所示。 Namespace 系统调用参数 隔离内容 UTS CLONE_NEWUTS 主机名与域名 IPC CLONE_NEWIPC 信号量、消息队列和共享内存 PID CLONE_NEWPID 进程编号 Network CLONE_NEWNET 网络设备、网络栈、端口等等 Mount CLONE_NEWNS 挂载点(文件系统) User CLONE_NEWUSER 用户和用户组 表 namespace六项隔离 实际上,Linux内核实现namespace的主要目的就是为了实现轻量级虚拟化(容器)服务。在同一个namespace下的进程可以感知彼此的变化,而对外界的进程一无所知。这样就可以让容器中的进程产生错觉,仿佛自己置身于一个独立的系统环境中,以此达到独立和隔离的目的。



ifconfig

Posted by 夏泽民

ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全称是network interfaces configuring。配置网卡的IP地址语法例:ifconfig eth0 192.168.0.1 netmask 255.255.255.0 系统命令编辑 Linux命令:ifconfig 语法 ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<硬件地址>] [media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>] [-pointopoint<地址>] 补充说明 补充说明:ifconfig可设置网络设备的状态,或是显示当前的设置。 参数 参 数: [网络设备] 网络设备的名称。 down 关闭指定的网络设备。 up 启动指定的网络设备。 -arp 打开或关闭指定接口上使用的ARP协议。前面加上一个负号用于关闭该选项。 -allmuti 关闭或启动指定接口的无区别模式。前面加上一个负号用于关闭该选项。 -promisc 关闭或启动指定网络设备的promiscuous模式。前面加上一个负号用于关闭该选项。 add<地址> 设置网络设备IPv6的IP地址。 del<地址> 删除网络设备IPv6的IP地址。 media<网络媒介类型> 设置网络设备的媒介类型。 mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。 metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。 mtu<字节> 设置网络设备的MTU。 netmask<子网掩码> 设置网络设备的子网掩码。 tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。 -broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。 -pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。 网卡命令 无论是Linux 自动安装还是我们手工安装,Linux 都会向你询问有关网络的问题并配置相关的软件。这个用于配置网卡的基本命令就是ifconfig。 在执行ifconfig 命令后,系统将在内核表中设置必要的参数,这样Linux 就知道如何与网络上的网卡通信。ifconfig 命令有以下两种格式: ※ifconfig [interface] ※ifconfig interface [aftype] option | address … ifconfig 的第一种格式(或使用不带任何参数的ifconfig 命令)可以用来查看当前系统的网络配置情况。 在刚刚安装完系统之后,实际上是在没有网卡或者网络连接的情况下使用Linux,但通过ifconfig 可以使用回绕方式工作,使计算机认为自己工作在网络上。 下面我们运行一下ifconfig 命令,不带参数的ifconfig 命令可以显示当前启动的网络接口,其输出结果为: [root@machine1 /sbin]#ifconfig eth0 Link encap:Ethernet HWaddr 52:54:AB:DD:6F:61 inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:46299 errors:0 dropped:0 overruns:0 frame:189 TX packets:3057 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:5 Base address:0xece0 lo Link encap:Local Loopback inet addr:127.0.0.1Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:44 errors:0 dropped:0 overruns:0 frame:0 TX packets:44 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 其中以eth0 为首的部分是本机的以太网卡配置参数,这里显示了网卡的设备名/dev/eth0 和硬件的MAC 地址52:54:AB:DD:6F:61,MAC 地址是生产厂家定的,每个网卡拥有的唯一地址。 不过我们可以手工改动网卡的MAC 地址,只要我们在/etc/rc.d/init.d/中的network 中加入: ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx Jiania 解说 注: eth0,eth1,eth2,代表网卡一,网卡二,网卡三 hw 代表hardware 硬件意思 ether 代表ethernet以太网的意思 然后重启,此时再用ifconfig 命令查看一下,我们就会发现网卡的MAC 地址已经变成xx:xx:xx:xx:xx:xx了。 配置网卡 配置网卡的IP地址 ifconfig eth0 192.168.0.1 netmask 255.255.255.0 在eth0上配置上192.168.0.1 的IP地址及24位掩码。若想再在eth0上在配置一个192.168.1.1/24 的IP地址怎么办?用下面的命令 ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0 这时再用ifconifg命令查看,就可以看到两个网卡的信息了,分别为:eth0和eth0:0.若还想再增加IP,那网卡的命名就接着是:eth0:1、eth0:2……想要几个就填几个。ok! 配置网卡的硬件地址 ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx就将网卡的硬件地址更改了,此时你就可以骗过局域网内的IP地址绑定了。 将网卡禁用 ifconfig eth0 down 将网卡启用 ifconfig eth0 up ifconfig 命令的功能很强大,还可以设置网卡的MTU,混杂模式等。



subnet_mask 子网掩码

Posted by 夏泽民

子网掩码(subnet mask)是每个使用互联网的人必须要掌握的基础知识,只有掌握它,才能够真正理解TCP/IP协议的设置。 子网掩码——屏蔽一个IP地址的网络部分的“全1”比特模式。对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。 利用子网掩码可以把大的网络划分成子网,即VLSM(可变长子网掩码),也可以把小的网络归并成大的网络即超网。 子网掩码的设定必须遵循一定的规则。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做按位与运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数(2的主机位数次方-2,因为主机号全为1时表示该网络广播地址,全为0时表示该网络的网络号,这是两个特殊地址)。只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。 子网掩码通常有以下2种格式的表示方法: 1. 通过与IP地址格式相同的点分十进制表示 如:255.0.0.0 或255.255.255.128 2. 在IP地址后加上”/”符号以及1-32的数字,其中1-32的数字表示子网掩码中网络标识位的长度 如:192.168.1.1/24 的子网掩码也可以表示为255.255.255.0



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required