当前位置: 首页 > news >正文

Linux网络配置(超详细)

Linux网络配置大全

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


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=QUERYQUERY := {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查询过程,从加快访问速度
在这里插入图片描述

相关文章:

  • 本地项目上传到GitHub
  • leetcode283-Move Zeroes
  • vue实现相机拍摄,可录视频、拍照片、前置后置切换(简单小demo)
  • Redis的Hash数据结构中100万对field和value,field是自增时如何优化?优化Hash结构。
  • Git 核心知识
  • idea从零开发Android 安卓 (超详细)
  • 算法系列--动态规划--特殊的状态表示--分析重复子问题
  • python opencv之提取轮廓并拟合圆
  • 智慧公厕,为智慧城市建设注入了新的活力
  • 杰理芯片AC79——物联网远程点亮/关闭LED灯
  • 【力扣每日一题】2908. 元素和最小的山形三元组 I
  • Oracle VM(虚拟机)性能监控工具
  • libevent解析GET参数
  • 基于springboot实现数据库的加解密
  • darknet | 编译darknet报错nvcc fatal: Path to libdevice library not specified
  • 08.Android之View事件问题
  • C学习-枚举(九)
  • Flannel解读
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java应用性能调优
  • Laravel 实践之路: 数据库迁移与数据填充
  • Mac转Windows的拯救指南
  • Terraform入门 - 1. 安装Terraform
  • uni-app项目数字滚动
  • 反思总结然后整装待发
  • 分布式事物理论与实践
  • 浮现式设计
  • 经典排序算法及其 Java 实现
  • 时间复杂度与空间复杂度分析
  • 温故知新之javascript面向对象
  • 写代码的正确姿势
  • 怎么将电脑中的声音录制成WAV格式
  • ​ArcGIS Pro 如何批量删除字段
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ​业务双活的数据切换思路设计(下)
  • # centos7下FFmpeg环境部署记录
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (+4)2.2UML建模图
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (4)Elastix图像配准:3D图像
  • (WSI分类)WSI分类文献小综述 2024
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转) Face-Resources
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)scrum常见工具列表
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • /usr/bin/env: node: No such file or directory
  • ::
  • ??myeclipse+tomcat
  • [].slice.call()将类数组转化为真正的数组
  • [Android Pro] AndroidX重构和映射
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • [C]编译和预处理详解