您现在的位置是:网站首页> 编程资料编程资料

Linux网络设置详情_linux shell_

2023-05-26 413人已围观

简介 Linux网络设置详情_linux shell_

Linux网络设置

一、查看网络配置接口

1.查看网络接口信息—ifconfig

主机的网络接口卡(网卡)通常称为网络接口

在 Linux 操作系统中,使用 ifconfig 命令可以查看网络接口的地址配置信息

若采用 mini 版 CentOS 7 安装的系统,默认是没有 ifconfig 命令的,需要先通过 yum 方式安装 net-tools 软件包,才有 ifconfig 命令

ens33:

  • 第一块以太网卡的名称,“ens33”中的“en”是“EtherNet”的缩写,表示网卡类型为以太网,“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽编号
  • ifconfig #显示已启用的网络接口,不包括禁用的设备

 inet 192.168.126.15 #ip地址 netmask 255.255.255.0 #子网掩码 broadcast 192.168.126.255 #广播地址 ether 00:0c:29:8e:38:02 #mac地址

第一行:

以太网卡的名字不是常见的eth0,变成了ens33。其中en代表以太网卡
ens33:代表PCI接口的物理位置为(0,3), 其中横座标代表bus,纵座标代表slot
UP:代表此网络接口为启用状态(down为关闭状态)
RUNNING:代表网卡设备已连接
MULTICAST:表示支持组播
mut:为数据包最大传输单元,每个网络设备都有自己的mtu,默认为1500

第二行

网卡的IP地址、子网掩码、广播地址

第三行:

IP v6地址

第四行:

Ethernet(以太网):表示连接类型;
ether:表示为网卡的MAC地址
RX:接受数据包个数、大小统计信息
RX:异常接受包的个数、如丢包量、错误等
TX:发送数据包个数、大小统计信息
TX:发送包的个数、如丢包量、错误等

 ifconfig ens33 #只查看网卡 ens33 的配置信息 ifconfig -a #显示所有活动及非活动的连接

IO

“回环”网络接口,“lo”是“loopback”的缩写,它不代表真正的网络接口,而是一个虚拟的网络接口,其 IP 地址默认是“127.0.0.1”,子网掩码为8位,回环地址通常仅用于对本机的网络测试

用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道

virbr0

一个虚拟的网络连接端口,默认为0号虚拟网络连接端口;一般在通过虚拟机进行移植操作系统时,默认会以nat的网络地址转移,但是可以选择桥接或者是无网络连接也是可以的(因为本人用的是centos镜像的虚拟机,所以会有这一行)

2.修改网络配置文件

  • 网络接口的配置文件默认位于/etc/sysconfig/network-script/ifcfg-ens33
  • 文件名格式为 “ifcfg-XXX”,其中“XXX”是网络接口的名称

例如,网卡 ens33 的配置文件是“ifcfg-ens33”, 回环接口 lo 的配置文件是“ifcfg-lo”

在 CentOS 7 操作系统中,当修改了网络接口的配置文件以后,若要使新的配置生效, 可以重新启动 network 服务或者重启主机 systemctl restart network

注:建议关闭NetworkManager服务,否则有时启动network会报错
systemctl stop NetworkManager
systemctl disable NetworkManager

3.设置网络接口参数 ifconfig

ifconfig 命令不仅可以用于查看网卡配置,还可以修改网卡的 IP 地址、子网掩码,也可以绑定虚拟网络接口、激活或禁用网络接口。

 ifconfig ens37 192.168.10.20 netmask 255.255.255.0 #临时配置网卡的ip地址 ifconfig ens37 192.168.10.20/24 #当不指定子网掩码时,将使用 IP 地址所在分类的默认子网掩码

如果只是禁用、启用某一个网络接口(而不是所有接口),可分别使用两个接口控制脚本 ifdown、ifup

ifconfig ens37 down|up ifup/ifdown ens37

为网卡绑定虚拟接口:在对服务器网络进行调试的过程中,有时候需要临时在同一个网卡上使用一个新的 IP 地址,但是又不能覆盖原有 IP 地址而导致服务程序不可用。
这时可以为网卡绑定一个虚拟的网络接口,然后为虚拟接口设置新的 IP 地址(相当于一块网卡配多个 IP 地址)。

ifconfig ens33:0 192.168.20.20

4.查看主机名称—hostname

主机名:在 Linux 操作系统中,相当一部分网络服务都会通过主机名来识别主机,如果主机名配置不当,可能会导致程序功能出现故障

 [root@localhost ~]# hostname xjj #临修改时主机名称 [root@localhost ~]hostnamectl set-hostname xjj #永久修改主机名称 或 vim /etc/hostname #自行添加主机名,设置完后需重启系统才能生效 hostname -i #查看本主机ip 

5.查看路由表条目route

