Linux中的网络配置
目录
网卡的配置
网卡命名的不同:
- Rhel6 及其之前命名都是以 eth 开头,第一块网卡就叫 eth0 ,第二块网卡就叫 eth1
- Rhel7 开始命名规则变了,eno1代表由主板BIOS内建的网卡 ;ens1代表由主板BIOS内建的PCI-E界面的网卡;enp2s0 代表PCI-E界面的独立网卡,可能有多个网卡接口,因此会有s0,s1的编号。以下是命名的规则
en:eethernet 以太网-双绞线
wl:wirelessLAN:无线网卡
ww:WAN广域网:串行线缆
o:on-board板载网卡
s:hotplug热插拔
p:PCI接口
N:序号或者ID
修改网卡名称
Rhel7中网卡的命名很多人觉得不熟,也不如以前那么直观。所以,我们可以把网卡的名称改成以前的 eth0 的形式
- vim /etc/default/grub 找到 GRUB_CMDLINE_LINUX行,直接到最后添加,net.ifnames=0 biosdevname=0
- grub2-mkconfig -o /boot/grub2/grub.cfg 更新配置文件
- 进入 /etc/sysconfig/network-scripts/ 目录,将网卡配置文件名称修改为ifcfg-eth0: mv ifcfg-eno16777736 ifcfg-eth0 然后打开修改后的配置文件 ifcfg-eth0 将NAME修改为eth0: NAME=eth0
- reboot 重启,使网卡名称重置
脚本实现修改网卡名称
#! /bin/bash
# Author=谢公子
# Date=2018-10-10
NAME=`ifconfig | awk -F: 'NR==1{print $1}'` ##网卡的名字
path="/etc/sysconfig/network-scripts/ifcfg-$NAME" ##网卡配置文件的路径
sed -i '/^GRUB_CMDLINE_LINUX/s/$/net.ifnames=0 biosdevname=0/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
sed -i '/^NAME/d' $path
sed -i '$a NAME='eth0'' $path
mv $path /etc/sysconfig/network-scripts/ifcfg-eth0
reboot
修改 hostname主机名
- 临时配置: hostname xie (Rhel6、7)
- 永久配置: hostnamectl set-hostname xie 或 打开 /etc/hostname ,修改为 xie (Rhel7)
网络测试命令
- ifconfig 、 ip address 、 ip address show 、nmcli device show (Rehl7) 查看网卡信息
- ip route 、 route -n 查看路由表
- ip neigh 查看邻居,也就是同一网段的地址。相当于一个ARP地址表
- ip -s link show eth0 可以看到网卡设备接受和发送数据包的情况
- tarceroute / tracepath www.baidu.com 跟踪到达目标主机所经过的每一跳
网卡的设置(临时)
- 设置网卡ip: ifconfig eth0 192.168.10.10/24 或 ifconfig eth0 192.168.10.10 netmask 255.255.255.0
- 设置网卡MAC地址:ifconfig eth0 hw ether 00:1c:3g:df:sf:4f
- 设置网卡虚拟ip: ifconfig eth0:0 10.10.10.10
- 启用网卡:ifconfig eth0 up 或 ifup eth0
- 禁用网卡:ifconfig eth0 down 或 ifdown eth0
路由条目的设置(临时)
- 添加路由表中默认网关记录:route add default gw 网关ip
- 添加路由表中指定网段的路由记录:route add -net 10.10.10.10/24 gw 网关ip
- 删除路由表中默认网关记录:route del default gw 网关ip
- 删除指定网段路由记录:route del -net 10.10.10.10/24
网卡、路由、DNS的永久设置(Rhel6、7):
Rhel7中,网卡配置文件在 /etc/sysconfig/network-script/ifcfg-xxxx ,路由条目和网关在同一个目录,只不过名称为 route-xxx,如果之前不存在这个文件,则新建该文件, xxx为网卡名称。hosts文件在 /etc/hosts 下,DNS配置文件在 /etc/resolv.conf
//修改网卡配置,vim /etc/sysconfig/network-script/ifcfg-xx
DEVICE=eth0 //设备名称
ONBOOT=yes|no //是否启用该设备
BOOTPROTO=none|static|dhcp //手动(none/static)还是自动(dhcp)
IPADDR1=192.168.182.123 //根据自动获取的IP配置
PREFIX1=24 //子网掩码
IPADDR2=100.100.100.100 //第2个ip
PREFIX2=24 //第2个ip的掩码
GATEWAY=192.168.182.1 //网关
TYPE="Ethernet" //网络类型
HWADDR=00:ff:ce:88:82:1d //MAC地址
NAME="eth0" //连接名
DNS1=8.8.8.8 //DNS1 会自动添加到 /etc/resolv.conf文件中
DNS2=114.114.114.114 //DNS2
//永久增加一个路由条目 vim /etc/sysconfig/network-script/route-xx (网关地址必须是我们主机可达的)
10.1.0.0/8 via 192.168.10.10
//永久增加一个DNS解析,打开hosts文件 vim /etc/hosts
192.168.100.100 www.baidu.com
//永久增加一个DNS服务器,打开resolv.conf文件 vim /etc/resolv.conf
nameserver 8.8.8.8
NetworkManager的使用
Rhel6和7中都采用了网络管理器(NetworkManager)管理网络( Rhel6中建议关闭NetworkManager,因为支持不完善,经常出错),NetworkManager是一个动态的网络控制器与配置系统,它可在网络设备保持可用和连接时对设备进行操作。NetworkManager是服务名就是NetworkManager.service ,但是命令是 nmcli 。在Rhel7中,一个网卡设备可以有多个connection连接,但是同一时刻只能启用其中一个connection连接。每新建一个连接,都会在 /etc/sysconfig/network-scripts/ 目录下新建文件。这样的好处是针对一个网络接口,可以设置多个网络连接,比如静态IP和动态IP,再根据需要激活响应的connection连接。(connection连接就相当于是对网卡的一个配置,多个connection就是多个配置,但是同一时刻只能激活一个配置)
NetworkManager提供的工具:
- nmcli (network manager command line interface)
- nmtui (network manager text user interface)
- nm-connect-editor(network manager-connect-editor)
NetworkManager的使用:
- 查看所有连接:nmcli connection show
- 查看某个连接具体信息:nmcli connection show xie
- 查看所有网卡物理状态:nmcli device status
- 查看所有网卡配置:nmcli device show
- 查看指定网卡配置:nmcli device show eth0 或 ifconfig eth0
- 重启网卡: systemctl restart network 或 nmcli connection reload;nmcli connection down xie;nmcli connection up xie
connection连接的设置(Rhel7):
- 为网卡增加新的连接:nmcli connection add con-name eth0-manual ifname eth0 type ethernet ip4 192.168.20.20/24 gw4 192.168.20.254 //建立连接的同时指定ip和网关,ipv4.method=manual
- 为网卡增加新的连接:nmcli conection add con-name eth0-auto ifname eth0 type ethernet //建立连接但是不指定ip和网段,自动获取ip和网关 , ipv4.method=auto
- 删除一个连接:nmcli connection delete eth0-auto
- 修改连接的ip:nmcli connection modify eth0-auto ipv4.addresses 192.168.20.100/24
- 给连接增加一个从ip:nmcli connection modify eh0-auto +ipv4.addresses 192.168.20.200/24
- 给连接增加DNS服务器:nmcli connection modify eth0-auto ipv4.dns 192.168.20.254
- 激活连接:nmcli connection up eth0-auto
- 关闭连接:nmcli connection down eth0-auto
Team网卡绑定
在 linux 中, Rhel7 之前都是使用 bond 机制来实现多网络绑定同一个 IP 地址,来对网络提供访问,并按不同的模式来负载均衡或者轮回接替管理处理数据。而到了 Rhel7 之后,提供了一种强大的工具, nmcli 工具命令,使用此工具,将会根据命令参数的配置来重新生成特定的配置文件来供网络接口使用,方便而又灵活。在 Rhel7中,不再使用 bond 机制定义,而是使用网路组 team 机制,把 team 组当作一个设备
Team网络组的模式:
- broadcast:每个网卡都传送数据包
- roundrobin:每个网卡轮询方式传送数据
- activebackup:网卡之间有主备,主传送数据包,备的不传送,主网卡down了,备才传送
- loadbalance:监控流量并使用哈希函数,使得每个网卡传送的数据包达到相等
- lacp:需要借助交换机,实现高级的负载均衡
Team的配置:
- 创建一个Team设备,命名为team0: nmcli connection add type team con-name xie ifname team0 config ' { "runner":{" name " : " loadbalance " } }'
- 设置team0组的ip地址获取方式: nmcli connection modify xie ipv4.method manual
- 设置team0组的ip、网关等信息: nmcli connection modify xie ipv4.addresses 192.168.100.100/24 ipv4.gateway 192.168.100.254
- 将指定网卡加入team0中: nmcli connection add type team-slave connection-name team0-port1 ifname eth1 masher team0
- 开启/关闭 team0:nmcli connection up/down team0
- 查看team0状态:teamdctl state team0
管理Team0的网络组成员:
- 从team0中移除eth1: nmcli device disconnect eth1
- 从team0中增加eth1: nmcli device connection eth1
- 将team0组中的port1关闭:nmcli connection down team0-port1
- 将team0组中的port1开启:nmcli connection up team0-port1
Centos6.5、Redhat7、Kali网卡配置的不同
Centos6.5 和 Redhat7 中网络服务是 network ,而Kali中是 networking 。
首先三者都有 NetworkManager管理工具,但是Centos6.5中支持的不好,经常容易出错,所以建议在Centos6.5中关闭NetworkManager。
Centos6.5和Redhat7中的网卡的配置文件都是在目录:/etc/sysconfig/network-scripts/ 下,每个连接都有对应 ifcfg-连接名 的配置文件。因为Centos6.5中建议关闭NetworkManager管理工具,所以Centos6.5中的网卡配置文件就是 ifcfg-eth0 ,而Redhat7中的话,每个连接都会在该目录下有一个 ifcfg-连接名 的配置文件
而kali的网卡配置文件则是:/etc/network/interfaces 这个文件,这个文件用于描述主机中所有的网络接口的信息,不论Linux主机中使用DHCP获取ip地址还是配置使用静态ip地址,都需要对该文件进行修改。
Kali桥接模式配置静态ip
修改网卡配置文件:vim /etc/network/interfaces
修改dns配置文件:vi /etc/resolv.conf
重启网络:service networking restart
防止网卡没开,再开一遍:ifup eth0
相关文章:Redhat中网络启动错误解决办法( Failed to start LSB: Bring up/down networking RTNETLINK answers: File exists)
Linux中的网络配置的更多相关文章
- Linux中CentOS网络配置以及与Xshell建立远程连接
为centos配置网络 (1)第一步 点开虚拟机的设置,如下图做相关的设置: 网络连接要选择桥接模式,其他的勾选就按照上图的即可,勾选完成点击确定. (2)第二步 点击VMware的编辑选项,找到“虚 ...
- Linux系统安装和网络配置
系统下载 CentOS 6.x 50% 6.9 ---- 常用 CentOS 7.x 50% 7.2 ----常用 官网-国外 https://wiki.centos.org/Downloa ...
- Linux中redis安装配置及使用详解
Linux中redis安装配置及使用详解 一. Redis基本知识 1.Redis 的数据类型 字符串 , 列表 (lists) , 集合 (sets) , 有序集合 (sorts sets) , 哈 ...
- 【转】Linux - CentOS 7网络配置
Linux - CentOS 7网络配置 https://blog.csdn.net/J080624/article/details/78083988 安装完VM后,需要进行网络配置.第一个目标为 ...
- Linux系统基本网络配置之ifconfig命令
Linux系统基本网络配置之ifconfig命令 一.Linux系统的网络配置基本包括:网络IP的配置.网关路由的配置.主机DNS的配置.主机名的配置等,本篇注重介绍网络IP的配置. 二.Linux系 ...
- (转)Linux系统基础网络配置老鸟精华篇
Linux系统基础网络配置老鸟精华篇 原文:http://blog.51cto.com/oldboy/784625 对于linux高手看似简单的网络配置问题,也许要说出所以然来也并不轻松,因此仍然有太 ...
- Linux 7.X 网络配置
Linux 7.X 网络配置 环境: 笔记本中安装了虚拟机,在虚拟机中安装了Redhat 7.4版本的操作系统,现配置该操作系统网络.(IP.网关等) 相关指令如下: # nmcli connecti ...
- Linux中VSFTP的配置
配置VSFTP服务器: 1.安装VSFTP,可以参考Linux 中yum的配置来安装: yum installvsftpd.x86_64 -y 2.修改SELinux: setenforce 0 查看 ...
- Linux 中的网络数据包捕获
Linux 中的网络数据包捕获 Ashish Chaurasia, 工程师 简介: 本教程介绍了捕获和操纵数据包的不同机制.安全应用程序,如 VPN.防火墙和嗅探器,以及网络应用程序,如路由程序,都依 ...
随机推荐
- Semaphore实战
简介 Semaphore信号量计数器.和CountDownLatch,CyclicBarrier类似,是多线程协作的工具类,相对于join,wait,notify方法使用起来简单高效.下面我们主要看看 ...
- C#扩展方法的一分钟小例子
扩展方法是静态方法,是类的一部分,但没有在类的源代码中,就像一个补丁 首先创建一个静态类,然后创建一个静态方法,重点是静态方法的参数 public static class xExtension { ...
- cve-2019-2725 反序列化远程代码执行
描述:部分版本WebLogic中默认包含的wls9_async_response包,为WebLogic Server提供异步通讯服务.由于该WAR包在反序列化处理输入信息时存在缺陷,攻击者可以发送精心 ...
- python爬虫(正则取数据)读取表格内的基金代码后爬取基金最新净值,同时写到对应的表格中,基于最近一次购买净值计算出涨跌幅(名字有点长)
最近基金跌的真够猛,虽说是定投,但大幅度下跌,有时候适当的增加定投数也是降低平均成本的一种方式 每天去看去算太费时间,写了个爬虫,让他自动抓数据后自动计算出来吧 实现逻辑: 1.创建了一个excel表 ...
- mongodb 聚合(Map-Reduce)
介绍 Map-reduce 是一种数据处理范式,用于将大量数据压缩为有用的聚合结果.对于 map-reduce 操作,MongoDB 提供MapReduce数据库命令. MongoDB中的MapRed ...
- 使用代码生成工具快速开发ABP框架项目
在一般系统开发中,我们一般要借助于高度定制化的代码生成工具,用于统一代码风,节省开发时间,提高开发效率.不同的项目,它的项目不同分层的基类定义不同,我们需要在框架基类的基础上扩展我们的业务类代码,尽量 ...
- NET 5.0 Swagger API 自动生成MarkDown文档
目录 1.SwaggerDoc引用 主要接口 接口实现 2.Startup配置 注册SwaggerDoc服务 注册Swagger服务 引用Swagger中间件 3.生成MarkDown 4.生成示例 ...
- java中常见的内存泄露的例子
JAVA 中的内存泄露 Java中的内存泄露,广义并通俗的说,就是:不再会被使用的对象的内存不能被回收,就是内存泄露. Java中的内存泄露与C++中的表现有所不同. 在C++ ...
- python torndb模块
一.torndb概述 torndb是一个轻量级的基于MySQLdb封装的一个模块,其是tornado框架的一部分.其项目主页为:https://github.com/bdarnell/torndb . ...
- Ajax数据爬取--爬取微博
Ajax Ajax,即异步的JaveScript和XML.它不是一门编程语言,而是利用JaveScript在保证页面不被刷新,页面链接不改变的情况下与服务器交换数据并更新部分网页的技术. 对于传统的网 ...