Linux 的网络配置【慎看,未全部测试!】

Linux的网络配置

1、网络配置文件

在Linux操作系统中,TCP/IP网络是通过若干个文本文件进行配置的,系统在启动时通过读取一组有关网络配置的文件和脚本参数内容来实现网络接口的初始化和控制过程,这些文件和脚本大多数位于/etc目录下。这些配置文件提供网络IP地址、主机名和域名等;脚本则负责网络接口的初始化。通过编辑这些文件可以进行网络设置和实现联网工作。这些文件可以在系统运行时修改。不用启动或者停止任何守护程序,更改会立刻生效。这些文件都支持由“#”
开头的注释。在Linux系统中,有关网络配置的主要文件有以下几个。
(1)/etc/sysconfig/network-script/ifcfg-enoxxx文件【也可能是ifcfg-ensxxxx,我用的是红帽7.7的,下面的名字就是ens33,名字什么倒是无所谓的,会看就行了!】。这是一个用来指定服务器上的网络配置信息的文件。其中常见的主要参数的含义说明如下。

image

打开网卡的配置参数:
命令:;vi + 你想要编辑的网卡名
image

image

有些本来是没有的,是我自己加上去方便看有哪些常见参数的!
image

配置完成后,需要使用systemctl restart network 命令重启网络服务。【我上面的配置只是方便大家看,具体配置请按需,如联系的话上面地址类型应该改为静态的
(2)/etc/hostname文件,该文件包含了Linux系统的主机名。
image

[root@redhat ~]【当然,你可以看到我的主机名不是这个,不要大惊小怪好吧!】

vi/etc/hostname修改配置文件中的redhat为redhat-64,保存文件,然后重新登录,此时,主机名已经更改
表明静态主机名已经修改成功。
image

image

image

使用reboot命令重启一下系统就可以了
可以看到:
image

也可以用查看主机名状态的命令:

image

这个文件是在启动时从文件/etc/sysconfig/network的HOSTNAME 行中得到的,用于在启动时设置系统的主机名。

(3)/etc/resolv.conf文件。/etc/resolv.conf文件配置DNS客户,它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个由空格隔开的参数。下面是一个例子:

image

image

只能照抄了!
image

image

常用参数及其意义说明如下。
nameserver:表明DNS服务器的IP地址。可以有很多行的nameserver,每一个带个IP地址。在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver。
domain:声明主机的域名。很多程序用到它,如邮件系统,当为没有域名的主机进行DNS查询时也要用到。如果没有域名,主机名将被使用,删除所有在第一个点(.)
前面的内容。
search:它的多个参数指明域名的查询顺序。当要查询没有域名的主机时,主机将在由search声明的域中分别查找。domain和search不能共存。
sortlist:允许将得到的域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。在Red Hat Linux中没有提供默认的/etc/resolv.conf文件,它的内容是根据在安装时给出的选项动态创建的。

安装网卡【不会,请忽略这节】

在安装Linux操作系统时,如果计算机系统中装有网卡,安装程序将会提示给出TCP/IP网络的配置参数,如本机、默认网关以及DNS的IP地址等。根据这些配置参数,安装程序将会自动把网卡的驱动程序编译到内核中去。网卡的驱动程序是作为模块加载到内核中去的。所有Linux支持的网卡驱动程序都是存放在目录/lib/modules/(Linux版本号)/net/下【不一定哈,有些可能会藏得更深一些!比如我的!】
image
,【一般来说他应该是放在文件夹多的那个版本中】可以通过修改模块配置文件来更换网卡或者增加网卡。
image

增加网卡我不会,后面再添加上吧!

Red Hat Linux 7中,网卡命名方式从eth0,1,2的方式变成了enoXXXXX的格式,en表示的是enthernet,o表示的是onboard【照这样推理 s就代表服务器喽!】,XXX表示的一长串数字则是主板的某种索引编号自动生成的,可以保证其唯一性。但网卡并不能直接作为硬件裸设备出现于/dev下,而是内核在引导时在内存中建立的。Red Hat Linux默认是采用内核模块(module)的方式在系统引导时设定网卡的,如果已经知道网卡类型,也可以把相应的网卡驱动编译进内核

3. 网络配置命令

1)ifconfig

(1)网络接口设置命令ifconfig。在Linux系统中通过ifconfig命令进行指定网络接口的TCP/IP网络参数设置。执行ifconfig配置命令后,系统将在内核表中设置必要的网络参数,这样Linux系统就知道如何与网络上的网卡通信了。

ifconfig命令的基本格式如下。
ifconfig Interface-name ip-address upldown
使用不带任何参数的ifconfig命令可以查看当前系统的网络配置情况。
image

在刚安装完系统之后,实际上是在没有网卡或者网络连接的情况下使用Linux,但通过ifconfig可以使用回送

(loopback)方式工作,使计算机认为自己在网络上工作。使用ifconfig命令可以进行指定网络接口的TCP/IP网络参数设置。
例如,运行下列命令。
image

ifconfig ens33 192.0.0.1 netmask 255.255.255.0 up

将网络接口 ens33的IP地址设置为192.168.0.5,子网掩码为255.255.255.0,并启动该接口或将其初始化。类似的,若将网络接口“关闭”,则输入命令ifconfig eth0 down【因为的的网卡名是ens33,所以得改成ens33,】,不需要指定IP地址和网络掩码。

运行不带任何参数的ifconfig命令可以显示所有网络接口的状态。若要检查特定接口的状态,则在ifconfig后附加这个接口的名称。例如运行:

ifconfig ens33
命令后,系统显示接口状态信息如下。
image

