Linux网络配置(超详细)

43 篇文章 0 订阅
20 篇文章 0 订阅


Linux网络配置

一.网络地址配置

网络地址查看–ifconfig

命令格式:ifconfig 或 ifconfig +网卡名

在这里插入图片描述

ifconfig [DEVICE] ##查看网络信息

​ 第一部分的第一行显示网卡状态信息。

  • eth0表示第一块网卡。

  • UP代表网卡开启状态。

  • RUNNING代表网卡的网线被接上。

  • MULTICAST表示支持组播。

    第二行显示网卡的网络信息。

  • inet(IP地址)

  • broadcast(广播地址)

  • netmask(掩码地址)

  • RX表示接收数据包的情况,TX表示发送数据包的情况。

  • lo表示主机的回环网卡,是一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现。与回环地址(127.0.0.0/8 或 ::1/128)不同,回环网卡对系统显示为一块硬件。任何发送到该网卡上的数据都将立刻被同一网卡接收到。

使用网络配置命令

在Linux主机中,手工修改网络配置有两种最基本的方法:

1 临时配置:使用命令调整网络参数
 (1)简单、快速,可直接修改运行中的网络参数
 (2)一般只适合在调试网络的过程中使用
 (3) 系统重启以后,所做的修改将会失效

2 固定设置:通过配置文件修改网络参数
 (1) 修改各项网络参数的配置文件
 (2)适合对服务器设置固定参数时使用
 (3) 需要重载网络服务或者重启以后才会生效
 (4) 相对而言复杂一点,但相当于“永久配置”

设置网络接口参数-ifconfig
ifconfig DEVICE IP netmask NETMASK    ##设置ip地址

ifconfig eth0 192.168.168.1/24
禁用(临时)或者重新激活网卡
ifconfig 网络接口 up
ifconfig 网络接口 down
设置虚拟网络接口

在对服务器进行调试的过程中,有时需临时在同一个网卡上使用一个新的IP地址,但又不能覆盖原有IP地址而导致服务程序不可用
相当于在一个网卡上配置多个IP地址

格式(示例): ifconfig 网络接口:序号 IP地址

ifconfig ens33:1 11.11.11.11

修改网络配置文件

网络接口配置文件

网络接口的配置文件默认位于目录“/etc/sysconfig/network-scripts/”中,文件名格式为“ifcfg-XXX”,其中“XXX”是网络接口的名称
“ifcfg-ens33”:是第一块以太网卡的配置文件

在这里插入图片描述

  • TYPE:设置网卡类型,以上表示为以太网
  • ONBOOT:设置网络接口是否在Linux系统启动时自动激活
  • NETMASK:设置网络接口的子网掩码
  • GATEMASK:设置网络接口的默认网关地址
  • DNS:设置DNS服务器的IP地址

重启network网络服务

systemctl restart network    

Ubuntu系统进行网络配置
/etc/network/interfaces
操纵步骤:
打开ubuntu的/etc/network/interfaces文件默认的内容如下:

auto lo
iface lo inet loopback
#动态获取的配置方法:
auto eth0
iface eth0 inet dhcp
#静态分配的配置方法:
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask  255.255.255.0
gateway  192.168.0.1

IP命令详解

ip 是个命令, ip 命令的功能很多!基本上它整合了 ifconfig 与 route 这两个命令,不过 ip 的功能更强大。属于iproute2包的一个命令,功能很强大。

OPTIONS选项
-V:显示指令版本信息;
-s:-stats, -statistics输出更详细的信息;可以使用多个-s来显示更多的信息
-f:-family {inet, inet6, link} 强制使用指定的协议族;
-4:-family inet的简写,指定使用的网络层协议是IPv4协议;
-6:-family inet6的简写,指定使用的网络层协议是IPv6协议;
-0:shortcut for -family link.
-o:-oneline,输出信息每条记录输出一行,即使内容较多也不换行显示;
-r:-resolve,显示主机时,不使用IP地址,而使用主机的域名。
OBJECT对象
link :网卡信息
address:IP地址信息
neighbour:邻居表
route:路由表
rule:IP策略
maddress:多播地址
mourte:组播路由缓存条目
tunnel:IP隧道

查看网络接口信息:

ip addr show :显示所有网络接口的IP地址和相关信息。
ip link show :显示所有网络接口的状态信息。

配置网络接口:

