Linux篇 | CentOS6CentOS7Ubuntu1804修改主机名网卡网络

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux篇 | CentOS6CentOS7Ubuntu1804修改主机名网卡网络相关的知识,希望对你有一定的参考价值。

主机名

CentOS6:
修改“/etc/sysconfig/network”文件,建议在把“/etc/hosts”文件里的主机名也改了,因为此文件的作用是:把主机名解析成本地IP地址(127.0.0.0),修改后重启生效,或者用"hostname 新主机名“命令临时设置,之后注销重新登录即可。

CentOS7:
1.配置文件:/etc/hostname ,默认没有此文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain
2.显示主机名信息
hostname或者hostnamectl status
3.设置主机名
hostnamectl set-hostname 新主机名
说明:这条命令最新版Ubuntu系统也适用
4.注销,重新登录
5.恢复默认主机名
删除文件/etc/hostname,就会恢复主机名localhost.localdomain


网卡名

CentOS6网卡名称

  • 接口命名方式:CentOS 6
    • 根据以太网命名:eth[0,1,2,...]
    • 根据ppp拨号网络(不多):ppp[0,1,2,...]
  • 网络接口识别并命名相关的udev配置文件(网卡命名规则文件 ):
    /etc/udev/rules.d/70-persistent-net.rules

CentOS6上修改网卡名称:

1.方法一:修改网卡命名文件
(1).编辑网卡命名规则文件
/etc/udev/rules.d/70-persistent-net.rules

(2).查看网卡:
dmesg |grep –i eth 或者 ethtool -i eth0

(3).卸载网卡驱动:
modprobe -r e1000 或者 rmmod e1000

(4).装载网卡驱动:
modprobe e1000

(5).查看
ifconfig 或者 ip a

2.方法二:使用新网络工具“ip a”
查看网卡“ip a”,修改网卡名“eth0”为“eth1”
(1)禁用网卡“eth0”
ip link set eth0 down
(2)查看网卡"ifconfig"或者"ip a"("ip a"看到down状态)
(3)修改网卡名
ip link set eth0 name eth1
(4)查看网卡名是否修改成功“ip a”
(5)启用网卡“eth1”
ip link set eth1 up

CentOS7网卡名称

  • 网卡名为"ens"开头,如“ens33”
  • 网络接口识别并命名相关的udev配置文件(网卡命名规则文件 ):
    /etc/udev/rules.d/70-persistent-net.rules

CentOS7上修改网卡名称:

1.方法一:使用“nmcli”命令
(1).在/etc/sysconfig/network-scripts/目录,创建文件名为ifcfg-XXX的文件,注意“XXX”可以随意写,其他不行,一般都会与网卡名一样,如“ifcfg-eth1”。
(2).在文件里添加网络变量,必有的变量有:DEVICE(设备名或叫网卡名,举例是eth1)、NAME(网络名,举例是con-eth1)、ONBOOT(开机自启)、TYPE(网络连接类型)、BOOTPROTO(网络获取的方式:动态或静态)、IPADDR(IP地址)NETMASK或PREFIX(都是子网掩码)、GATEWAY(网关)一般网卡名和网络名还有文件名中的"xxx"名字都一样。
(3).查看当前网络设置“nmcli connection”,会看到当前有一个网卡设备名是“eth1”
(4)重新加载网络设备“nmcli connection reload”
(5).在查看网络设置“nmcli connection”,会看到新配置的网络名
(6).将配置好的网卡设备名(eth1)文件“ifcfg-eth1”替换当前网卡“eth1”生效的文件。nmcli connection up con-eth1(网络名)
(7).在查看网络设置“nmcli connection”,会看到新配置的网络名生效,原来的网络名失效

2.方法二:传统命名方式
(1) 编辑/etc/default/grub配置文件
在GRUB_CMDLINE_LINUX行添加“net.ifnames=0”,如下:
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0"
或:修改/boot/grub2/grub.cfg(非常不推荐)

