Linux 网络配置

基本网络配置

网络配置的几个相关设置:

- 主机名

- IP/netmask

- 路由:默认网关

- DNS服务器 # 主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 --- 修改配置文件的方式

1.编辑配置文件:/etc/default/grub
在GRUB_CMDLINE_LINUX这一行的最后添加 net.ifnames=0 #(GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0")

2.使用grub2-mkconfig -o /boot/grub2/grub.cfg

3.然后重启:reboot

image

通过命令的方式修改网卡名:nmcli命令

#使用nmcli修改IP地址,会自动生成配置文件 -- 绿色就表示正在生效的配置
nmcli connection --- 查看当前的网络连接(一张网卡可以对应多个配置文件,通过NAME来进行切换)

#使用nmcli生成配置文件的方法;
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这个包。可以查看当前网络的连接情况。

netstat命令选项:

-t: tcp协议相关

-u: udp协议相关

-w: raw socket相关

-l: 处于监听状态

-a: 所有状态

-n: 以数字显示IP和端口

-e:扩展格式

-p: 显示相关进程及PID

ss 命令

显示的信息和netstat显示的信息是一样的。也是用来查看网络的连接情况

ss 命令选项:

-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 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-网卡名)

网卡配置文件格式:
ifcfg-xxx

配置文件选项(基本选项)

IP 、子网掩码、网关、DNS是上网必须要配置的

#如果配置了静态IP,只需要一下信息:八个变量

#因为这些都是变量,通过识别这些变量来对网卡进行设置的
- TYPE --- 接口类型;常见有的Ethernet, Bridge

- NAME --- 描述信息,一般和网卡名同名

- DEVICE --- 和当前需要配置的网卡名相匹配(针对那块网卡进行配置)

- BOOTPROTO --- 静态地址或动态地址,常用的dhcp(动态), static(静态), none(也表示静态地址), bootp

- IPADDR --- 指明IP地址

- NETMASK --- 子网掩码点分十进制的写法,如:255.255.255.0

- PREFIX --- 子网掩码CIDR表示法的写法(和NETMASK二选一)

- GATEWAY --- 默认网关(决定了跨路由访问,路由器的接口地址)

- ONBOOT --- 启用网卡还是禁用网卡 yes:启用网卡, no:禁用网卡

- DNSx --- 指向DNS服务器,实现名称解析为IP地址
#如果配置了dhcp自动获取,只需要一下信息: 四个变量

DEVICE:

NAME:

BOOTPROTO:

ONBOOT:

网卡配置完成后激活配置:

CentOS 6或7:
service network restart
CentOS8:
  1. nmcli connection reload

  2. nmcli connection up Name

(1)因为没有了network这个工具,所以需要使用 nmcli connection reload  来加载我们写的配置文件

(2)加载完成后就能使用nmcli connection来看到我们对应的网卡设备,然后使用  nmcli connection up Name #这个名字是我们配置文件里面的NAME=xxx 来进行启动。

范例

#配置192.168.26.129作为静态地址

[root@CentOS8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 
TYPE=Ethernet  #网络类型
NAME=ens160  #描述性息
DEVICE=ens160 #网卡的设备名字
BOOTPROTO=static #启动协议
IPADDR=192.168.26.129 #ip地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.26.2 #网关
ONBOOT=yes #是否启用这个网卡配置
DNS1=127.0.0.1 #DNS服务器地址

网关的管理

route -n --- 查看网关的信息

image

DNS和host文件

DNS作用:

实现名称解析为IP地址

DNS查看配置的DNS是否生效:

#这个文件中的nameserver后面的是DNS服务器地址
#search后面的是域名,比如没有写完整的名字,它会自动给我们补全域后缀。
cat /etc/resolv.conf

image

host文件:

 /etc/host :本地主机名数据库和ip地址的映射,可以实现名字的解析(host文件的优先级高于DNS,可以代替DNS做解析)

路由器

作用:

把不同网段的主机连起来(类似于送快递的快递员)

每个路由器负责把收到的数据报文传给下一个路由器,直到传送到最终的主机。

路由表:

并非路由器上才有,所有的主机上都有。是用来选择路径的。#和网络通讯的主机都有路由表 。

linux通过 route -n 查看路由表

image

route命令查看路由表。

image

- 网关:同网段网关不用设,不同网关需要设网关。不同网段时,网关就是下一个路由器临近当前设备的接口。(网关的作用就是为了跨网络通信的)。网关一定是和自己设备处于同一网段的。

- Metric:花费,多条路径可达时,则根据Metric的大小来进行选择,越小越优先。

- Genmask     网络掩码

- Iface       该路由表项对应的输出接口

- default: 默认路由,路由表所有路径都不匹配的时候,就使用默认路由来匹配,默认路由的网关地址就是我们计算机网卡的网关。(网卡配置的时候加gatway的原因就是为了加默认路由)。

路由表的组成(四部分)

- 目标网络:目标主机所在的网络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

使用ip route来管理路由

#显示路由:
ip route

#删除路由:
ip route  delete 目标地址/netmask via 网关 dev 设备名

#添加路由: via:指定吓一跳路由器的地址(网关)
ip route add 目标地址/netmask via 网关 dev 设备名

查看到达指定地址经过的路由器

方法1:mtr Ip

方法2:traceroute或tracepath IP

注意:

路由很关键,如果路由错误,即使处于同一网段的设备也无法通信。

通过命令配置的路由都是临时生效的。永久保存需要写入配置文件。

路由相关的配置文件

 /etc/sysconfig/network-scripts/route-IFACE #在这个目录下创建一个route-接口名的文件

格式:

目标网络的网络id/netmask  via 网关 #via类似于gw的意思,后面跟网关

范例:使用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

image

sysctl 修改内核参数

选项:

-w   临时改变某个指定参数的值

-a   显示所有的系统参数

-p   从指定的文件加载系统参数

sysctl的配置文件

/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    #后面的会覆盖前面的值

posted on 2022-07-09 11:49  背对背依靠  阅读(900)  评论(0编辑  收藏  举报