ip addr add [ip/mask] dev [interface] :为指定网络接口添加IP地址
ip addr change [ip/mask] dev [interface] :为指定网络接口修改IP地址
ip addr del [ip/mask] dev [interface] :从指定网络接口删除IP地址
ip link set dev [interface] up/down :启用或禁用指定的网络接口

ip link

ip link set设备接口属性
  • ip link set dev eth0 promisc on 开启混杂模式
  • ip link set eth0 up 启用网卡
  • ip link set eth0 mtu 1500 设置MTU值,即设置最大传输单元
  • ip link set eth0 name vbird 设置网卡名,需要在网卡down的时候进行设置,意义不是很大
  • ip link set eth0 address aa:aa:aa:aa:aa:aa 设置MAC地址

二、获取和修改主机名hostname

查看主机名

如果要查看主机名可以直接执行如下命令:

hostname

命令的语法如下:

hostname [选项] [参数]

该命令支持的选项有:

选项说明
-a显示主机别名
-d显示DNS域名
-f显示FQDN名称
-i显示主机的ip地址
-s显示短主机名称,在第一个点处截断
-y显示NIS域名

临时修改主机名

所谓的临时修改主机名,就是当前系统有效,重启系统后失效变回原主机名。命令格式如下:

# 语法
hostname 新主机名
# 示例,修改新主机名为 centos-7
hostname centos-7

在这里插入图片描述

永久修改主机名

命令修改:

systemctl set-hostname 主机名

文件修改:

如果是 CentOS 7 及以上(包括 7)的版本,则需要修改 /etc/hostname 文件。直接填入新主机名即可。

三、Route命令

观察路由表信息

route [-nee]
-n :不要使用通讯协定或主机名称,直接使用 IP 或 port number;
-ee :使用更详细的资讯来显示

输出详解

在这里插入图片描述

route命令输出的路由表字段含义如下:

Destination 目标网络或目标主机(本机的数据要发送的目的地:子网或主机),与Genmask组成一个网段。

Gateway 网关(如果是默认网关,网关的地址必须和自己的主机上的其中一块网卡在同一子网)即网关地址。如果没有就显示星号。

Genmask 网络掩码,如果目标网络的的子网掩码为255.255.255.255,说明目标是一台主机;如果子网掩码为’0.0.0.0’ 说明该路由是默认路由。

Flags(旗标)

代表的意义如下:

U (route is up):该路由是启动的;
H (target is a host):目标是一部主机 (IP) 而非网段;
G (use gateway):需要透过外部的主机 (gateway) 来转递封包(该行有gw);
R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标;
D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由
M (modified from routing daemon or redirect):路由已经被修改;
! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)
A (installed by addrconf)
C (cache entry)

Metric 距离、跳数。暂无用。与目标的“距离”(通常以跳数计算)。它不被最近的内核使用,但可能需要路由守护进程。

**Ref ** 不用管,恒为0, 对这条路线的引用次数(Linux内核已不再使用)。

Use 该路由被使用的次数,可以粗略估计通向指定网络地址的网络流量。 路线查询次数。根据-F和-C的使用,这将是路由高速缓存丢失(-F)或命中(-C)。

Iface 接口,即eth0,eth1等网络接口名,为此路由发送数据包的接口。

添加路由

route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]
参数:
-net :表示后面接的路由为一个网域(网段)的路由;
-host :表示后面接的为连接到单部主机的路由;
netmask :掩码,决定了网域的大小(配合-net使用,构成一个网段);
gw :gateway 的简写,后续接的是 IP (必须和本机的其中一块网卡处于同一网段),与 dev 不同;
dev :如果只是要指定由哪一块网卡连线出去,则使用这个设定,后面接 eth0了,eth1 等

删除路由

格式:
route del -net {NETWORK-ADDRESS} netmask {NETMASK} reject

添加、删除默认网关记录

在同一个主机的路由表中只有一条默认网关记录,若同时存在多条默认网关记录,则可能导致该主机的网络连接出现故障。

添加删除默认网关记录时,与添加、删除静态路由记录的命令格式类型,但制定目标网段时,只需简单地使用“ default ”表示即可。

  • 添加默认网关 route add default gw xxx.xx.x.xxx
  • 删除默认网关 route del default gw xxx.xxx.x.xxx

四、netstat命令

命令介绍

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