(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
说明:grub2-mkconfig会以/etc/default/grub文件为模板,根据当前系统配置,生成/etc/grub2.cfg文件。“-o”是覆盖的意思。所以,上面的命令是,以/etc/default/grub文件为模板,根据当前系统配置,生成/etc/grub2.cfg文件去覆盖原有的/etc/grub2.cfg文件。其中/etc/grub2.cfg文件是软连接。

(3) 重启系统


网络配置

网络配置方式分静态和动态的.

说明:
Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。
ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。

  • 静态指定"
    • ifconfig, route, netstat
    • ip: object {link, addr, route}, ss, tc
    • system-config-network-tui,setup
    • 配置文件
  • 动态分配:DHCP

注释:CentOS7新增加了网络配置工具:

图形界面工具:nm-connection-editor
字符界面配置工具:nmtui
命令行工具:nmcli(需掌握,这个在CentOS6也有,但功能不像CentOS7上丰富)

一。修改IP地址、子网掩码、网关

修改网络的配置(或叫脚本)文件:
“/etc/sysconfig/network-scripts/ifcfg-ethXX”  
格式如下(等号左边必须大写,因为是变量):  
DEVICE=ethXX    \网卡名、设备名  
NAME=XX         \网络名称  
BOOTPROTO=static(static和none都表示静态分配)或者写dhcp动态分配  
    \如果是动态分配,就算下面设置了IP、子网掩码、网关、DNS都不起作用)
NETMASK=子网掩码,示例:255.255.255.0  
PREFIX=24也是子网掩码的表示方法,“24”表示“255.255.255.0”  
ONBOOT=yes      \开机网卡是否自启。“yes”表示同意开机自启,“no”表示不同意
GATEWAY=网关      \查看网关用“route -n”
DNS1=DNS地址      \DNS可以把网址转换成IP,除了配置自己公司的DNS地址,还可以添加互联网上的DNS
DNS2=114.114.114.114    \电信的DNS服务器
DNS3=8.8.8.8        \谷歌的DNS服务器地址
DNS4=1.1.1.1        \号称世界最快的DNS服务器,存放在澳大利亚,我们因为被“墙”阻挡,所以体验不到
DNS5=223.6.6.6或223.5.5.5       \都是阿里DNS
DNS6=119.29.29.29               \腾讯DNS
DNS7=180.76.76.76               \百度DNS
查看生效的NDS“cat /etc/resolv.conf”

在上面修改文件后,要想使文件生效,需要重启网络服务即可。
可在CentOS6,“NetworkManager服务(产线上一般都会停止这个服务)”会和“network网络服务”冲突,导致无法使配置文件生效。要生效有两种方法:
1.重启“NetworkManager服务”
service NetworkManager restart
2.关闭“NetworkManager服务”,重启“network网络服务”
Centos6: service NetworkManager status  查看服务状态
    chkconfig NetworkManager off    \关闭自动启动
    service NetworkManager stop     \关闭服务
    service network restart         \重启网络服务
    注释:“NetworkManager服务停止后,在Centos6图形化界面,网络图标会消失。
Centos7: systemctl status NetworkManager 查看服务状态
    systemctl stop NetworkManager   临时停止
    systemctl disable NetworkManager 下次开机即停止服务

二。配置网络接口(即IP、子网掩码等)

ifconfig命令:(立即生效,重启后失效)

ifconfig [interface(接口)]    \查看某某接口
ifconfig -a                     \查看所有接口(包含未生效的接口)
ifconfig 接口 [up|down]         \开启或禁用接口
ifconfig 接口 IP/netmask [up]   \配置接口的IP地址网关并开启接口
ifconifg 接口  IP netmask NETMASK   \配置接口的IP和子网掩码

三。路由管理命令

1)查看路由表:route -n
    路由表(重点理解)由关键的四项组成:
    目标网络(Destination):目标网络的网络ID
    网关(Gateway)   :到达目标网络,将数据包发送给下一个路由器的接口IP
    子网掩码(Genmask)    :目标网络的网络ID的子网掩码
    接口(Iface)     :从本设备的哪个接口出去,就能到达目标网络
2)添加路由表:route add
格式:route add [-net|-host] target [netmask Nm] [gw Gw] [[dev]If]
        添加    某网卡或本机    目标    子网掩码    网关   设备网卡名
    示例1:目标:192.168.1.3 网关:172.16.0.1
    route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
    示例2:目标::192.168.0.0 网关:172.16.0.1
    方法一:route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
    方法二:route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
3)配置默认路由(即default或0.0.0.0,表示任何网络),网关:172.16.0.1
    route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
    route add default gw 172.16.0.1
4)删除路由表:route del
格式:route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
        删除    某网卡或本机  目标    网关   子网掩码      设备网卡名
    示例1:目标:192.168.1.3 网关:172.16.0.1
    route del -host 192.168.1.3
    示例2:目标:192.168.0.0 网关:172.16.0.1
    route del -net 192.168.0.0 netmask 255.255.255.0
5)route默认没有补全命令,需要安装“bash-completion.noarch”包
    `yum -y install bash-completion.noarch`
    安装后,需要注销,重新登录就生效。

