scope global em1[root@linux-gateway ~]# 内网网卡为 em1查看默认路由,与出口网卡[root@linux-gateway ~]# ip route | grep...default default via 180.140.110.123 dev em2 [root@linux-gateway ~]# 出口网卡为 em2方法一:直接在命令行配置filter 表上接受来自...em1 的 FORWARD 请求nat 表的 POSTROUTING 链上打开来自内网出口为 em2 的地址伪装,即 SNAT[root@linux-gateway ~]# iptables -A FORWARD...-i em1 -j ACCEPT[root@linux-gateway ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o em2 -j MASQUERADE...-A POSTROUTING -s 192.168.1.0/24 -o em2 -j MASQUERADE COMMIT*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT
touch /var/lock/subsys/local /usr/src/OM/linux/supportscripts/srvadmin-services.sh start modprobe bonding...&> /dev/null echo +bond0 > /sys/class/net/bonding_masters ifconfig em1 down echo +em1 > /sys/class/net.../bond0/bonding/slaves ifconfig em1 up ifconfig em2 down echo +em2 > /sys/class/net/bond0/bonding/slaves...ifconfig em2 up ifconfig bond0 up [monitor@docker37 ~]$ cat /etc/sysconfig/network-scripts/ifcfg-bond0...ONBOOT=yes BOOTPROTO=none [monitor@docker37 ~]$ cat /etc/sysconfig/network-scripts/ifcfg-em2 DEVICE=em2
系列下网卡bonding的配置过程,ct7的bonding配置过程请参考我的另一篇文章CentOS7.x下bonding的配置 环境介绍: 操作系统 网卡名称 负载模式 bond地址 CentOS6 em1.../em2 mode1 172.16.0.183 1.备份网卡配置文件 [root@localhost ~]$ cd /etc/sysconfig/network-scripts/ [root@localhost...BONDING_OPTS="mode=1 miimon=100" 4.加载bond0接口到内核 vi /etc/modprobe.d/bonding.conf 修改成如下: alias bond0 bonding 5.编辑em1...、em2的接口文件 vim /etc/sysconfig/network-scripts/ifcfg-em1 DEVICE=em1 MASTER=bond0 SLAVE=yes USERCTL=no ONBOOT...MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: em1
/bin/bash em1='/etc/sysconfig/network-scripts/ifcfg-em1' em2='/etc/sysconfig/network-scripts/ifcfg-em2...etc/sysconfig/network-scripts/ifcfg-bond0' mod='/etc/modprobe.d/dist.conf' rc='/etc/rc.local' cat > $em1...<<EOF DEVICE=em1 ONBOOT=yes BOOTPROTO=none EOF cat > $em2 <<EOF DEVICE=em2 ONBOOT=yes BOOTPROTO=none...layer3+4 miimon=100" EOF cat >> $mod <<EOF alias bond0 bonding EOF cat >> $rc <<EOF ifenslave bond0 em1...em2 EOF
Following interfaces are installed in your system: em0 em1 em2 Please choose one of above as your...em2 Please select data interfaces: em1 em2 Your interface configurations are: Admin interface...em2 Thank you for using panabit!...Panabit# Panabit# /usr/panabit/bin/ipectrl start kern.jos.ipe_netdevices: -> em1 em2 net.inet.tcp.msl...: 30000 -> 2000 cpu frequence: 2410407059 Load module "pci" ...... data ports: em1 em2 em1@bus2:5:0:
实验环境:DELL CentOS 7 双网卡: em1/em2 # 查看网卡名称 ip link | awk 'NR%2==1' | awk '{print $2,$8,$9}' | tr...-d ':' | grep -v lo | awk '{print $1}' 先决条件 确认bonding模块是否已经被加载到linux环境中,使用下面命令加载: modprobe bonding...network-scripts]# cat ifcfg-em1 TYPE=Ethernet BOOTPROTO=none UUID=f6f140af-1885-47d6-b22f-51e232d966e9 DEVICE=em1...[root@kvm-centos7 network-scripts]# cat ifcfg-em2 UUID=fe4606d1-23b8-48c7-a7e0-c858978ba4a9 DEVICE=em2...第五步:容错测试 测试容错,停掉一个网卡,看是否能够访问服务器以及接口状态 ifdown em1 # 停用 ifconfig查看网络状态,发现网络状态正常
配置主机默认路由在想要连接外网的服务器上删除原有路由,添加新路由[root@db-server ~]# ip route | grep defaultdefault via 192.168.1.1 dev em1...root@db-server ~]# ip route del default [root@db-server ~]# ip route add default via 192.168.1.254 dev em1...-j ACCEPTiptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o em2 -j MASQUERADE-A POSTROUTING -s 192.168.1.0.../24 -o em2 -j MASQUERADE-A FORWARD -i em1 -j ACCEPT/etc/init.d/iptables reloadip route del defaultip...route add default via 192.168.1.254 dev em1总体分三部1.打开内核参数 net.ipv4.ip_forward 允许转发2.打开 filter 表 FORWARD
1.确定好要绑定的那两个网口 我这边要绑定的是两个业务口 em2、em3 2.配置ifcfg-bond0、em2、em3 3.修改配置文件/etc/modprcode.d/disk.conf 底部添加...bonding options bonding mode=0 miimon=100 vi /etc/rc.d/rc.local 底部添加 ifenslave bond0 em1...em2 route add default gw 10.10.10.1 4.重启网络 service network restart
在本教程中,笔者在CentOS 6.X上配置网络绑定,笔者服务器有两个Lan卡(em1和em2)并将创建绑定接口(bond0) 步骤一、创建绑定文件(ifcfg-bond0)并指定IP地址,网络掩码和网关...和em2的文件,并确保输入主和从条目,如下所示 [root@aniu-cache-01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-em1 DEVICE=em1...MASTER=bond0 SLAVE=yes [root@aniu-cache-01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-em2 DEVICE=em2...在CentOS 7 / RHEL 7中配置NIC(网络接口卡)绑定 先决条件 # 如果bonding模块没有加载到你的Linux机器上,那么使用下面的命令来加载。...Y vermagic: 3.10.0-693.17.1.el7.x86_64 SMP mod_unload modversions signer: CentOS Linux
和em2,由于工作需要做了槽位调整,并启动了刀片 故障现象: 启动后网络不通,通过iDRAC登录后route查看缺省路由正常; 重启网络服务: [root@nodeA ~]# service network...: Device em1 does not seem to be present,delaying initialization....,eth1改为em2; *切记:网卡编号由MAC地址大小决定,MAC越小网卡编号越小; 如下: ………… # PCI device 0x14e4:0x163a (bnx2) SUBSYSTEM=="net...*", ATTR{address}=="24:b6:fd:ab:76:1e", ATTR{type}=="1", KERNEL=="eth*", NAME="em2" # PCI device 0x14e4...*", ATTR{address}=="24:b6:fd:ab:76:1c", ATTR{type}=="1", KERNEL=="eth*", NAME="em1" 保存退出~!
打算部署kvm虚拟机环境,下面是虚拟化部署前的一些准备工作: 操作系统环境安装 1)修改内核模式为兼容内核启动 [root@ops ~]# uname -a Linux openstack 2.6.32...-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@ops ~]#vim /...~]#cd /etc/sysconfig/network-scripts/ [root@ops ~]#cp ifcfg-em2 ifcfg-br0 #em2...让em2不受networkmanager的控制 BOOTPROTO=static [root@ops ~]# cat ifcfg-br0 DEVICE=br0 HWADDR=44:A8:42:21:A6...0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2146342 (2.0 MiB) TX bytes:720 (720.0 b) em1
Linux 操作系统有诸多自带和第三方的监控工具,以下从不同维度来整理常用的一些监控工具。...CPU top(经典的Linux任务管理工具) 示例:top -n 1 -b vmstat(展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用) 示例:vmstat 1 10 #...示例:sar -d vmstat 示例:vmstat 2 1 网络 netstat(监控TCP/IP网络) 示例:netstat -nltup iftop(实时流量监控工具) 示例:iftop -i em2...ss(获取socket统计信息,它可以显示和netstat类似的内容) 示例:ss -aA tcp sar 示例:sar -n EDEV 1 5 tcpdump(抓包工具) 示例:tcpdump -i em1...host 192.168.1.1 and port 80 tcpflow(分析网络流量) 示例:tcpflow -i em1 port 80 nload(用于查看linux网络流量状况,实时输出) 示例
overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:13942261 (13.2 MiB) TX bytes:7634359 (7.2 MiB) em1...collisions:0 txqueuelen:1000 RX bytes:371869769 (354.6 MiB) TX bytes:332186615 (316.7 MiB) Interrupt:35 em2...root@kvmserver ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.c81f66f4fc4f no em2...root@kvmserver ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.c81f66f4fc4f no em2...overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:15735341 (15.0 MiB) TX bytes:9481865 (9.0 MiB) em1
collisions:0 txqueuelen:0 RX bytes:13942261 (13.2 MiB) TX bytes:7634359 (7.2 MiB) em1...1000 RX bytes:371869769 (354.6 MiB) TX bytes:332186615 (316.7 MiB) Interrupt:35 em2...root@kvmserver ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.c81f66f4fc4f no em2...root@kvmserver ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.c81f66f4fc4f no em2...collisions:0 txqueuelen:0 RX bytes:15735341 (15.0 MiB) TX bytes:9481865 (9.0 MiB) em1
employees.sort(new Comparator() { @Override public int compare(Employee em1, Employee...em2) { if(em1.getAge() == em2.getAge()){ return 0; } return em1....如下: employees.sort((em1,em2) -> { if(em1.getAge() == em2.getAge()){ return 0; } return
管道是 毫不相关的进程进程间通信::命名管道 管道 首先自己要用用户层缓冲区,还得把用户层缓冲区拷贝到管道里,(从键盘里输入数据到用户层缓冲区里面),然后用户层缓冲区通过系统调用(write)写到管道里...mkfifo命名管道 1号手册是指令,。...2号系统调用接口 创建一个管道,p开头就是命名管道,并不会直接刷新到磁盘中,实际是个符号 这样会阻塞 这样会显示出来(先输入左边的,再输入右边的就会显示),左右两边是两个进程 >>追加写入的方式,但空间一直是...控制管道文件 创建管道失败了设置为1 ,如果失败了就exit(1) 谁控制的先运行运行谁就好了 make一下生成两个可执行程序,因为是server控制的,所以要先运行server 运行后就会多一个myfifo命名管道...命名管道的删除 想删除这个myfifo用unlink(成功返回0 ,失败返回-1) 命令行删除 代码也可以删(成功返回0 ,失败返回-1),头文件是unistd.h 创建完文件,5秒后就删除了 思路
import java.util.HashMap; public class Test { public static void main(String[] args) { Employee em1...(em2); System.out.println("em1 equals em2 ?..." +equals); HashMap map = new HashMap(); map.put(em1, "test1"); map.put(em2, "test2"); System.out.println...结果分析: 上述的例子中,我们使用了new Employee("123","louis"); 语句创建了两个完全一样的对象em1,em2,对我们来说,它们就是相同的对象,然后,我们将这两个我们认为相等的对象作为...原因现在读者清晰了:因为em1和em2对象的hashCode()继承自Object,它们返回两个不同的值,即em1 和em2的hashcode值不相同。
一、命名管道 1、与匿名管道的关系 命名管道由mkfifo创建,是一个文件,打开要用open打开 命名管道与匿名管道之间唯一的区别就是它们创建和打开的方式不同,其他基本上相同 命名管道也只能和有“血缘...”的进程进行通信 2、工作原理 通过mkfifo创建,会生成一个文件,这就是我们的命名管道文件,它的大小为0 可以看到它的第一列为p,说明它是特殊文件 在我们对普通文件进行打开的时候,我们要进行的结构其实是这样的...其中这个刷盘的过程就是文件缓冲区中的数据刷新到硬盘上的过程,而我们的fifo文件即命名管道文件是没有刷盘的,所以数据只会待在文件缓冲区里,因为在Linux中,多个进程打开同一个文件所指向的文件缓冲区只有一个...\n"); } // 关闭命名管道 close(fd); return 0; } testr.c #include #include <stdlib.h...if(buffer[0] == 0) break; printf("Received message: %s\n", buffer); } // 关闭命名管道
数值越小优先级越高 vim route.sh 内容如下: ip route flush table net0 ip route add default via 192.168.0.1 dev em1...from 192.168.0.16 table net0 ip route flush table net30 ip route add default via 192.168.30.254 dev em2
前言: 有了前文匿名管道的基础,我们介绍匿名管道的时候就轻松许多了,匿名管道和命名管道的区别主要是在于,匿名管道不需要文件路径,并且匿名管道常用于父子进程这种具有血缘关系的场景,使用命名管道的时候,我们常常用于的情况是两个进程毫无联系...对于匿名管道来说,我们知道文件对象以及文件对象里面的文件对象里面属性集合,操作集合都不会重新创建,对于命名管道来说也是一样的,所以对于内核级别的文件缓冲区也是这个样子的,OS就没有必要创建两个了,毕竟浪费空间时间的事...以上其实算是对于命名管道的原理的部分的简单介绍,其实和匿名管道差不多,本文的主要内容其实还是命名管道的代码编写。...代码编写 那么准备工作是先创建三个文件,分别表示客服端,服务端,以及创建管道的文件,创建命名管道之后,让另外两个进程分别打开管道。...那么我们的第一个任务是了解创建命名管道的函数->mkfifo: 直接man mkfifo查询到的是1号手册的mkfifo,那么我们可以使用试试: 创建了对应管道文件之后,我们可以发现几个特征点,它的名字后面带有