百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux系统几个跟网络相关的文件和命令

nanshan 2024-12-29 04:53 18 浏览 0 评论


提醒:本文为合集文章,后续持续更新!

关注我持续进步!

其实,Linux的网络知识挺多的,阿铭在本节只把常用的一些技能教给大家。比如,如何设置IP、如何设置主机名、如何设置DNS等。

14.3.1 用ifconfig命令查看网卡IP

前面阿铭曾用过ip addr这个命令来查看系统的IP地址。其实在CentOS 7之前,我们使用最多的命令是ifconfig,它类似于Windows的ipconfig命令,后面不加任何选项和参数时,只打印当前网卡IP的相关信息(如子网掩码、网关等)。在Windows下设置IP非常简单,然而在命令窗口下如何设置呢?这就需要修改配置文件/etc/sysconfig/network-scripts/ifcfg-xxx了,这里的xxx指的是网卡的名字,可以使用ip addr命令查看所有网卡。如果你的系统里没有ifconfig命令,可以使用yum install -y net-tools安装。

如果Linux上有多个网卡,而你只想重启某一个网卡的话,可以使用如下命令:

# ifdown ens33; ifup ens33

ifdown即停用网卡,ifup即启动网卡。需要大家注意的是,如果我们远程登录服务器,当使用命令ifdown ens33时,很有可能后面的命令ifup ens33不会运行。这样会导致我们断网而无法连接服务器,所以请尽量使用命令systemctl restart network来重启网卡。或者使用nmcli也可以实现同样的效果:

# nmcli c down ens33; nmcli c up ens33


14.3.2 给一个网卡设定多个IP

在Linux系统中,网卡是可以设定多重IP的,阿铭就曾经为一台服务器的网卡设定了5个IP。多重IP的设置过程如下:

# cd /etc/sysconfig/network-scripts/
# cp ifcfg-ens33 ifcfg-ens33:1

然后编辑ifcfg-ens33:1这个配置文件。一定要注意DEVICE要写成 ens33:1,如下所示:

# vi ifcfg-ens33:1
//编辑为类似如下内容
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33:1"
UUID="0f632d9e-f3a1-40f9-8116-3340e2db6074"
DEVICE="ens33:1"
ONBOOT="yes"
IPADDR=192.168.72.129
NETMASK=255.255.255.0

其实就是改一下NAME、DEVICE、IPADDR,另外DNS1和GATEWAY可以删除,设置完毕重启网卡,如下所示:

# ifdown ens33 && ifup ens33

之后再查看网卡IP,如下所示:

# ifconfig 
ens33:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
 inet 192.168.72.128  netmask 255.255.255.0  broadcast 192.168.72.255
 inet6 fe80::454b:a2e5:64e5:67a3  prefixlen 64 scopeid 0x20<link>
 ether 00:0c:29:15:7f:b9  txqueuelen 1000  (Ethernet)
 RX packets 66415  bytes 76169910 (72.6 MiB)
 RX errors 0  dropped 0 overruns 0  frame 0
 TX packets 15584  bytes 2655575 (2.5 MiB)
 TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0
ens33:1:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
 inet 192.168.72.129  netmask 255.255.255.0  broadcast 192.168.72.255
 ether
00:0c:29:15:7f:b9  txqueuelen 1000  (Ethernet)

从上面可以看到,多了一个ens33:1。

14.3.3 查看网卡连接状态

示例命令如下:

# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok

这里显示link ok,就说明网卡为连接状态。如果显示no link,说明网卡坏了或者没有连接网线。还有一个命令也可以查看网卡的状态,如下:

# ethtool ens33
Settings for
ens33:
 Supported ports: [ TP ]
 Supported link modes:   10baseT/Half 10baseT/Full
                         100baseT/Half
100baseT/Full
                         1000baseT/Full
 Supported pause frame use: No
 Supports auto-negotiation: Yes
 Supported FEC modes: Not reported
 Advertised link modes:  10baseT/Half 10baseT/Full
                         100baseT/Half