以上输出显示MAC地址(Hwaddr)、所分配的IP地址(inet addr)、广播地址(Bcast)和网络掩码(Mask)。另外,可以看出该接口处于UP状态,其MTU为1500并且Metric为1。
接下来的两行给出有关接收到(RX)和已发送的(TX)信息包数,以及错误、丢弃和溢出信息包数的统计。最后两行显示冲突信息包的数目、发送队列大小(txqueuelen)和IRQ以及网卡的基址。

(2)

配置路由命令route。

通常在系统使用ifconfig命令配置网络接口后,需用route命令设定主机或局域网的出口IP地址。route命令的调用参数复杂,它的主要功能是管理Linux系统内核中的路由表。route命令的基本格式如下。

route[-选项]
常用参数和选项说明如下。

  • del:删除一个路由表
  • add: 增加一个路由表
  • target: 配置的目的网段或者主机,可以是IP,也可以是网络或主机名。
  • netmaskNm: 用来指明要添加的路由表项的子网掩码
  • gw Gw: 任何通往目的地的IP分组都要通过这个网关

例如,运行不带参数的route命令:

route

image
我的没有配!

系统将显示内核路由表如下

image

第一项是默认路由,表明默认网关为10.0.252.254,网络接口为eno16780032。
最小的路由表仅允许在同一网络中的主机互相通信。如果要与远程主机通信,必须将通过外部网关的路由添加到路由表中。route命令的基本格式如下。

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

在route命令上的第一个关键字要么是add要么是del(删除路由)。下一个值是目的地地址,它是通过该路由到达的地址。如果关键字default用于目的地地址,则创建默认路由。只要没有到目的地的特定路由,就使用默认路由。如果网络中只有一个网关,则使用默认路由引导所有要到远程网络的数据流量通过这个网关。命令行的下一个参数是网关地址,该地址必须是
直接连接本机所在网络的网关地址。在到远程目的地的网络路径中,TCP/IP 路由要指定下一跳(next-hop)。这个下一中继必须是本机可直接访问的,因此,它必须直接连接在本机所在的网络中。

因为大多数的路由都是在系统启动过程早期添加的,所以建议用数字的IP地址替代主机名,这样做就可以确保路由配置不依赖于名称服务器的状态。

(3)网络测试命令ping。

配置完成路由以后,可以用ping命令做一个测试来检查一下配置是否成功。ping命令用于查看网络上的主机是否在工作,它向被查看主机发送ICMP ECHO_REQUEST 包,正常情况下应该可以接收到响应。ping命令的一般格式如下。

ping [-选项] 主机名/IP地址

常用参数和选项说明如下。

  • -t: 校验与指定计算机的连接,直到用户中断。
  • -a: 将地址解析为计算机名。
  • -n count: 发送由count 指定数量的ECHO报文,在发送指定数目的包后停止。默认值为4
  • -l length: 发送包含由length指定数据长度的ECHO报文。默认值为64字节,最大值为8192字节。
  • -i ttl: 将“生存时间”字段设置为ttl指定的数值

ping命令通过向计算机发送ICMP回应报文并且监听回应报文的返回,以校验与远程计算机或本地计算机的连接及参数配置情况,可以使用ping实用程序测试计算机名和IP地址。如果能够成功校验IP地址却不能成功校验计算机名,则说明名称解析存在问题。在这种情况下,要保证在本地HOSTS文件中或DNS数据库中存在要查询的计算机名。

(4)网络查询命令netstat。

网络信息查询命令netstat可以显示内核路由表、活动网络连接的状态和每个已安装网络接口等一些有用的统计信息。像大多数Linux管理命令行程序一样,netstat可以通过其后面的附加选项和参数选择所显示信息的细节。netstat命令的一般格式如下。

netstat[-选项][-参数]

常用参数和选项说明如下。

  • -a: 显示所有的连接信息,包括那些正在监听的。
  • -i: 显示所有已配置网络设备的统计信息。
  • -c: 持续更新网络状态(每秒一次),直到被人为中止。
  • -r: 显示内核路由表。
  • -n: 以数字(原始)格式而不是以解析的名称显示远程和本地地址。

在使用netstat命令时可以组合这些选项,所以输入netstat-rn将以原始的IP地址格式显示关于本地和远程主机(n)的系统路由表(r)。

例如,运行下面的命令:

image

-n选项强制netstat以点分四组IP数字的形式,而不是以主机和网络名称的形式输出地址。
第二列显示路由项中所指向的网关。如果没有使用网关,就会显示星号。
第三列是子网掩码。
第四列显示路由的标志:U表示处于活动状态,H表示主机,G表示网关,D表示动态路由,M表示已经修改过。
接下来的3列显示MSS、Window和irtt,它们将被应用于通过该路由建立的TCP连接。
MSS(Maximum Segment Size)表示“最大分段尺寸”,也是内核所构建以通过该路由发送的数据报的最大尺寸。Window表示系统一次从远程主机接收突发的最大量数据。
首字母缩写词irtt代表“初始往返时间(initial round trip tim)"。TCP 协议一直对发送给远程端点的数据报和接收到的确认所花费的时间进行记数,以便知道假定要重发数据报前需要等待的时间,这个过程称为往返时间。可以使用route命令设置irtt值。在上面这个路由表中,这些字段均为0值,表明正在使用默认值。最后这个字段表示所显示的路由使用的网络接口。
用-i选项调用netstat命令可以显示所有已配置接口的一些有用的统计信息,这是一个用于排除网络故障非常有用的工具

posted @ 2022-03-04 11:50  lvhanghmm  阅读(635)  评论(0编辑  收藏  举报