命令选项

  • -a:查看所有连接
  • -c:持续列出网络状态
  • -e:显示网络其他相关信息
  • -g:显示多重广播功能群组组员名单。
  • -i:显示网络界面信息表单
  • -l:显示监控中的服务器的SOCKET
  • -n:直接打印连接的IP地址与端口信息
  • -p:显示正在使用SOCKET的程序识别码和程序名称
  • -r:显示路由信息
  • -s:显示网络工作信息统计表
  • -t:显示TCP传输协议的连线状况
  • -u:显示UDP传输协议的连线状况
  • -v:显示指令执行过程
  • -w:显示RAW传输协议的连线状况
  • -F:显示FIB
  • -C:显示路由器配置的快取信息
  • -A:列出该网络类型连线中的相关地址
  • -N:显示网络硬件外围设备的符号连接名称
  • -M:显示伪装的网络连线

①通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显示对应的进程信

②配合管道符grep过滤出特定的记录

netstat -t | wc -l统计系统中的TCP连接数

netstat -tln查看系统中的TCP连接监听地址与端口信息

netstat -tlnp查看系统中的TCP连接监听地址、端口以及进程等信息

netstat -tn | grep -v ESTABLISHED查看系统中的非正常连接

五、获取socket统计信息-ss

语法

ss (选项)

选项

-h, --help 帮助信息

-V, --version 程序版本信息

-n, --numeric 不解析服务名称

-r, --resolve    解析主机名

-a, --all 显示所有套接字(sockets)

-l, --listening 显示监听状态的套接字(sockets)

-o, --options    显示计时器信息

-e, --extended    显示详细的套接字(sockets)信息

-m, --memory     显示套接字(socket)的内存使用情况

-p, --processes 显示使用套接字(socket)的进程

-i, --info 显示 TCP内部信息

-s, --summary 显示套接字(socket)使用概况

-4, --ipv4      仅显示IPv4的套接字(sockets)

-6, --ipv6      仅显示IPv6的套接字(sockets)

-0, --packet     显示 PACKET 套接字(socket)

-t, --tcp 仅显示 TCP套接字(sockets)

-u, --udp 仅显示 UCP套接字(sockets)

-d, --dccp 仅显示 DCCP套接字(sockets)

-w, --raw 仅显示 RAW套接字(sockets)

-x, --unix 仅显示 Unix套接字(sockets)

-f, --family=FAMILY 显示 FAMILY类型的套接字(sockets),FAMILY可选,支持 unix, inet, inet6, link, netlink

-A, --query=QUERY, --socket=QUERY

   QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]

-D, --diag=FILE   将原始TCP套接字(sockets)信息转储到文件

 -F, --filter=FILE  从文件中都去过滤器信息

    FILTER := [ state TCP-STATE ] [ EXPRESSION ]

 

六、测试网络连接

ping

linux下的ping和windows下的ping稍有区别,linux下ping不会自动终止,需要按ctrl+c终止或者用参数-c指定要求完成的回应次数。

1.命令格式:

ping [参数] [主机名或IP地址]

2.命令功能:

ping命令用于:确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络。如果主机正在运行并连在网上,它就对回送信号进行响应。每个回送信号请求包含一个网际协议(IP)和 ICMP 头,后面紧跟一个 tim 结构,以及来填写这个信息包的足够的字节。缺省情况是连续发送回送信号请求直到接收到中断信号(Ctrl-C)。

ping 命令每秒发送一个数据报并且为每个接收到的响应打印一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。ping 命令在程序超时或当接收到 SIGINT 信号时结束。Host 参数或者是一个有效的主机名或者是因特网地址。

3.命令参数:

-d 使用Socket的SO_DEBUG功能。

-f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。

-n 只输出数值。

-q 不显示任何传送封包的信息,只显示最后的结果。

-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。

-R 记录路由过程。

-v 详细显示指令的执行过程。

-c 数目:在发送指定数目的包后停止。

-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。

-I 网络界面:使用指定的网络界面送出数据包。

-l 前置载入:设置在送出要求信息之前,先行发出的数据包。

-p 范本样式:设置填满数据包的范本样式。

-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。

-t 存活数值:设置存活数值TTL的大小。

tcpping