100baseT/Full
                         1000baseT/Full
 Advertised pause frame use: No
 Advertised auto-negotiation: Yes
 Advertised FEC modes: Not reported
 Speed: 1000Mb/s
 Duplex: Full
 Port: Twisted Pair
 PHYAD: 0
 Transceiver: internal
 Auto-negotiation: on
 MDI-X: off (auto)
 Supports Wake-on: d
 Wake-on: d
 Current message level: 0x00000007 (7)
       drv probe link
 Link detected: yes

如果网卡没有连接,最后面一行Link detected显示为no。

14.3.4 更改主机名

在第3章的时候,阿铭已经介绍过如何更改主机名。安装完系统后,主机名默认为localhost. localdomain,使用hostname命令就可以查看Linux的主机名,如下所示:

# hostname
localhost.localdomain

使用hostname命令也可以更改主机名,如下所示:

# hostname Aming
# hostname
Aming

下次登录时,命令提示符[root@localhost ~]中的localhost就会更改成Aming。不过这样修改只是保存在内存中,如果重启,主机名还会变成改动之前的名称。所以更改主机名的同时还需要更改相关的配置文件/etc/hostname。下面阿铭再介绍一种更改主机名的方法,这种方法会自动更改文件内容,如下所示:

# hostnamectl set-hostname aminglinux-123
# hostname
aminglinux-123
# cat /etc/hostname
aminglinux-123


14.3.5 设置DNS

DNS是用来解析域名的。平时我们访问网站都是直接输入一个网址,而DNS把这个网址解析到一个IP。关于DNS的概念,阿铭不再详细介绍,如果你感兴趣就去网上查一下。

在Linux下设置DNS非常简单,只要把DNS地址写到配置文件/etc/resolv.conf中即可。如下所示:

# cat /etc/resolv.conf
# Generated by
NetworkManager
nameserver 119.29.29.29

第一行以#开头的行没有实际意义,仅仅是一个注释,它的意思是,这个配置文件中的DNS IP地址是由NetworkManager服务生成的。那么为什么这个DNS由它生成呢?你是否还有印象,我们在定义网卡配置文件的时候,就有一行DNS1=119.29.29.29,其实就是因为这行配置,该配置文件里才有了nameserver的IP地址。resolv.conf有它固有的格式,一定要写成 nameserver IP的格式。阿铭建议你写两个或多个namserver,系统默认会用第一个namserver去解析域名,当第一个解析不成功时会使用第二个。

说到这,你是否有疑惑:既然两个地方都可以定义DNS的IP地址,那么到底在哪里定义呢?阿铭给出的答案是:如果只是临时修改DNS IP地址,就直接修改/etc/resolv.conf;如果是永久生效的话,还是要修改网卡的配置文件。

在Linux下还有一个特殊文件/etc/hosts也能解析域名,不过需要我们在里面手动添加IP和域名这些内容。它的作用是临时解析某个域名,非常有用。该文件的内容如下:

# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain
localhost6 localhost6.localdomain6

请用Vim编辑该文件,增加一行192.168.72.1 www.baidu.com,保存文件后再ping一下www.baidu.com就会连接到192.168.72.1了。如下所示:

# ping -c 2 www.baidu.com
PING www.baidu.com (192.168.72.1) 56(84) bytes of data.
64 bytes from www.baidu.com (192.168.72.1): icmp_seq=1 ttl=64 time=0.531 ms
64 bytes from www.baidu.com (192.168.72.1): icmp_seq=2 ttl=64 time=0.392 ms
--- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 54ms
rtt min/avg/max/mdev = 0.392/0.461/0.531/0.072 ms

/etc/hosts的格式很简单,每一行为一条记录,分成两部分,第一部分是IP,第二部分是域名。关于hosts文件,有以下几点需要你注意:

  • 一个IP后面可以跟多个域名,可以是几十个甚至上百个;
  • 每一行只能有一个IP,也就是说一个域名不能对应多个IP;
  • 如果有多行中出现相同的域名(对应的IP不一样),会按最前面出现的记录来解析。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: