C03S01-Linux网络基本设置

部署运行你感兴趣的模型镜像

一、查看网络基本信息

1. ip命令 – 显示与配置网卡信息

ip命令的功能是显示与配置网卡信息。

ip [选项] 对象 [动作]

常见的对象:

对象功能
addressIP地址信息
route路由表信息

2. ifconfig命令 – 显示或设置网络设备参数信息

ifconfig命令来自英文词组network interfaces configuring的缩写,功能是显示或设置网络设备参数信息。

ifconfig [选项] [网卡] [IP地址] [动作]

常见的选项:

选项功能
-a显示全部网卡

常见的动作:

动作功能
add设置网络地址
del删除网络地址
down关闭网络设备
up启动网络设备

ifconfig显示的内容:

ifconfig

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.128  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe9a:2e0e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:9a:2e:0e  txqueuelen 1000  (以太网)
        RX packets 102725  bytes 148357711 (148.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 64957  bytes 3947529 (3.9 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (本地环回)
        RX packets 172  bytes 16011 (16.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 172  bytes 16011 (16.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • flags=4163<UP,BROADCAST,RUNNING,MULTICAST>:表示网络接口的状态,UP表示接口已激活,BROADCAST表示支持广播,RUNNING表示接口正在运行,MULTICAST表示支持多播。
  • mtu 1500:最大传输单元(Maximum Transmission Unit),即网络接口能够传输的最大数据包大小,这里是1500字节。
  • inet 192.168.1.128:IPv4地址。
  • netmask 255.255.255.0:子网掩码。
  • broadcast 192.168.1.255:广播地址。
  • inet6 fe80::20c:29ff:fe9a:2e0e:IPv6地址。
  • prefixlen 64:IPv6地址的前缀长度。
  • scopeid 0x20<link>:表示这是一个链路本地地址。
  • ether 00:0c:29:9a:2e:0e:MAC地址,也就是网卡的物理地址。
  • txqueuelen 1000:发送队列的长度。
  • RX packets、TX packets:分别表示接收和发送的数据包数量。
  • bytes:接收和发送的总字节数。
  • RX errors、TX errors:接收和发送时的错误数。
  • dropped:由于缓冲区满等原因而丢弃的数据包数。
  • overruns:由于缓冲区溢出而丢失的数据包数。
  • frame:由于帧同步错误而丢失的数据包数。
  • carrier:表示物理层的载波检测状态。
  • collisions:在发送数据时发生的冲突数。

设置网络设备的虚拟网卡:

ifconfig ens33:1 192.168.1.100/24
  • ens33:1:虚拟网卡名称。ens33是物理网卡名称,:1表示这是一个虚拟接口。
  • 192.168.1.100/24:分配给虚拟网卡的IP地址和子网掩码。
  • 注意:物理网卡要能够正常工作,接口名称可以是数字或者是字母,名称不能够重复;当系统重启或者虚拟网卡停止使用后,就会消失。

3. ifup命令 – 激活网络接口

ifup命令来自英文词组“interface up”的缩写,功能是用于启用网卡。

ifup 网卡名称

4. ifdown命令 – 禁用网络接口

ifdown命令来自英文词组“interface down”的缩写,功能是用于禁用网络接口。

ifdown 网卡名称

5. route命令 – 显示与设置路由信息

route命令的功能是显示与设置路由信息,是Linux系统中常用的静态路由配置工具。

route [选项] [动作]

常见的选项:

选项功能
-n以数字形式显示IP地址

6. netstat命令 – 显示网络状态

netstat命令来自英文词组network statistics的缩写,功能是显示各种网络相关信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等。

netstat [选项]

常见的选项:

选项功能
-a显示所有活动的网络连接信息
-n以数字形式显示IP、端口等
-p显示活动接口的PID和程序名称(进程信息)
-r显示路由表信息
-t显示TCP协议连接的信息
-u显示UDP协议连接的信息

netstat查看的网络状态的连接信息主要内容:

netstat -antp


Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      843/cupsd
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      511/systemd-resolve
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      831/sshd: /usr/sbin
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      1791/sshd: root@pts
tcp        0      0 192.168.1.128:22        192.168.1.1:3880        ESTABLISHED 1793/sshd: root@not
tcp        0      0 192.168.1.100:22        192.168.1.1:5078        ESTABLISHED 2716/sshd: root@pts
tcp        0     48 192.168.1.128:22        192.168.1.1:3878        ESTABLISHED 1791/sshd: root@pts
  • Proto:协议类型。
  • Recv-Q:接收队列的大小,表示等待被应用程序读取的数据量。0表示没有数据在队列中。
  • Send-Q:发送队列的大小,表示等待被发送的数据量。0表示没有数据在队列中。
  • Local Address:本地地址和端口,格式为IP地址:端口号。
  • Foreign Address:远程地址和端口,格式为IP地址:端口号。0.0.0.0:*或:::*表示接受任意IP地址的连接。
  • State:连接的状态,如LISTEN表示监听状态,等待连接;ESTABLISHED表示连接已建立,0.0.0.0:*表示任意IP地址都可以连接。
  • PID/Program name:与本地地址关联的进程ID和程序名称。

7. ss命令 – 显示活动套接字信息

ss命令来自英文词组“Socket Statistics”的缩写,和netstat命令类似,功能是用于显示活动套接字信息。

ss [选项]

常见的选项:

选项功能
-a显示所有套接字信息
-n以数字形式显示IP、端口等
-p显示套接字的进程信息
-t显示TCP协议的套接字信息
-u显示UDP协议的套接字信息

ss查看的套接字信息主要内容:

ss -antp

State    Recv-Q   Send-Q     Local Address:Port      Peer Address:Port   Process
LISTEN   0        128            127.0.0.1:631            0.0.0.0:*       users:(("cupsd",pid=843,fd=7))
LISTEN   0        4096       127.0.0.53%lo:53             0.0.0.0:*       users:(("systemd-resolve",pid=511,fd=14))
LISTEN   0        128              0.0.0.0:22             0.0.0.0:*       users:(("sshd",pid=831,fd=3))
  • State:连接的状态。
  • Recv-Q:接收队列的大小,表示等待被应用程序读取的数据量。0表示没有数据在队列中。
  • Send-Q:发送队列的大小,表示等待被发送的数据量。这里128和4096表示有数据在队列中等待发送。
  • Local Address:Port:本地地址和端口,格式为IP地址:端口号。%lo表示这是一个回环接口(loopback interface),仅在本地机器上可访问。
  • Peer Address:Port:远程地址和端口,格式为IP地址:端口号。0.0.0.0:*表示接受任意IP地址的连接。
  • Process:与本地地址关联的进程信息,包括进程名称、进程ID(pid)和文件描述符(fd)。

8. lsof命令 – 查看文件的进程信息

lsof命令来自英文词组list opened files的缩写,功能是查看文件的进程信息。

lsof [选项]

常见的选项:

选项功能
-i显示符合条件的进程信息
-p显示指定UID的进程信息

二、测试网络连接性

1. ping命令 – 测试主机间网络连通性

ping命令的功能是测试主机间网络的连通性,它发送出基于ICMP传输协议的数据包,要求对方主机予以回复。

ping [选项] IP地址或域名

常见的选项:

选项功能
-c设置发送数据包的次数
-i设置发送数据包的时间间隔
-w设置程序结束前的等待时间
-W设置响应的等待时间

2. traceroute命令 – 追踪网络数据包传输路径

traceroute命令来自英文词组“Trace router”的拼写,其功能是用于追踪网络数据包传输路径。

traceroute [选项] IP地址或域名

三、查看网络域名信息

1. nslookup命令 – 查询域名服务器信息

nslookup命令来自英文词组“Nameserver lookup”的缩写,功能是用于查询域名服务器信息。

nslookup [选项] IP地址或域名
  • 可以在/etc/hosts文件里配置本地的域名与IP映射。
  • 本地的DNS域名解析配置文件是/etc/resolv.conf。

四、配置网络信息

1. 配置静态网络

1.1 CentOS系统

  1. 编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33。

  2. 将BOOTPROTO属性的属性值修改为static,ONBOOT属性的属性值修改成yes。

  3. 在文件中新增以下内容,设置虚拟机的静态IP、子网掩码、网关、DNS。

    IPADDR=192.168.1.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.254
    DNS1=114.114.114.114
    DNS2=8.8.8.8
    
  4. 保存文件后,重启网络服务。

    systemctl restart network
    

1.2 Ubuntu系统

  1. 编辑网卡配置文件/etc/netplan/01-network-manager-all.yaml。

  2. 在文件中写入以下内容,设置虚拟机的静态IP、子网掩码、网关、DNS。

    network:
      ethernets:
        ens33:
          dhcp4: no
          addresses: [192.168.1.128/24]
          gateway4: 192.168.1.254
          nameservers:
            addresses: [218.2.135.1]
    
  3. 保存文件后,重启网络服务。

    netplan apply
    

2. 配置多网卡

2.1 CentOS系统

  1. 添加新网卡。在VMware中给虚拟机新增一个网络适配器。

  2. 使用ip或ifconfig命令查看新网卡的名称。

  3. 复制原有网卡的配置文件,并改为新网卡名。

    cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36
    
  4. 编辑ens36的配置文件,修改文件里的网卡名、IP地址,注释UUID。

    NAME=ens36
    #UUID=1b92a67a-e9b6-48cc-8283-f8158b738064
    DEVICE=ens36
    
    IPADDR=192.168.1.3
    
    • 或是使用uuidgen随机生成一个UUID,再将文件里的原UUID修改为新生成的UUID。

    • 也可以直接覆盖原配置内容。

      TYPE=Ethernet
      BOOTPROTO=static
      NAME=ens36
      DEVICE=ens36
      ONBOOT=yes
      IPADDR=192.168.1.3
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.254
      DNS1=114.114.114.114
      DNS2=8.8.8.8
      
  5. 保存文件后,重启网络服务。

    systemctl restart network
    

2.2 Ubuntu系统

  1. 添加新网卡。在VMware中给虚拟机新增一个网络适配器。

  2. 使用ip或ifconfig命令查看新网卡的名称。

  3. 编辑网卡配置文件,在文件中按照原有网卡配置的格式来新增新网卡的配置,具体内容如下所示。

    network:
      ethernets:
        ens33:
          dhcp4: no
          addresses: [192.168.1.128/24]
          gateway4: 192.168.1.254
          nameservers:
            addresses: [218.2.135.1]
        # 新增网卡
        ens37:
          dhcp4: no
          addresses: [192.168.1.130/24]
          gateway4: 192.168.1.254
          nameservers:
            addresses: [218.2.135.1]
    
  4. 保存文件后,重启网络服务。

    netplan apply
    

3. 配置Bond网卡

3.1 Bond网卡概述

Bond网卡,也称为网卡绑定或网卡捆绑,是一种将两个或更多的物理网卡绑定成一个虚拟网卡的技术。这样做的目的是为了实现本地网卡的冗余、带宽扩容和负载均衡,如果其中一个网卡故障,不会影响系统的网卡正常工作。

Bond网卡支持七种不同的工作模式,下面是七种工作模式的介绍。

  1. Mode 0 :轮询模式。两个网卡都会使用,数据包按照轮询的方式依次发送到每个网卡,实现负载均衡。这种模式不提供冗余性。
  2. Mode 1:主备模式。具有冗余功能,只有一个工作,另一个备用。
  3. Mode 2 :均衡模式。使用源和目的MAC地址以及传输层协议和端口号来选择要发送的网卡。提供负载均衡和冗余。
  4. Mode 3:广播模式。将所有数据包发送到所有网卡。实现广播传输,但不提供负载均衡或冗余性。
  5. Mode 4 (802.3ad):LACP模式(动态链接聚合)。使用LACP协议动态协商绑定接口的工作方式,提供负载均衡和冗余性。
  6. Mode 5 (balance-tlb):负载均衡模式,以太网设备能够获取每个网卡的速率。
  7. Mode 6 (balance-alb):自适应负载均衡模式,针对数据流量实现负载均衡,不需要特殊的交换机支持。

3.2 Bond 0模式配置

  1. 配置逻辑网卡bond0。

    vi /etc/sysconfig/network-scripts/ifcfg-bond0
    
    TYPE=Ethernet
    BOOTPROTO=static
    NAME=bond0
    DEVICE=bond0
    ONBOOT=yes
    IPADDR=192.168.1.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.254
    DNS1=114.114.114.114
    DNS2=8.8.8.8
    BONDING_OPTS="miimon=100 mode=0 fail_over_mac=1"
    
  2. 配置物理网卡ens33和ens36。

    vi /etc/sysconfig/network-scripts/ifcfg-ens33
    
    TYPE=Ethernet
    BOOTPROTO=none
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes
    USERCTL=no
    
    vi /etc/sysconfig/network-scripts/ifcfg-ens36
    
    TYPE=Ethernet
    BOOTPROTO=none
    NAME=ens36
    DEVICE=ens36
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes
    USERCTL=no
    
  3. 加载bonding模块。

    modprobe bonding
    
  4. 重启网络服务。

    systemctl restart network
    

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

你希望根据 `file_id` 字段中某个部分(如 `-2509-` 或 `-2508-`)为每个相同前缀的值生成**唯一递增的流水号**,例如: - 原始值:`C03-PCB-TS-2509-51`、`C03-PCB-TS-2509-51` - 期望值:`C03-PCB-TS-2509-52`、`C03-PCB-TS-2509-53` --- ## ✅ 实现思路 1. 使用 SQL 提取 `file_id` 中的“前缀”部分(即 `-2509-` 前的部分); 2. 使用 `ROW_NUMBER()` 按该前缀进行编号; 3. 使用 `UPDATE` 更新 `file_id` 字段为新生成的唯一值。 --- ## ✅ 示例 SQL(以 PostgreSQL 为例) ### 1. 查看当前数据结构和生成新值(测试阶段) ```sql SELECT file_id, -- 提取前面的固定部分,如 C03-PCB-TS-2509- split_part(file_id, '-', 1) || '-' || split_part(file_id, '-', 2) || '-' || split_part(file_id, '-', 3) || '-' || split_part(file_id, '-', 4) || '-' AS prefix, -- 使用 ROW_NUMBER() 为每个前缀生成唯一编号 ROW_NUMBER() OVER (PARTITION BY split_part(file_id, '-', 1) || '-' || split_part(file_id, '-', 2) || '-' || split_part(file_id, '-', 3) || '-' || split_part(file_id, '-', 4) ORDER BY file_id ) AS seq FROM testdup.dynamic_general_ledger; ``` --- ### 2. 更新 `file_id` 字段(正式操作) ```sql WITH numbered AS ( SELECT id, file_id, split_part(file_id, '-', 1) || '-' || split_part(file_id, '-', 2) || '-' || split_part(file_id, '-', 3) || '-' || split_part(file_id, '-', 4) AS prefix, ROW_NUMBER() OVER (PARTITION BY split_part(file_id, '-', 1) || '-' || split_part(file_id, '-', 2) || '-' || split_part(file_id, '-', 3) || '-' || split_part(file_id, '-', 4) ORDER BY file_id ) AS seq FROM testdup.dynamic_general_ledger ) UPDATE testdup.dynamic_general_ledger AS t SET file_id = n.prefix || (n.seq + 51) -- 从 52 开始 FROM numbered AS n WHERE t.id = n.id; ``` > ✅ 解释: > - `split_part(..., '-', 4)` 提取前4段,作为分组依据; > - `ROW_NUMBER()` 为每个组生成唯一编号; > - `+ 51` 表示从 `52` 开始生成流水号; > - 使用 `id` 做关联更新,确保准确。 --- ## ✅ 示例输出 | 原始 file_id | 新 file_id | |--------------|-------------| | C03-PCB-TS-2509-51 | C03-PCB-TS-2509-52 | | C03-PCB-TS-2509-51 | C03-PCB-TS-2509-53 | | C03-PCB-TS-2508-51 | C03-PCB-TS-2508-52 | | C03-PCB-TS-2508-51 | C03-PCB-TS-2508-53 | --- ## ✅ 注意事项 - **备份数据**:更新前建议先备份表; - **字段长度**:确保 `file_id` 字段长度足够存储新值; - **索引影响**:如果 `file_id` 有索引,更新大量数据可能会影响性能; - **可扩展性**:如果你的 `file_id` 结构更复杂,可以使用正则提取(如 `regexp_match`)。 --- ## ✅ 扩展:使用正则提取前缀(更灵活) ```sql SELECT file_id, (regexp_match(file_id, '^(.*?-\d+)-\d+$'))[1] AS prefix, ROW_NUMBER() OVER (PARTITION BY (regexp_match(file_id, '^(.*?-\d+)-\d+$'))[1] ORDER BY file_id) AS seq FROM testdup.dynamic_general_ledger; ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值