tcpping [-d] [-c] [-C] [-w sec] [-q num] [-x count] ipaddress [port]
 -d 在每个响应时间前,打印时间戳

 -c 以列表形式显示

 -C 输出类似于fping工具中-C选项的结果

 -w 等待时间(默认 3-r 每N秒重试一次(默认 1-x 限定测试总时长 (默认 无限)

 

 实例:测试服务器到大陆TCP是否畅通

 在这里,我们要用到百度官网的IP:119.75.217.109 以及他的TCP端口:80
tcping 119.75.217.109 80

traceroute命令(路由跟踪)

命令格式

traceroute [参数] [主机]

命令参数:

-d 使⽤Socket层级的排错功能。

-f 设置第⼀个检测数据包的存活数值TTL的大小。

-F 设置勿离断位。

-g 设置来源路由网关,最多可设置8个。

-i 使⽤指定的⽹络界面送出数据包。

-I 使用ICMP回应取代UDP资料信息。

-m 设置检测数据包的最大存活数值TTL的大小。

-n 直接使⽤IP地址而非主机名称。

-p 设置UDP传输协议的通信端⼝。

-r 忽略普通的Routing Table,直接将数据包送到远端主机上。

-s 设置本地主机送出数据包的IP地址。

-t 设置检测数据包的TOS数值。

-v 详细显表示指令的执行过程。

-w 设置等待远端主机回报的时间。

-x 开启或关实例

例子4.1 : traceroute www.internationalsaimoe.com 结果:

在这里插入图片描述

说明:

记录按序列号从1开始,每个纪录就是⼀跳 ,每跳表示一个⽹关,看到每行有三个时间,单位是ms,其实就是-q的默认参数。探测数据包向每个⽹关发送三个数据包后,网关响应后返回的时间;如果用 traceroute -q 4 www.58.com ,表示向每个⽹关发送4个数据包。闭数据包的正确性检验。

七、域名解析-nslookup

DNS英文全称Domain Name System,它是域名系统,在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,及正向解析与反向解析:

① 正向解析:将指定的域名解析为相应的IP地址

② 反向解析:将指定的IP地址解析为相对应的域名。

yum install -y bind-utils

nslookup 的查询在不指定参数的情况下,默认查询的类型为A。

nslookup internationalsaimoe.com

在这里插入图片描述

  • 最上面的 Server 和 Address 是该词查询的 DNS 服务器。可以自己指定,也可以默认,之后会说到。

主服务器配置文件

配置文件:/etc/resolv.conf
①/etc/resolv.conf 文件记录了本机默认使用的DNS服务器的地址信息,对于该文件所做的修改将会立刻
生效。
②Linux系统中最多可以指定3个不同的DNS服务器(超过3个的会被忽略),有限使用第一个DNS服务
器。
③resolv.cong文件中的“searh localdomain”行用来设置默认的搜索域(域名后缀),例如:当访问主机
“localhost”时,就相当于访问“localhost.localdomain ”。

八、本地主机映射

保存主机名与ip地址的映射记录
映射文件路径:/etc/hosts

配置映射关系

编辑文件vim /etc/hosts,在文件末尾添加映射关系,比如:192.168.171.72 dsports-asp

hosts文件和DNS服务器比较
①默认情况下,系统首先从hosts文件查找解析记录
②hosts文件只对当前主机有效
③hosts文件可减少DNS查询过程,从加快访问速度
在这里插入图片描述

  • 33
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 为了保证网络的质量和性能,网络流量控制是至关重要的一环。而在Linux系统中,一个强大而又实用的流量控制工具就是tc命令。tc是Traffic Control的缩写,具有高度的可定制性和灵活性,可以轻松地对本地以及远程网络流量进行管理和控制,在网络带宽有限的情况下,实现对不同类型流量的优先级控制和限制。 tc的基本原理是基于网络包的分类和标记。当网络流量通过设备时,tc根据设定的规则将流量拆分为不同的类别,并分别设置相应的规则和限制参数。这些参数包括带宽、延迟、延迟抖动、丢包率等。同时,tc还支持多种类型的队列 (FIFO、SFQ、HTB 等)。不同类型的队列可以根据规则在相应的时间段内进行数据的整流、传输和分配,从而保证带宽分配的公平性和稳定性。而通过设置分类和标记策略,可以使不同流量类型的带宽分配更加精细和灵活,从而改善网络传输效率和用户体验。 要使用tc命令,我们需要先安装iproute2软件包。然后,通过tc命令行选项来设置规则和限制参数。主要步骤包括:创建qdisc(队列),创建class(分类),设置filters (过滤器)等。在实际应用中,我们需要根据网络要求,合理设计并设置规则和限制参数,以达到最优网络流量控制的效果。 总之,tc是一个非常重要和实用的流量控制工具,对于网络工程师和系统管理员来说绝对是必备的技能。通过深入了解tc的原理和使用方法,能够更加有效地解决网络拥塞、带宽限制等问题,提高网络性能和可靠性。而相应的pdf资料,也可以更有针对性地辅助我们实现更好的流量控制效果。 ### 回答2: nux流控是通过Linux系统提供的Traffic Control(TC)工具进行设置和配置的,以实现对数据流量的管控和限制。主要应用场景是在网络拥塞或带宽受限的情况下,为了保证高优先级业务的正常运行,对低优先级业务进行限速、限制和优化。 TC命令是Traffic Control的缩写,它可以对网络传输过程中的数据包进行处理和转发。通过设置TC规则,可以对网络各类数据流量进行分类、过滤、限制和重定向。在这里我们用一张图来描述Linux TC工具的架构和作用方式: ![TC工具架构图.png](https://i.loli.net/2021/08/19/fHaWFNnzulP2Uwt.png) 从上面这张图可以看到,TC命令涉及到以下几个重要概念和组件: 1. 类别(Class):根据不同的业务需求,将网络流量分成多个不同的类别,如VoIP、视频、文件传输等。 2. 过滤器(Filter):对流经网络接口的数据包进行过滤,根据不同的需求将其分发到不同的类别。 3. 排队器(Queue):对单个类别内的数据包进行排队和缓存,通过不同的算法和方式保证高优先级流量优先得到传输。 4. 操作符(Action):影响某一个类别内数据包的传输、延迟、丢失等行为。 在TC命令中,最常用的参数包括“qdisc”和“class”,分别表示队列和分类。其中,qdisc主要管理队列的行为,包括先进先出(FIFO)、加权公平队列(WFQ)、不可抗拒队列(DRR)等;而class则是设置不同数据流的优先级、带宽、延迟、丢包等参数。 除了上面提到的常用参数外,还有一些其他常见参数: 1. Limit:队列的容量限制,以防止流量载。 2. Rate:带宽的速率限制,可以限制每一个类别的带宽限制。 3. Delay:延迟的设置,用于保证高优先级数据的实时性。 4. Jitter:设置数据包的延迟抖动范围,以达到更好的网络服务质量。 在Linux TC的流控体系中,QoS(Quality of Service)质量级别服务是非常重要的一环。QoS是一种以数据流量为中心的网络服务质量方案,也是TC工具设置中最为复杂和关键的一部分。通过QoS对网络中的数据流进行分类、策略和管理,以确保业务的高效稳定运行。 以上为简单介绍了Linux TC流控和QoS方面的一些基本原理。如果想要学习更详细的操作方法和技巧,可以参考TC命令的官方手册或其他相关资料。 ### 回答3: "Nux流控tc设置"是一个基于Linux操作系统的流量控制工具,它使用tc命令进行配置和管理。TC(Traffic Control)是Linux内核提供的一种网络流量控制机制,它可以通过限制网络包的传输速度、优先级和服务质量(QoS)等方式,来实现网络带宽的增加、减少和分配等。 TC命令需要使用终端来执行,其基本语法结构为“tc qdisc/ class/filte/subcomand”,其中qdisc表示队列结构,class表示分级结构,filter表示过滤器,subcommand则表示子命令。在使用TC命令时,需要了解各个参数所代表的意义,以及流控原理和QoS技术的应用。 为了更好地应用TC命令,需要对其背后的流控原理和QoS技术进行了解和掌握。流控原理是指通过对流量进行分类、分级和标记,从而实现对网络带宽的分配和限制。QoS技术是指通过设置网络服务质量策略,对不同类型的网络流量进行分类和优化,从而识别高优先级的流量,保证其稳定和可靠的传输。 TC命令的设置和管理需要安装nux流控软件,可以通过pdf文档来进行学习和掌握。在学习过程中,需要针对不同的环境和需求,进行TC命令的灵活设置和管理,从而实现对网络流量的全面控制和优化。最终达到提高网络带宽利用率、减少拥堵和提升用户体验等目的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值