四。显示网络连接

1.netstat命令

(1)格式:netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口
-e:扩展格式
-p: 显示相关进程及PID
-r: 显示内核路由表

(2)示例
常用组合:-tan, -uan, -tnl, -unl
显示路由表:netstat {--route|-r} [--numeric|-n]
显示接口统计数据:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p][--numeric|-n]

(3)示例
1)当前网络的连接情况(已连接的)              netstat -nt
2)当前网络的连接情况(连接和没连接的网络)     netstat -ntua
3)监听当前程序使用的端口                    netstat -nlt
4)查看某端口被什么程序使用                  netstat -nltp
    示例:查看端口6000被什么程序使用(面试题),有两种方法:
        方法一(推荐):lsof -i :6000
        方法二:netstat -nltp :6000
5)详细查看某端口被什么程序使用              netstat -nltpe
6)网卡的连接情况 : netstat  -i
    Iface(网卡名)、MTU(MTU的大小)、RX-OK(接收的数据报文)、TX-OK(发送的数据报文)
    通过“watch -n 0.5 netstat -i”可观察网卡在0.5秒内使用的情况
    “watch -n 0.5 netstat -IechX”可观察网卡echX在0.5秒内使用的情况

2.ss命令

相比netstat,ss是重点

ss命令和netstat实现的功能相似,而且netstat的选项ss都可以用。ss还有很多netstat没有的功能,并且,在用户连接数很多的时候,ss命令可以快速的显示,效率更高。

(1)格式:ss [OPTION选项]... [FILTER过滤]

(2)netstat通过遍历proc来获取socket信息;ss使用netlink与内核tcp_diag模块通信获取socket信息

(3)[OPTION选项]:
    -t: tcp协议相关
    -u: udp协议相关
    -w: 裸套接字相关
    -x:unix sock相关
    -l: listen状态的连接
    -a: 所有
    -n: 数字格式
    -p: 相关的程序及PID
    -e: 扩展的信息
    -m:内存用量
    -o:计时器信息
常用组合:-tan, -tanl, -tanlp, -uan

(4)FILTER : [ state TCP-STATE ] [ EXPRESSION ]
    1)[ state TCP-STATE ]:TCP的各种状态表达式
        TCP的常见状态:
            tcp finite state machine(有限状态机共11种):
                LISTEN: 监听
                ESTABLISHED:已建立的连接
                FIN_WAIT_1
                FIN_WAIT_2
                SYN_SENT
                SYN_RECV
                CLOSED
    2)[ EXPRESSION ]
        dport(目标端口) =
        sport(源端口) =
        示例:‘(dport = :ssh or sport = :ssh)‘目标端口或者源端口是ssh

五。配置Linux网络属性:ip 命令(重要)

说明:
ip命令是很强大的网络工具,已经快要替换老牌的ifconfig,并且它能实现ifconfig很多没有的功能,所以这个命令很重要,这里只是列出ip命令常用的一>些命令,具体可以查看man帮助或help。

格式:  
ip [ 选项 ] 目标 { [子命令:link | addr | route]  help(子命令帮助) }
“[]”表示可选项,可写可不写;“{}”是必须项,跟着命令写的。

1.配置网络设备“ip link”,可查看数据链路层的信息
    (1)激活或禁用指定接口“up或down”
        ip link set ethXX up    \激活ethXX
        ip link set ethXX down  \禁用ethXX
    (2)激活或禁用指定接口““ifup或ifdown”
        ifup ethXX              \激活ethXX
        ifdown ethXX            \禁用ethXX
    说明:
        1)ifup与ifdown两个程序其实是script(脚本)而已,它会直接到 /etc/ sysconfig/network-scripts目录下搜索对应的配置文件,例如ifup eth0,它会找出ifcfg-eth0这个文件的内容,然后加以设置

        2)这两个程序主要是搜索设置文件(ifcfg-ethx)来进行启动与关闭的,所以在使用前请确定ifcfg-ethx是否真的存在于正确的目录内,否则会启动失败。

        3)如果以ifconfig eth0来设置或者是修改了网络接口后,就无法再以ifdown eth0的方式来关闭了。因为ifdown会分析比较目前的网络参数与ifcfg-eth0是否相符,不符的话,就会放弃这次操作。因此,使用ifconfig修改完毕后,应该要以ifconfig eth0 down才能够关闭该接口。
    (3)查看接口状态
        show ethXX      \查看接口状态
        show up ethXX   \查看激活状态的接口
    (4)查看数据链路层信息“ip link”
        如果电脑哪天网络不通,可使用“ip link”查看网卡是哪种状态。
        “UP”状态:网线没问题
        “DOWN”状态:网线有问题

