Linux网络配置(超详细)
作者:mmseoamin日期:2024-04-27

Linux网络配置大全

  • Linux网络配置
    • 一.网络地址配置
      • 网络地址查看–ifconfig
      • 使用网络配置命令
        • 设置网络接口参数-ifconfig
        • 禁用(临时)或者重新激活网卡
        • 设置虚拟网络接口
        • 修改网络配置文件
          • 网络接口配置文件
          • IP命令详解
            • OPTIONS选项
            • OBJECT对象
            • ip link
            • 二、获取和修改主机名hostname
              • 查看主机名
              • 临时修改主机名
              • 永久修改主机名
              • 三、Route命令
                • 观察路由表信息
                • 输出详解
                • 添加路由
                • 删除路由
                • 添加、删除默认网关记录
                • 四、netstat命令
                  • 命令介绍
                  • 命令选项
                  • 五、获取socket统计信息-ss
                    • 语法
                    • 选项
                    • 六、测试网络连接
                      • ping
                      • tcpping
                      • traceroute命令(路由跟踪)
                      • 七、域名解析-nslookup
                        • 主服务器配置文件
                        • 八、本地主机映射
                            • 配置映射关系

                              Linux网络配置

                              一.网络地址配置

                              网络地址查看–ifconfig

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

                              Linux网络配置(超详细),在这里插入图片描述,第1张

                              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”:是第一块以太网卡的配置文件

                                Linux网络配置(超详细),在这里插入图片描述,第2张

                                • 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
                                    

                                    Linux网络配置(超详细),在这里插入图片描述,第3张

                                    永久修改主机名

                                    命令修改:

                                    systemctl set-hostname 主机名
                                    

                                    文件修改:

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

                                    三、Route命令

                                    观察路由表信息

                                    route [-nee]

                                    -n :不要使用通讯协定或主机名称,直接使用 IP 或 port number;

                                    -ee :使用更详细的资讯来显示

                                    输出详解

                                    Linux网络配置(超详细),在这里插入图片描述,第4张

                                    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 结果:

                                        Linux网络配置(超详细),在这里插入图片描述,第5张

                                        说明:

                                        记录按序列号从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
                                        

                                        Linux网络配置(超详细),在这里插入图片描述,第6张

                                        • 最上面的 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查询过程,从加快访问速度

                                          Linux网络配置(超详细),在这里插入图片描述,第7张