路由表:Linux 操作系统中的路由表决定着从本机向其他主机、其他网络发送数据的去向,是排除网络故障的关键信息
直接执行“route”命令可以查看当前主机中的路由表信息

 [root@localhost ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 0 0 0 ens33 link-local 0.0.0.0 255.255.0.0 U 1002 0 0 ens33 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 192.168.245.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33 - Destination 列对应目标网段的地址,当目标网段为“default”时,表示此行是默认网关记录 - Gateway 列对应下一跳路由器的地址,当下一跳为“gateway”时,表示目标网段是与本机直接相连的 - Iface 列对应发送数据的网络接口 - 目标网段为“0.0.0.0”时表示此行为默认网关记录 - 下一跳是“0.0.0.0”时表示目标网段与本主机直连 

route -n 可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表条目较多的情况下能够加快执行速度

 [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.245.2 0.0.0.0 UG 0 0 0 ens33 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 ens33 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 192.168.245.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33

ip route show=ip route #查看路由配置

 [root@localhost ~]# ip route show default via 192.168.245.2 dev ens33 169.254.0.0/16 dev ens33 scope link metric 1002 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 192.168.245.0/24 dev ens33 proto kernel scope link src 192.168.245.211 [root@localhost ~]# ip route default via 192.168.245.2 dev ens33 169.254.0.0/16 dev ens33 scope link metric 1002 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 192.168.245.0/24 dev ens33 proto kernel scope link src 192.168.245.211 

设置路由记录 route=
添加、删除静态路由记录
route 命令不仅可以用于查看路由表信息,还可用来添加、删除静态的路由表条目,其中也包括设置默认网关地址(默认网关记录是一条特殊的静态路由条目)
添加静态路由,通过“route add”操作可以添加路由记录,结合“-net”选项指定目标网段的地址,结合“gw”选项指定下一跳路由器的IP 地址
route add -net 192.168.3.0/24 gw 192.168.10.1 #表示可以通过192.168.10.1到192.168.3.0/24网络
route del -net 192.168.3.0/24
添加、删除默认网关记录,需要注意的是,在同一个主机的路由表中只应有一条默认网关记录。若同时存在多条默认网关记录,则可能导致该主机的网络连接出现故障
添加、删除默认网关记录时,与添加、删除静态路由记录的命令格式类似,但指定目标网段时只需简单地使用“default”表示即可
route add default gw 网关ip
route del default gw 网关ip/route del default

6.查看网络连接情况-netstat

查看系统的网络连接状态、路由表、接口统计等信息,是了解网络状态及排除网络服务故障的有效工具
-n:以数字的形式显示相关的主机地址、端口等信息
-r: 显示路由表信息
-a: 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-l : 显示处于监听(Listenin状态的网络连接及端口信息
-t :查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息
-u : 显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息
-p : 显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)

用法:①通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显示对应的进程信息
②配合管道符grep过滤出特定的记录

 [root@localhost ~]# netstat -anpt | grep sshd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6860/sshd tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 9904/sshd: root@pts tcp 0 52 192.168.245.211:22 192.168.245.1:64550 ESTABLISHED 9904/sshd: root@pts tcp6 0 0 :::22 :::* LISTEN 6860/sshd tcp6 0 0 ::1:6010 :::* LISTEN 9904/sshd: root@pts [root@localhost ~]# [root@localhost ~]# netstat -lnpt | grep sshd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6860/sshd tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 9904/sshd: root@pts tcp6 0 0 :::22 :::* LISTEN 6860/sshd tcp6 0 0 ::1:6010 :::* LISTEN 9904/sshd: root@pts [root@localhost ~]# netstat -lnpu | grep ntp udp 0 0 192.168.122.1:123 0.0.0.0:* 65421/ntpd udp 0 0 192.168.245.211:123 0.0.0.0:* 65421/ntpd udp 0 0 127.0.0.1:123 0.0.0.0:* 65421/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 65421/ntpd [root@localhost ~]# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.245.2 0.0.0.0 UG 0 0 0 ens33 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens33 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 192.168.245.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33 

7.获取socket统计信息-ss

查看系统的网络连接情况,获取socket统计信息,它可以显示和 netstat 命令类似的输出内容
socket:即套接字,上连应用进程,下连网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口

ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效
当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。
ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效
ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装

 [root@localhost ~]# time ss real 0m0.012s user 0m0.003s sys 0m0.005s [root@localhost ~]# time netstat -an real 0m0.027s user 0m0.001s sys 0m0.006s 查看并发连接数ss和netstat对比 [root@shengjie ~]# time netstat -ant | grep EST | wc -l 0 real 0m0.002s user 0m0.002s sys 0m0.002s [root@shengjie ~]# time ss -o state established | wc -l 711 real 0m0.013s user 0m0.003s sys 0m0.003s 

为什么ss比netstat快:

netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多

-h : help 通过该选项获取更多的使用帮助
-V : version 显示软件的版本号
-t : tcp 显示 TCP 协议的 sockets
-u : udp 显示 UDP 协议的 sockets
-n 

-六神源码网