2.配置网络设备“ip addr”,可查看或设置网络层地址

    (1)添加或删除
    ip addr { add | del } IFADDR dev STRING

        1)给网卡添加IP地址时指明网卡别名[label LABEL]
        ip addr { add | del } IFADDR dev STRING label 网卡别名
        示例:ip addr add 172.16.100.100/16 dev eth0 label eth0:0
            使用命令的方式设置别名,重启服务就没了,若要永久生效,需要写配置文件vi /etc/sysconfig/network-scripts/ifcfg-eth0:0。
        注意设置别名时必须是静态ip,不能是自动获取。
        如果不想要这个别名,直接删除该文件,然后重启“network”服务即可

        2)指明作用域:[scope {global|link|host}]
        global: 全局可用,即两个接口进来的数据我都可以响应。是默认状态。
        link: 仅链接可用,进来的数据只有直接相连的那个接口能够响应
        host: 本机可用,即只能自己访问

技术图片

        3)指明广播地址:[broadcast ADDRESS]

    (2)ip address show - look at protocol addresses
        [dev DEVICE]
        [label PATTERN]
        [primary and secondary]

    (3)ip addr flush 使用格式同show
        ip addr add 172.16.100.100/16 dev eth0 label eth0:0
        ip addr del 172.16.100.100/16 dev eth0 label eth0:0
        ip addr flush dev eth0 label eth0:0

3.配置网络设备“ip route”(路由表管理)

    (1)添加路由:ip route add
        ip route add TARGET via GW dev IFACE src SOURCE_IP
            TARGET:
                主机路由:IP
                网络路由:NETWORK/MASK
        示例1:ip route add 192.168.0.0/24 via 172.16.0.1
        示例2:ip route add 192.168.1.13 via 172.16.0.1

    (2)添加网关:ip route add default via GW dev IFACE
        ip route add default via 172.16.0.1

    (3)删除路由:ip route del TARGET

    (4)显示路由:ip route show|list

    (5)清空路由表
        ip route flush [dev IFACE] [via PREFIX]
        ip route flush dev eth0
        ip route flush(全清空)

说明: 
使用命令的方式增加或者删除路由记录,都是临时的,如果重启network服务,那么操作就失效了。想要永久生效可以编辑配置文件/etc/sysconfig/network-scripts/route-eth*,步骤如下:   
    1、 vim etc/sysconfig/network-scripts/route-eth0 
        文件内容有两种写法:
            1)单行
                netid/mask via gw  比如2.2.2.2/16 via 10.0.0.0
            2)多行
                ADDRESS#=目标网络
                NETMASK#=子网掩码
                GATEWAY#=网关
 注意:
    同一路由记录的#数字必须一样,因为可能会添加多条路由,数字一样的为同一组。
    同一个文件里,两种格式不能混合着写。
          2、重启服务
                 Centos6:  service network restart
                 Centos7:  systemctl restart network 

六。nmcli命令

  • 建议使用传统的方法修改网络,即修改配置文件。最小化安装的CentOS系统没有nmcli命令
  • nmcli是网络配置工具,功能丰富。
  • 优点是可让网卡关联多套配置。
    • 如在公司会议室需要使用网络名office-eth1的网络配置,获取类型是静态获取IP地址;在办公室使用网络名为bangong-eth1的网络配置,获取类型是动态DHCP获取。
格式:nmcli [OPTIONS(选项)] OBJECT(过滤) { COMMAND(命令) | help }

1.常用选项:  
    device:显示和管理网络接口  
        选项具体使用可看帮助 nmcli device help
    connection:启动,停止和管理网络连接
        选项具体使用可看帮助 nmcli device help
2.修改IP地址等属性:
    nmcli connection modify IFACE(网卡设备的网络名) [+|-]setting(设置).property(属性) value(值)

    “setting.property”有很多,Tab键可补全,常用的有:
        ipv4.addresses
        ipv4.gateway
        ipv4.dns1
        ipv4.method manual | auto

执行“nmcli connection modify”和修改"ifcfg-*"文件的对应关系:

技术图片

3.生效命令
    1)修改网络配置文件,生效的方式
        方法一:systemctl restart network   \重启网络服务
        方法二:nmcli con reload
    2)使用nmcli命令后,生效的办法
        方法一:nmcli con down eth0 ;nmcli con up eth0
        方法二:nmcli con reload

