Linux网络配置

1、基本网络配置

将Linux主机接入到网络,需要配置网络的相关设置

一般包括如下内容

  • 主机名
  • IP/nemask
  • 路由:默认网关
  • DNS服务器

    主DNS服务器

    次DNS服务器

    第三个DNS服务器

1.1Centos 6 之前版本的网卡名称

接口命名方式:Centos 6

以太网:eth[0,1,2...]

网络接口识别并命名相关的udev配置文件:

/etc/udev/rules.d/70-persistent-net.rules

[root@centos6 ~]# cat /etc/udev/rules.d/70-persistent-net.rules 
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:e8:6a:fe", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

2.1网络配置命令

  • 静态指定:

  ifconfig,route,netstat

  ip:object{link,addr,route},ss,tc

  system-config-nework-tui,setup

配置文件

  • 动态分配:DHCP:Dynamic Host Configuration Protocol

2.1.1ifconfig命令

来自于net-tools包,建议使用ip代替

基础安装的系统,没有ifconfig这个命令
安装
yum  install net-tools 
[root@centos7 ~]#ifconfig eth0 10.0.0.68 netmask 255.255.0.0

#清除eth0上面的IP地址
[root@centos7 ~]#ifconfig eth0 0.0.0.0

#启用和禁用网卡
[root@centos7 ~]#ifconfig eth0 down
[root@centos7 ~]#ifconfig eth0 up

#对一个网卡设置多个IP地址

