- A+
基本网络配置
网络配置的几个相关设置:
- 主机名
- IP/netmask
- 路由:默认网关
- DNS服务器(主DNS服务器、次DNS服务器、第三个DNS服务器) --- 实现名字解析的
主机名设置
修改主机名的方法:
持久化配置:
方法一:使用hostnamectl命令 #(只支持centos7以上的版本),修改了以后把主机名存放在/etc/hostname里面 格式:hostnamectl set-hostname XXX #永久设置用户名,关机后不失效 方法二:修改配置文件 /etc/hostname 保存退出 # reboot重启生效 #注:centos6存放主机名的文件在:`/etc/sysconfig/network` 所以不能使用hostnamectl来进行修改。
临时配置
hostname XXX #临时修改主机名,关机后失效
查看主机名的方法
#方法一:hostnamectl(centos7以上)或者hostname #方法二:uname(含义是unix名称)是一个实用命令,它打印系统信息 #方法三:查看配置文件 /etc/hostname 或者/etc/sysconfig/network(CentOS 6)
网卡名相关配置
CentOS 6 之前版本网卡名称:ethX
范例:修改CentOS8的默认网卡名,修改为ethX --- 修改配置文件的方式
配置文件:/etc/default/grub 在GRUB_CMDLINE_LINUX这一行的最后添加 net.ifnames=0 使用grub2-makeconfig -o /boot/grub2/grub.cfg 然后重启:reboot
通过命令的方式修改网卡名:nmcli命令
#使用nmcli修改IP地址,会自动生成配置文件 -- 绿色就表示正在生效的配置 nmcli connection --- 查看当前的网络连接(一张网卡可以对应多个配置文件,通过NAME来进行切换) #生成配置文件的方法; nmcli connection add con-name 名字 ifname 网卡名 #con-name:生成的NAME ifname:针对那个网卡配置的 #自动获取ip: ipv4.nethod auto # type ethernet -- type:指定网络的类型 #删除配置 nmcli connection delete NAme(名字) #生效配置文件 nmcli connection up 连接名(NAME) --- 同一张网卡的多个配置。同一时间只能生效一个
网络配置命令
网络配置的方法;
-
临时配置:用命令临时生效,写入内存
-
持久化配置:写入配置文件中
网络配置的方式
-
静态指定:
-
动态分配:(需要配置dhcp服务)
ifconfig命令(比较老了) --- 临时配置地址
来自于 net-tools这个包
作用:
- 地址查看
- 临时配置地址
范例:使用ifconfig临时配置ip地址和删除
#使用ifconfig临时配置ip地址 ifconfig 网卡名 IP/netmask #netmask是子网掩码 #删除临时配置的地址方法 ifconfig 网卡名 0 #禁用网卡的方法(默认只显示启用的网卡) ifconfig 网卡名 down #启用网卡 ifconfig 网卡名 up #查看网卡的通信情况 ifconfig -s [网卡名]
范例:使用ifconfig给一个网卡配置多个ip
ifconfig 网卡名:num IP/netmask #(给这个网卡起了一个别名叫做xxx:1)
netstat命令(被ss替代了)
同样来自于net-tools这个包。可以查看当前网络的连接情况。
选项:
-t: tcp协议相关 -u: udp协议相关 -w: raw socket相关 -l: 处于监听状态 -a: 所有状态 -n: 以数字显示IP和端口 -e:扩展格式 -p: 显示相关进程及PID
ss 命令
显示的信息和netstat显示的信息是一样的。也是用来查看网络的连接情况
选项:
-t: tcp协议相关 -u: udp协议相关 -w: 裸套接字相关 -x:unix sock相关 -l: listen状态的连接 -a: 所有 -n: 数字格式 -p: 相关的程序及PID -e: 扩展的信息 -m:内存用量 -o:计时器信息
ip命令(替代了ifconfig、route命令等)
用法:ip 子命令
范例:显示网络数据链路层状态:ip link
#ip link解决的是链路层的管理和查看 #显示网络数据链路层状态 ip link #禁用网络(逻辑上禁用) ip link set 网卡名 down #启用网络 ip link set 网卡名 up #ip addr/a --- 网络层的控制 #显示ip地址: ip a #添加ip地址 dev:表示给那个网卡加地址 label:相当于给这个网卡起一个别名 ip a add IP/netmask dev 网卡名 label 网卡:X #删除添加的地址 ip a del IP/netmask dev 网卡名 label 网卡:X
网络的持久化配置
使用命令配置的地址都是临时性的,可以更改配置文件的方式来持久化配置网络
CentOS网卡的配置文件:
#这个网卡名子无所谓,但是为了方便管理,最好把这个名字设置和网卡的名字一样。 /etc/sysconfig/network-scripts/ifcfg-IFACE(ifcfg-网卡名)
配置文件选项(基本选项)
IP 、子网掩码、网关、DNS是上网必须要配置的
#因为这些都是变量,通过识别这些变量来对网卡进行设置的 - TYPE --- 接口类型;常见有的Ethernet, Bridge - NAME --- 描述信息,一般和网卡名同名 - DEVICE --- 和当前需要配置的网卡名相匹配(针对那块网卡进行配置) - BOOTPROTO --- 静态地址或动态地址,常用的dhcp(动态), static(静态), none(也表示静态地址), bootp - IPADDR --- 指明IP地址 - NETMASK --- 子网掩码点分十进制的写法,如:255.255.255.0 - PREFIX --- 子网掩码CIDR表示法的写法 - GATEWAY --- 默认网关(决定了跨路由访问,路由器的接口地址) - ONBOOT --- 启用网卡还是禁用网卡 yes:启用网卡, no:禁用网卡 - DNSx --- 指向DNS服务器,实现名称解析为IP地址
#如果配置了dhcp自动获取,只需要一下信息: DEVICE: NAME: BOOTPROTO: ONBOOT:
网卡配置完成后激活配置:
CentOS 6或7:
service network restart
CentOS8:
因为没有了network这个工具,所以需要使用 nmcli connection reload
来加载我们写的配置文件
加载完成后就能使用nmcli connection来看到我们对应的网卡设备,然后使用 nmcli connection up Name(这个名字是我们配置文件里面的NAME=xxx)
来进行启动。
网关的管理
route -n --- 查看网关的信息
DNS和host文件
DNS作用:实现名称解析为IP地址
DNS查看配置的DNS是否生效:
#这个文件中的nameserver后面的是DNS服务器地址 #search后面的是域名,比如没有写完整的名字,它会自动给我们补全域后缀。 cat /etc/resolv.conf
host文件:
/etc/host
:本地主机名数据库和ip地址的映射,可以实现名字的解析(host文件的优先级高于DNS,可以代替DNS做解析)
路由器
作用:把不同网段的主机连起来(类似于送快递的快递员)
每个路由器负责把收到的数据报文传给下一个路由器,直到传送到最终的主机。
路由表:
并非路由器上才有,所有的主机上都有。是用来选择路径的。(和网络通讯的主机都有路由表)
linux通过 route -n 查看路由表
Genmask 网络掩码
Iface 该路由表项对应的输出接口
路由表的组成(四部分)
-
目标网络:目标主机所在的网络id。(目标主机的网络id必须出现在路由表里面,没有的话就无法送达目标主机)
-
子网掩码:确定主机所在的网络(和IP配套使用)
-
接口:数据从当前主机的那个接口发出去
-
网关:最近那个路由器相邻的接口
直连网段的路由是自动生成的。
使用route来管理路由
route命令选项:
#选项: -net:到一个网络的路由表; -host:到一个主机的路由表。 #参数 Add:增加指定的路由记录; Del:删除指定的路由记录; Target:目的网络或目的主机; gw:设置默认网关(下一跳); dev:路由记录所表示的网络接口。
#添加路由 -net:指定目标网络 gw:指定网关(下一跳IP) dev:指定接口名 route add(添加路由表) -net 目标网络 gw 网关(相邻路由器的临近接口) dev 接口名(出口) #例如: route add -net 172.18.0.0/24 gw 1292.168.2.1 dev eth1 #增加一条到达172.18.0.0的路由。 #route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 #增加一条到达244.0.0.0的路由。 #删除路由 route del -net 目标网络/netmask
查看到达指定地址经过的路由器
方法1:mtr Ip 方法2:traceroute或tracepath IP
范例:使用centos作为路由器进行配置
路由转发功能:从一个网卡接口收到数据包以后从另外一个网卡发送出去
Linux默认没有开启路由转发功能ip_forward(路由器默认开启了这个功能)
linux主机的特性:收到数据包会对目标数据包地址的检查(不属于自己就直接抛弃)
开启IP_forward转发功能:
#1 搜索ip_forward这个内核参数 sysctl -a | grep ip_forward #ip_forward是一个内核的参数 #2 写入配置文件持久化保存: vim /etc/sysctl.conf ---> net.ipv4.ip_forward = 1 (1表示开启转发功能,0表示关闭转发功能) #3 让配置生效 sysctl -p
sysctl 修改内核参数
选项:
-w 临时改变某个指定参数的值 -a 显示所有的系统参数 -p 从指定的文件加载系统参数
配置文件
/usr/lib/sysctl.d/ /run/sysctl.d/ /etc/sysctl.d/
配置文件的执行顺序:
使用 sysctl --system | grep -v '^[a-z]' 可以查看配置文件的执行顺序 /usr/lib/sysctl.d/xxx ---> /etc/sysctl.d/xx ---->/etc/sysctl.conf #后面的会覆盖前面的值