显示

1.显示网络状态nmcli connection  
2.显示网络设备状态nmcli device status  
3.显示网络连接配置及借款属性nmcli connection show 网络名  
4.显示所有包括不活动连接nmcli con show
5.显示所有活动连接nmcli con show --active  

新建、删除、启用

1.创建新连接default,IP自动通过dhcp获取  
nmcli con add con-name default type Ethernet ifname eth0  
2.删除连接  
nmcli con del default  
3.创建新连接static ,指定静态IP,不自动连接  
nmcti con add con-name static ifname eth0 autoconnect no typeEthernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254    
4.创建(con-name)网络名“meeting-eth1”,针对(ifname)网卡eth1,类型(type)是ethernet,开机自启(autoconnect)  
nmcli connection add con-name meeting-eth1 type ethernet autoconnect yes ifname eth1  
5.启用static连接配置  
nmcli con up static  
6.启用default连接配置  
nmcli con up default  
7.查看帮助  
nmcli con add help  

修改

1.修改网卡设备的信息“nmcli connection modify”  
    示例:修改网卡设备eth1的网络名为office-eth1
        nmcli connection modify eth1 connection.id office-eth1
2.修改连接设置  
nmcli con mod “static” connection.autoconnect no  
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8  
nmcli con mod “static” ipv4.addresses “172.16.X.10/24 172.16.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16  
3.设置DNS  
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes等价于:  
修改/etc/resolv.conf文件中PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取。DNS设置的存放在此文件。  

nmcli实现bonding

1.添加bonding接口  
添加binding,类型是bond,名字是mybond0,接口叫bond0,模式是modeactive-backup  

nmcli con add type bond con-name mybond0 ifname bond0 modeactive-backup  

2.添加从属接口  
让两个网卡接口“ens3”和“ens7”加入到bonding
nmcli con add type bond-slave ifname ens7 master bond0  
nmcli con add type bond-slave ifname ens3 master bond0  
注:如无为从属接口(网卡设备)提供连接名(网络名),则该名称是接口名称加类型构成  

3.给bonding添加IP地址  

4.要启动绑定,则必须首先启动从属接口  
nmcli con up bond-slave-eth0  
nmcli con up bond-slave-eth1  

4.启动绑定  
nmcli con up mybond0  

Ubuntu的配置

1.修改主机名
    hostnamectl set-hostname ubuntu1804
2.查看ip和gateway(网关)
    ip addr
    route -n
3.查看DNS
    ls -l /etc/resolv.conf
4.查看主机名、IP地址、域名、DNS资源记录、服务的状态  
    systemd-resolve --status

5.网卡名
    默认ubuntu的网卡名称和Cent OS 7类似,如:ens33,ens38等
    修改网卡名称为传统命名方式,与CentOS7的修改方式一样:
        1.修改配置文件 vi /etc/default/grub
        2.在GRUB_CMDLINE_LINUX添加内容
            GRUB_CMDLINE_LINUX="net.ifnames=0" 
        3.生效新的grub.cfg文件
            grub-mkconfig -o /boot/grub/grub.cfg
        4.重启系统生效 reboot

6.Ubuntu的网络配置
详情可查看官方文档:
https://help.ubuntu.com/lts/serverguide/network-configuration.html.zh-CN

注意:配置文件中的间隔很严格,一般是两个字节,错误则网络不通

1)配置动态IP地址:
cat /etc/netplan/01-netcfg.yaml
    network:
      version: 2
      renderer: networkd
      ethernets:
      ens33:
        dhcp4: yes
修改网卡配置文件后需执行命令生效:netplan apply

2)配置静态IP地址:
cat /etc/netplan/01-netcfg.yaml
    network:
    version: 2
    renderer: networkd
    ethernets:
    eth0:
      addresses:
        - 192.168.6.10/24
        - 10.10.10.10/24(可配置多个IP地址)
      gateway4: 192.168.6.1
      nameservers:
        search: [mydomain, otherdomain]
        addresses: [223.5.5.5, 8.8.8.8, 1.1.1.1]

以上是关于Linux篇 | CentOS6CentOS7Ubuntu1804修改主机名网卡网络的主要内容,如果未能解决你的问题,请参考以下文章

大数据之路之Linux篇

Linux命令篇

Linux基础篇

Linux学习初级篇-鸟哥的Linux私房菜 基础学习篇(第四版)

Linux学习初级篇-鸟哥的Linux私房菜 基础学习篇(第四版)

Linux基础篇--linux基础和帮助用法