[root@centos7~]$ifconfig eth0:1 192.168.1.123/24
[root@centos7~]$ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.77 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::250:56ff:fe39:9ee0 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:39:9e:e0 txqueuelen 1000 (Ethernet)
RX packets 1665 bytes 137271 (134.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1352 bytes 100196 (97.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.123 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:50:56:39:9e:e0 txqueuelen 1000 (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

2.1.2 route命令

路由表管理命令

路由表主要构成:

  • Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路 由,优先级最低
  • Genmask:目标网络对应的netmask
  • Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
  • Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果 是直连网络,gateway是0.0.0.0
  • Metric: 开销cost,值越小,路由记录的优先级最高

查看路由表:

route

route -n

 

添加:route add

route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]

删除:route del 

route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

静态路由实验仅供参考

 2.1.3 netstat命令

来自于net-tools包,建议使用 ss 代替

显示网络连接:

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

常用组合:

-tan, -uan, -tnl, -unl

 

 

 2.1.4 IP命令

来自于iproute包,可用于代替ifconfig

ip命令格式

ip [ OPTIONS ] OBJECT { COMMAND | help }

IP命令说明

OBJECT := { link | addr | route }
ip link - network device configuration
set dev IFACE,可设置属性:up and down:激活或禁用指定接口,相当于 ifup/ifdown
show [dev IFACE] [up]::指定接口 ,up 仅显示处于激活状态的接口
man帮助:ip(8), ip-address(8), ip-link(8), ip-route(8)
#禁用网卡
ip link set eth1 down
#网卡改名 ip link
set eth1 name wangnet
#启用网卡 ip link
set wangnet up
#网卡别名 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
2.1.4.1 管理路由

ip route 用法

#添加路由:
ip route add TARGET via GW dev IFACE src SOURCE_IP
     TARGET:
         主机路由:IP
             网络路由:NETWORK/MASK

#添加网关:
ip route add default via GW dev IFACE

#删除路由:
ip route del TARGET

#显示路由:
ip route show|list

#清空路由表:
ip route flush [dev IFACE] [via PREFIX]
    

2.2 ss命令

来自于iproute包,代替netstat,netstat 通过遍历 /proc来获取 socket信息,ss 使用 netlink与内核 tcp_diag 模块通信获取 socket 信息

格式

ss [OPTION]... [FILTER]

选项:

-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息

格式说明:

FILTER : [ state TCP-STATE ] [ EXPRESSION ]
TCP的常见状态:
     tcp finite state machine:
         LISTEN: 监听
         ESTABLISHED:已建立的连接
         FIN_WAIT_1
         FIN_WAIT_2
         SYN_SENT
         SYN_RECV
         CLOSED
EXPRESSION:
 dport =
 sport =
        

常用组合:

-tan, -tanl, -tanlp, -uan

 

 常见用法

#显示本地打开的所有端口
ss -l

#显示每个进程具体打开的socket
ss -pl

#显示所有tcp socket
ss -t -a

#显示所有的UDP Socekt
ss -u -a

#显示所有已建立的ssh连接
ss -o state established '( dport = :ssh or sport = :ssh )'

#显示所有已建立的HTTP连接
ss -o state established '( dport = :http or sport = :http )'

3.1网络配置文件

3.1.1网络基本配置文件

ip、mask、gw、dns相关的配置文件:

/etc/sysconfig/network-scripts/ifcfg-IFACE

常用配置

设置 说明
TYPE 接口类型;常见有的Ethernet, Bridge
NAME 此配置文件应用到的设备
DEVICE DEVICE
HWADDR 对应的设备的MAC地址
UUID 设备的惟一标识
BOOTPROTO 激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
IPADDR  指明IP地址
NETMASK 子网掩码,如:255.255.255.0
PREFIX 网络ID的位数, 如:24
GATEWAY  默认网关
DNS1 第一个DNS服务器地址
DNS2 第二个DNS服务器地址
DOMAIN  主机不完整时,自动搜索的域名后缀
ONBOOT 在系统引导时是否激活此设备
USERCTL 普通用户是否可控制此设备
PEERDNS 如果BOOTPROTO的值为“dhcp”,YES将允许dhcp server分配的dns服务 器信息直接覆盖至/etc/resolv.conf文件,NO不允许修改resolv.conf
NM_CONTROLLED NM是NetworkManager的简写,此网卡是否接受NM控制

3.1.2配置当前主机的主机名

#centos6 之前版本
/etc/sysconfig/network
HOSTNAME=

#centos7 以后版
/etc/hostname
HOSTNAME

3.1.3本机主机名数据库和IP地址的映射

优先于使用DNS前检查

getent hosts 查看/etc/hosts 内容

/etc/hosts

3.1.4DNS域名解析

/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
search DOMAIN

3.1.5修改/etc/hosts和DNS的优先级

/etc/nsswitch.conf
hosts: files dns

 4.1Centos 7 以上的网络配置

  CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变 化,CentOS 7 以上版使用基于硬件,设备拓扑和设置类型命名

  CentOS 8 中已弃用network.service,采用NetworkManager(NM)为网卡启用命令。CentOS 8 仍可 以安装network.service作为网卡服务,只是默认没有安装,具体方法为: dnf install networkscripts ,不过官方已明确在下一个大版本中,将彻底放弃network.service,不建议继续使用 network.service管理网络。

4.1.1网卡命名机制

systemd对网络设备的命名方式

  1.  如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命 名,如:eno1
  2. 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命 名,如:ens1
  3. 如果硬件接口的物理位置信息可用,则根据此信息命名,如:enp2s0
  4. 如果用户显式启动,也可根据MAC地址进行命名,如:enx2387a1dc56 5. 上述均不可用时,则使用传统命名机制

网卡组成格式

en: Ethernet 有线局域网
wl: wlan 无线局域网
ww: wwan无线广域网
o<index>: 集成设备的设备索引号
s<slot>: 扩展槽的索引号
x<MAC>: 基于MAC地址的命名
p<bus>s<slot>: enp2s1

网卡名称改回传统命名方式

需修改配置文件

1、vim /etc/default/grub

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"  #添加 net.ifnames=0 biosdevname=0

2、为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg

3、重启系统
reboot

4.1.2主机名

配置文件:

/etc/hostname

默认没有此文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain
设置主机名 
hostnamectl set-hostname centos7.magedu.com

删除文件/etc/hostname,恢复主机名localhost.localdomain

显示主机名信息

hostname
hostnamectl status

 

 4.7.3网络配置工具nmcli

nmcli命令相关术语

  • 设备即网络接口
  • 连接是对网络接口的配置,一个网络接口可有多个连接配置,但同时只有一个连接配置生效

格式:

nmcli [ OPTIONS ] OBJECT { COMMAND | help }
 device - show and manage network interfaces
 nmcli device help
 connection - start, stop, and manage network connections
 nmcli connection helpN

修改配置文件执行失效:

nmcli con reload
nmcli con up con-name   #网卡接口名称

注意:centos7 network服务与 NetworkManager服务是共存的;network服务启动,不了,就用nmcli生效配置文件。

  也可尝试禁用NeworkNannager服务,启动network。

关闭NetworkManager

systemctl stop NetworkManager

systemctl disable NetworkManager

重新启动网络:systemctl start network.service

记录:我的CentOS-7-x86_64-Everything-2009版,启动network无效,使用nmcli命令。

cnetos7静态IP地址配置

 

 

posted @ 2022-04-22 19:30  goodbay说拜拜  阅读(1126)  评论(0编辑  收藏  举报