『学了就忘』Linux基础命令 — 34、配置网络相关命令
1、配置网络常用命令
(1)配置IP地址
IP地址是计算机在互联网中唯一的地址编码。每台计算机如果需要接入网络和其他计算机进行数据通信,就必须配置唯一的公网IP地址。
配置IP地址有两种方法:
- 1)
setup
工具(Red Hat
系列专有) - 2)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
(手工修改配置文件)
提示:真正标准的修改IP地址的方式,还是第二种方式。
(2)网络服务
使用service
脚本来调度网络服务:
- 开启网络服务:
[rootelocalhost ~]# service network start
- 关闭网络服务:
[rootelocalhost ~]# service network stop
- 重启网络服务:
[rootelocalhost ~]# service network restart
直接执行网络服务的管理脚本:
各类服务脚本都存放在/etc/init.d
(或/etc/rc.d/init.d
)目录下,网络服务network
则在/etc/init.d
目录中。
- 启动网络服务:
/etc/init.d/network start
- 关闭网络服务:
/etc/init.d/network stop
- 重启网络服务:
/etc/init.d/network restart
说明:如果虚拟机需要桥接到有线网卡,并重启网络服务。也就是要把网络链接方式改成桥接模式。
(3)重置UUID
有的时候在重启网络的时候,最后一个不是绿色的确定,而是红色的失败,如下面描述:
# 重启网络
[root@DevOps ~]# service network restart
正在关闭接口etho:
关闭环回接口:
弹出界面 eth0:Determining if ip address 192.168.44.8 is already in use for device eth0..
[确定]
# 中文
[root@DevOps ~]# service network restart
正在关闭接口 eth0: [确定]
关闭环回接口: [确定]
弹出环回接口: [确定]
弹出界面 eth0:
正在决定 eth0 的 IP 信息...完成。
[确定]
- 是什么原因?
这里造成失败,可能最大的原因是IP地址冲突了,换个IP即可,也可以选择自动分配IP地址。(桥接模式在局域网内,很容易造成IP地址冲突,为什么,请看之前文章https://www.cnblogs.com/liuyuelinfighting/p/15484936.html)
如果换了好几个IP地址,重启网络服务,还不能解决上述问题,那可能就不是IP地址冲突了,可能就是UUID冲突。 - 什么是UUID?
UUID:唯一识别符,这个UUID是从Red Hat 6
系列出现的。会给你Linux系统上的分区、网卡都生成一串UUID符号。
这个UUID号是写在网卡配置文件中。也就是/etc/sysconfig/network-scripts/ifcfg-eth0
文件。
内容如下所示:[root@DevOps ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0c:29:3f:81:04
TYPE=Ethernet
`UUID=f9b5add2-688c-4b1b-a7cf-e1d0ba66adf3`
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
USERCTL=no
PEERDNS=yes
IPV6INIT=no
这UUID是一串16进制的字符串,重复的可能性几乎没有。
- 既然UUID重复的可能性几乎没有,那为什么会冲突呢?
因为我们现在操作的是虚拟机,有一些情景会造成两个虚拟机出现相同的UUID的情况。比如说快照和克隆。
你的真实机装Linux系统,或者手动安装的Linux虚拟机,都不会发生UUID冲突。
所以这个UUID冲突主要发生在虚拟机Linux系统中,并且有快照和克隆的时候。 - 如何解决?
复制镜像有可能需要重置UUID
1)在网卡配置文件中手动删除MAC地址行
[root@localhost ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0
#删除的是第二行HWADDR(MAC地址)
#因为UUID是依赖MAC地址计算出来的。
[root@DevOps ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
`HWADDR=00:0c:29:3f:81:04`
TYPE=Ethernet
UUID=f9b5add2-688c-4b1b-a7cf-e1d0ba66adf3
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
USERCTL=no
PEERDNS=yes
IPV6INIT=no
2)删除MAC地址和UUID绑定文件
[root@localhost ~] # rm -rf/etc/udev/rules.d/70-persistent-net.rules
3)重启Linux
[rootelocalhost ~] # reboot
重启之后UUID就会重新计算,所计算出来的UUID,基本上没有可能在重复了。以上问题也就解决了。
2、ifconfig命令
ifconfig
命令的基本信息:
- 命令名称:
ifconfig
- 英文原意:
configure a network interface
- 所在路径:
/sbin/ifconfig
- 执行权限:超级用户。
- 功能描述:配置网络接口。
ifconfig
命令最主要的作用就是查看IP地址的信息,直接输入ifconfig
命令即可。
如下图所示:
注意:其中最主要的三个数据为IP地址、MAC地址、子网掩码。
3、ping命令
ping
是常用的网络命令,主要通过ICMP协议进行网络探测,测试网络中主机的通信情况。
(原理是我向对方发一个包,对方回复我了,证明这个网络是通的。)
(1)ping命令的基本信息
- 命令名称:
ping
- 英文原意:
send ICMP ECHO_REQUEST to network hosts
- 所在路径:
/bin/ping
- 执行权限:所有用户。
- 功能描述:向网络主机发送ICMP请求。
ping
命令的基本格式如下:
[root@localhost ~]# ping [选项] IP
选项:
-b:后面加入广播地址,用于对整个网段进行探测
-c次数:用于指定ping的次数
-s字节:指定探测包的大小
# 提示:Linux系统下用ctrl+c进行终止。
(2)例子:探测网段中的可用主机
在ping
命令中,可以使用-b
选项,后面加入广播地址,探测整个网段。我们可以使用这个选项知道整个网络中有多少主机是可以和我们通信的,而不用一个一个IP地址地进行探测。例如:
#探测192.168.103.0/24网段中有多少可以通信的主机
[root@localhost ~]# ping -b -c 3 192.168.103.255
WARNING:pinging broadcast address PING 192.168.103.255(192.168.103.255)56(84)bytes of data.
64 bytes from 192.168.103.199:icmp seq=1 tt1=64 time=1.95 ms
64 bytes from 192.168.103.168:icmp seq=1 tt1=64 time=1.97 ms(DUP!)
64 bytes from 192.168.103.252:icmp seq=1 tt1=64 time=2.29 ms(DUP!)
..省略部分内容…
说明:
192.168.103.255:225
为广播地址,是询问103网段有多少个IP在,用于检查当前网段中有多少台电脑可以通信。
4、netstat 命令
netstat
是网络状态查看命令,既可以查看到本机开启的端口,也可以查看有哪些客户端连接。
在CentOS7.x
中netstat
命令默认没有安装,如果需要使用,需要安装net-snmp
和net-tools
软件包。(CentOS6中自动安装)
netstat
命令的基本信息:
- 命令名称:
netstat
- 英文原意:
Print network connections,routing tables,interface statistics,masquerade connections,and multicast memberships
- 所在路径:
/bin/netstat
- 执行权限:所有用户。
- 功能描述:输出网络连接、路由表、接口统计、伪装连接和组播成员。
netstat
命令格式如下:
[rootelocalhost ~]# netstat [选项]
选项:
-a:列出所有网络状态,包括 Socket程序
-c秒数:指定每隔几秒刷新一次网络状态
-n:使用IP地址和端口号显示,不使用域名与服务名
-p:显示PID和程序名
-t:显示使用TCP协议端口的连接状况-u:显示使用UDP协议端口的连接状况
-1:仅显示监听状态的连接
-r:显示路由表
使用1:查看本机开启的端口
这是本机最常用的方式,使用选项-tuln
。因为使用了-l
选项,所以只能看到监听状态的连接,而不能看到已经建立连接状态的连接。
例如:
这个命令的输出较多,简单说明一下:
Proto
:网络连接的协议,一般就是TCP协议或者UDP协议。Recv-Q
:表示接收到的数据。已经在本地的缓冲中,但是还没有被进程取走。Send-Q
:表示从本机发送,对方还没有收到的数据。依然在本地的缓冲中,一般是不具备ACK标志的数据包。Local Address
:本机的IP地址和端口号。Foreign Address
:远程主机的IP地址和端口号。State
:状态。常见的状态主要有以下几种。LISTEN
:监听状态,只有TCP协议需要监听,而UDP协议不需要监听。ESTABLISHED
:已经建立连接的状态。如果使用“-l”选项,则看不到已经建立连接的状态。SYNSENT
:SYN发起包,就是主动发起连接的数据包。SYNRECV
:接收到主动连接的数据包。FINWAIT1
:正在中断的连接。FINWAIT2
:已经中断的连接,但是正在等待对方主机进行确认。TIMEWAIT
:连接已经中断,但是套接字依然在网络中等待结束。CLOSED
:套接字没有被使用。
在这些状态中,我们最常用的就是LISTEN
和ESTABLISHED
状态,一种代表正在监听,另一种代表已经建立连接。
使用2:查看本机有哪些程序开启的端口
如果使用-p
选项,则可以查看到是哪个程序占用了端口,并且可以知道这个程序的PID。
例如:
使用3:查看所有连接
使用选项-an
可以查看所有连接,包括监听状态的连接(LISTEN
)、已经建立连接状态的连接(ESTABLISHED
)、Socket
程序连接等。因为连接较多,所以输出的内容有很多。
例如:
从Active UNIX domain sockets
开始,之后的内容就是Socket
程序产生的连接,之前的内容都是网络服务产生的连接。我们可以在-an
选项的输出中看到各种网络连接状态,而之前的-tuln
选项则只能看到监听状态。
使用4:查看网关地址
ifconfig
命令只能看到IP地址,Mac地址,子网掩码。
如下图所示:
但是我们并不同通过ifconfig
命令查看到网关,如果需要查看网关地址,就需要用到netstat
命令。
如下图,执行命令:netstat -rn
『学了就忘』Linux基础命令 — 34、配置网络相关命令的更多相关文章
- 『学了就忘』Linux系统管理 — 86、查看系统资源相关命令
目录 1.vmstat命令 2.dmesg命令 3.free命令 4.查看CPU信息 5.查看本机登陆用户信息 (1)w命令 (2)who命令 6.uptime命令 7.查看系统与内核相关信息 1.v ...
- 『学了就忘』Linux基础 — 8、虚拟机网络模式说明
目录 1.虚拟机网卡 2.网络连接模式对应工作的网卡 3.桥接模式说明 4.补充说明 这篇主要总结一下虚拟机网络配置中桥接模式.NAT模式和仅主机模式的区别. 打开VMware,选中虚拟机,点击网络适 ...
- 『学了就忘』Linux系统管理 — 85、工作管理相关命令
目录 1.工作管理简介 2.如何把命令放入后台 3.后台管理命令 (1)查看后台的工作 (2)将后台暂停的工作恢复到前台执行 (3)把后台暂停的工作恢复到后台执行 4.后台命令脱离登录终端运行 1.工 ...
- 『学了就忘』Linux基础 — 11、通过setup工具配置Linux系统IP地址
目录 1.setup命令介绍 2.使用setup命令配置IP (1)执行setup命令 (2)进入图形化配置界面 (3)选择配置IP还是DNS (4)选择要配置的网卡 (5)进入IP地址配置页面 (6 ...
- 『学了就忘』Linux基础 — 17、远程服务器关机及重启时的注意事项
目录 1.为什么远程服务器不能关机 2.远程服务器重启时需要注意两点 3.不要在服务器访问高峰运行高负载命令 4.远程配置防火墙时不要把自己踢出服务器 5.指定合理的密码规范并定期更新 6.合理分配权 ...
- 『学了就忘』Linux基础命令 — 20、文件操作的相关命令
目录 1.touch 命令 2.stat命令 3.cat命令 4.more命令 5.less命令 6.head命令 7.tail命令 1.touch 命令 touch命令用于创建空文件或修改文件时间, ...
- 『学了就忘』Linux基础命令 — 26、帮助命令
目录 1.man命令 (1)man命令的快捷键 (2)man命令的帮助级别(了解即可) (3)man命令的使用 2.info命令 3.help命令 4.--help选项 1.man命令 man是最常见 ...
- 『学了就忘』Linux基础命令 — 27、搜索操作相关命令
目录 1.whereis命令 2.which命令 3.locate命令 1.whereis命令 whereis是搜索系统命令的命令,也就是说,whereis命令不能搜索普通文件,而只能搜索系统命令. ...
- 『学了就忘』Linux基础命令 — 28、别名和常用快捷键
目录 1.别名 2.常用快捷键 1.别名 别名也是Shell中的命令. 命令的别名,就是命令的小名,主要是用于照顾管理员使用习惯的. 命令格式: # 查询系统中命令别名 [root@localhost ...
随机推荐
- Linux python 虚拟环境管理
直接复制的内容: 原著:https://www.cnblogs.com/q767498226/p/11099884.html 报错解决:https://blog.csdn.net/weixin_467 ...
- solidity 错误
solidity版本 0.7.5 Member "transfer" not found or not visible after argument-dependent looku ...
- 鸿蒙内核源码分析(寄存器篇) | 小强乃宇宙最忙存储器 | 百篇博客分析OpenHarmony源码 | v38.02
百篇博客系列篇.本篇为: v38.xx 鸿蒙内核源码分析(寄存器篇) | 小强乃宇宙最忙存储器 | 51.c.h .o 硬件架构相关篇为: v22.xx 鸿蒙内核源码分析(汇编基础篇) | CPU在哪 ...
- bzoj#2407-探险【最短路,二进制分组】
正题 题目链接:https://darkbzoj.tk/problem/2407 题目大意 \(n\)个点的一张无向图(但是正反权值不同),求一个从\(1\)出发回到\(1\)且不经过重复边的最短路径 ...
- 服务器内部模拟Http请求
前言: 在做小程序的开发时需要获取用户的openId用来做唯一标识,来获取对应用户的相关数据 官方的文档说明上有四个必须传的参数 其中appId和appSecret可在自己的微信公众号平台上获取,同时 ...
- 对于caffe程序中出现的Unknown database backend问题的报错怎么办?
在预处理器中添加USE_LMDB,因为caffe需要一种数据输入格式 这样,在db.cpp中#ifdef USE_LMDB就会变亮,显示使用的数据格式为LMDB
- python-docx处理Word必备工具
我的理解 为什么会用到python-docx,因为近段时间下载了大量网文,但格式都是html的,我个人习惯使用word处理文字,于是就想法设法把html文档转换为word,首先要考虑的问题就是从h ...
- JSR303数据校验
Springboot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理. 导入依赖: <dependency> <groupId>org ...
- Linux基本命令 和 Regex 正则表达式
Linux基本命令 和 Regex 正则表达式 Regex 基本语法 常用匹配规则 [aeiouAEIOU] # 从中随机选择一个 [0-9]{4} # 从中选择4个 .* # 匹配任意字符 \w # ...
- 【Takin使用日记】记一次TransmittableThreadLocal引起的业务异常
对于常见的 WEB 容器,Takin 通过增强 org.apache.catalina.core.StandardHostValve#invoke 方法,拦截并解析方法入参的 Request 对象中的 ...