资讯详情

CC00016.LinuxBasic——|Linux&常用命令.V10|——|网络操作|攻击监控|...

一、常用的网络命令
### --- 配置 IP 地址 ~~~     IP 地址是计算机在互联网上唯一的地址编码。 ~~~     如果每台计算机需要访问网络和其他计算机进行数据通信,则必须配置唯一的公共网络 IP 地址。 ### --- 配置 IP 地址有两种方法:  ~~~     setup 工具;redhat系列专有; ~~~     手动修改配置文件 ~~~     vi  /etc/sysconfig/network-scripts/ifcfg-eth0
### --- 重启网络服务 ### --- 虚拟机需要桥接有线网卡,重启网络服务  [root@localhost ~]# service network restart
### --- 复制镜像可能需要重置 UUID(唯一识别符) [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0   ~~~     删除 MAC 地址行 [root@localhost ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules  ~~~     删除 MaC 地址和 UUID 绑定文件 ~~~     重启 Linux [root@localhost ~]# reboot
### --- UUID冲突: ~~~     UUID冲突也会导致IP不生效 ~~~     快照第一次重启会发生了  [root@server11 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33  UUID=d7c8b741-64f3-4dac-b60b-859521c80dd6
### --- 解决方案:UUID冲突; ~~~     删除mac地址,重新计算UUID [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0   ~~~     删除 MaC 地址和 UUID 绑定文件 [root@server11 ~]# rm -rf /etc/udev/rules.d/70-persistent-ipoib.rules   ~~~     重启 Linux [root@localhost ~]# reboot
二、ifconfig 命令
### --- ifconfig 命令 ~~~     命令名称:ifconfig。 ~~~     英文原意:configure a network interface。 ~~~     所在路径://sbin/ifconfig。 ~~~     执行权:超级用户。 ~~~     功能描述:配置网络接口。 ~~~     ifconfig 命令的主要作用是检查 IP 直接输入地址信息 ifconfig 命令即可。  [root@localhost ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ~~~     标志                                              最大传输单元 inet 192.168.252.20 netmask 255.255.255.0 broadcast 192.168.252.255 ~~~     IP 地址                       子网掩码                广播地址 inet6 fe80::546e:994b:30c:e2f7 prefixlen 64 scopeid 0x20<link> ~~~     IPv6 地址(目前无效) ether 00:0c:29:aa:d2:96 txqueuelen 1000 (Ethernet) ~~~     MAC 地址 RX packets 3728 bytes 310958 (303.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 ~~~     接收的数据包 TX packets 3051             bytes 1495119 (1.4 MiB) 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 (Local Loopback) RX packets 8 bytes 696 (696.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8 bytes 696 (696.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
### --- ifconfig 命令  [root@server11 ~]# ifconfig  ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500         inet 192.168.1.11  netmask 255.255.255.0  broadcast 192.168.1.255         inet6 fe80::820d:b26d:3507:5834  prefixlen 64  scopeid 0x20<link>         ether 00:0c:29:29:49:ea  txqueuelen 1000  (Ethernet)         RX packets 35244  bytes 34284855 (32.6 MiB)         RX errors 0  dropped 46  overruns 0  frame 0         TX packets 8188  bytes 551041 (538.1 KiB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
三、ping 命令
### --- ping 命令 ~~~     ping 它是一种常用的网络命令,主要通过 ICMP 协议进行网络探测,测试网络中主机的通信情况。 ~~~     ping命令的基本信息如下。 ~~~     命令名称:ping。 ~~~     英文原意:send ICMP ECHO_REQUEST to network hosts。 ~~~     所在路径://bin/ping。 ~~~     执行权:所有用户。 ~~~     功能描述:向网络主机发送 ICMP 请求。 ### --- 命令的基本格式如下:  [root@localhost ~]# ping [选项] IP ### --- 选项: ~~~     -b:在后面添加广播地址来探测整个网段 ~~~     -c 次数:用于指定 ping 的次数 ~~~     -s 字节:指定探测包的尺寸
~~~     例子:探测网段中的可用主机 ~~~     在 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 ttl=64 time=1.95 ms 64 bytes from 192.168.103.168: icmp_seq=1 ttl=64 time=1.97 ms (DUP!) 64 bytes from 192.168.103.252: icmp_seq=1 ttl=64 time=2.29 ms (DUP!) 64 bytes from 192.168.103.252: icmp_seq=1 ttl=64 time=2.29 ms (DUP!) …省略部分内容…
### --- c指定次数  [root@server11 ~]# ping www.baidu.com [root@server11 ~]# ping -c 1 www.baidu.com PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data. 64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=51 time=13.1 ms
### --- -b后面加入广播地址,用于对整个网段进行探测,该网段有多个IP地址在线

[root@server11 ~]# ping -b -c 3 10.10.10.255
WARNING: pinging broadcast address
PING 10.10.10.255 (10.10.10.255) 56(84) bytes of data.

--- 10.10.10.255 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms
四、netstat 命令
### -- netstat 命令
### -- netstat 是网络状态查看命令,既可以查看到本机开启的端口,也可以查看有哪些客户端连接。
~~~     在 CentOS 7.x 中 netstat 命令默认没有安装,
~~~     如果需要使用,需要安装 net-snmp 和 net-tools 软件包。
~~~     netstat 命令的基本信息如下。
~~~     命令名称:netstat。
~~~     英文原意:Print network connections, routing tables, interface statistics, masquerade connections,and multicast memberships。
~~~     所在路径:/bin/netstat。
~~~     执行权限:所有用户。
~~~     功能描述:输出网络连接、路由表、接口统计、伪装连接和组播成员。
~~~     命令格式如下:

[root@localhost ~]# netstat [选项]
### --- 选项:
~~~     -a:列出所有网络状态,包括 Socket 程序
~~~     -c 秒数:指定每隔几秒刷新一次网络状态
~~~     -n:使用 IP 地址和端口号显示,不使用域名与服务名
~~~     -p:显示 PID 和程序名
~~~     -t:显示使用 TCP 协议端口的连接状况
~~~     -u:显示使用 UDP 协议端口的连接状况
~~~     -l:仅显示监听状态的连接
~~~     -r:显示路由表
### --- 例子 1:查看本机开启的端口
~~~     这是本机最常用的方式,使用选项“-tuln”。因为使用了“-l”选项,所以只能看到监听状态的连接,
~~~     而不能看到已经建立连接状态的连接。例如:

[root@localhost ~]# netstat -tuln
~~~     协议 接收队列 发送队列 本机的 IP 地址及端口号      远程主机的 IP 地址及端口号 状态这个命令的输出较多。
~~~     Proto:网络连接的协议,一般就是 TCP 协议或者 UDP 协议。
~~~     Recv-Q:表示接收到的数据,已经在本地的缓冲中,但是还没有被进程取走。
~~~     Send-Q:表示从本机发送,对方还没有收到的数据,依然在本地的缓冲中,一般是不具备 ACK标志的数据包。
~~~     Local Address:本机的 IP 地址和端口号。
~~~     Foreign Address:远程主机的 IP 地址和端口号。
~~~     State:状态。常见的状态主要有以下几种。
~~~     - LISTEN:监听状态,只有 TCP 协议需要监听,而 UDP 协议不需要监听。
~~~     - ESTABLISHED:已经建立连接的状态。如果使用“-l”选项,则看不到已经建立连接的状态。
~~~     - SYN_SENT:SYN 发起包,就是主动发起连接的数据包。
~~~     - SYN_RECV:接收到主动连接的数据包。
~~~     - FIN_WAIT1:正在中断的连接。
~~~     - FIN_WAIT2:已经中断的连接,但是正在等待对方主机进行确认。
~~~     - TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束。
~~~     - CLOSED:套接字没有被使用。
~~~     在这些状态中,我们最常用的就是 LISTEN 和 ESTABLISHED 状态,一种代表正在监听,另一种代表已经建立连接。
### --- 例子 2:查看本机有哪些程序开启的端口,如果使用“-p”选项,
### --- 则可以查看到是哪个程序占用了端口,并且可以知道这个程序的 PID。例如:
~~~     比之前的命令多了一个“-p”选项,结果多了“PID/程序名”,可以知道是哪个程序占用了端口

[root@localhost ~]# netstat -tulnp
### --- 例子 3:查看所有连接
~~~     使用选项“-an”可以查看所有连接,包括监听状态的连接(LISTEN)、
~~~     已经建立连接状态的连接(ESTABLISHED)、Socket 程序连接等。因为连接较多,
~~~     所以输出的内容有很多。例如:
~~~     …省略部分内容…
~~~     …省略部分内容…
~~~     从“Active UNIX domain sockets”开始,之后的内容就是 Socket 程序产生的连接,
~~~     之前的内容都是网络服务产生的连接。我们可以在“-an”选项的输出中看到各种网络连接状态,
~~~     而之前的“-tuln”选项则只能看到监听状态

[root@localhost ~]# netstat -an
### --- 查询本机开启的所有端口

[root@server11 ~]# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State 
Proto       Recv-Q       Send-Q     Local Address           Foreign Address    State 
~~~     网络连接协议  接收到数据   本机发送的数据 本地的IP地址和端口号     远程主机的IP地址和端口    状态
~~~     -p:可以查看到这个端口是哪个服务开启的

[root@server11 ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      597/rpcbind
### --- 查看所有

[root@server11 ~]# netstat -an
### --- -r显示路由表;查看网关
 
[root@server11 ~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         gateway         0.0.0.0         UG        0 0          0 ens33
10.10.10.0      0.0.0.0         255.255.255.0   U         0 0          0 ens34
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0
五、write 命令
### --- write 命令
~~~     write 命令的基本信息如下。
~~~     命令名称:write。
~~~     英文原意:send a message to another user。
~~~     所在路径:/usr/bin/write。
~~~     执行权限:所有用户。
~~~     功能描述:向其他用户发送信息。
~~~     向在 pts/1(远程终端 1)登录的 user1 用户发送信息,
~~~     使用“Ctrl+D”快捷键保存发送的数据

[root@localhost ~]#write user1 pts/1
hello
I will be in 5 minutes to restart, please save your data
### --- 登录终端
~~~     本地字符终端  tty1-6      alt+F1-6
~~~     本地图形终端  tty7        ctrl+alt+F7(按住3秒,需要安装启动图形界面)
~~~     远程终端    pts/0-255
~~~     给指定终端发送信息

[root@server11 ~]# w    
 22:02:48 up  8:01,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      22:04   32.00s  0.02s  0.02s -bash   // 本地字符终端
root     pts/0    10.10.10.240     20:41    0.00s  1.31s  0.00s w       // 当前终端
root     pts/1    10.10.10.240     22:00    2:28   0.03s  0.03s -bash   // 远程终端
### --- ctrl+D发送
[root@server11 ~]# write root pts/1 
hello
hell0
hello
 
### --- 对应终端接收到信息
[root@server11 ~]#                              
Message from root@server11 on pts/0 at 22:05 ...
hello
hell0
hello
EOF
六、wall 命令
### --- wall 命令
~~~     write 命令用于给指定用户发送信息,而 wall 命令用于给所有登录用户发送信息,
~~~     包括你自己。执行时,在 wall 命令后加入需要发送的信息即可,例如:

[root@localhost ~]# wall "I will be in 5 minutes to restart, please save your data"
### --- 给所有终端发送信息

[root@server11 ~]# wall                                             // 包括自己
hello
hello
hello
Broadcast message from root@server11 (pts/0) (Thu Mar  4 22:07:26 2021):

hello
hello
helloello
七、mail 命令
### --- mail 命令
~~~     mail 是 Linux 的邮件客户端命令,可以利用这个命令给其他用户发送邮件。

### --- mail 命令的基本信息如下。
~~~     命令名称:mail。
~~~     英文原意:send and receive Internet mail。
~~~     所在路径:/bin/mail。
~~~     执行权限:所有用户。
~~~     功能描述:发送和接收电子邮件。
### --- 例子 1:发送邮件
~~~     如果我们想要给其他用户发送邮件,则可以执行如下命令:

[root@localhost ~]# mail user1
~~~     Subject: hello          <-  邮件标题
~~~     Nice to meet you!       <-  邮件具体内容
~~~     .                       <-  使用“.”来结束邮件输入
~~~     发送邮件给 user1 用户
~~~     我们接收到的邮件都保存在“/var/spool/mail/用户名”中,
~~~     每个用户都有一个以自己的用户名命名的邮箱。
### --- 例子 2:发送文件内容
~~~     如果我们想把某个文件的内容发送给指定用户,则可以执行如下命令:

[root@localhost ~]# mail -s "test mail" root < /root/anaconda-ks.cfg
### --- 选项:
~~~     -s:指定邮件标题 
~~~     把/root/anaconda-ks.cfg 文件的内容发送给 root 用户
~~~     我们在写脚本时,有时需要脚本自动发送一些信息给指定用户,
~~~     把要发送的信息预先写到文件中,是一个非常不错的选择。
### --- 例子 3:查看已经接收的邮件
~~~     我们可以直接在命令行中执行 mail 命令,进入 mail 的交互命令中,
~~~     可以在这里查看已经接收到的邮件。例如:

[root@localhost ~]# mail
Heirloom Mail version 12.4 7/29/08.Type ?for help.
"/var/spool/mail/root": 1 message 1 new
>N 1 root       Mon Dec 5 22:45 68/1777 "test mail"<-之前收到的邮件
>N 2 root       Mon Dec 5 23:08 18/602      "hello"
~~~     未阅读 编号 发件人      时间                  标题
~~~     &                                       <-等待用户输入命令
~~~     可以看到已经接收到的邮件列表,“N”代表未读邮件,如果是已经阅读过的邮件,
~~~     则前面是不会有这个“N”的;之后的数字是邮件的编号,我们主要通过这个编号来进行邮件的操作。
~~~     如果我们想要查看第一封邮件,则只需输入邮件的编号“1”就可以了。在交互命令中执行“?”,
~~~     可以查看这个交互界面支持的命令。例如:
~~~     & ?                         <-输入命令
mail commands
type<message list>          type messages
next                        goto and type next message
from<message list>          give head lines of messages
headers                     print out active message headers
delete<message list>            delete messages
undelete<message list>          undelete messages
save<message list> folder       append messages to folder and mark as saved
copy<message list> folder       append messages to folder without marking them
write<message list> file        append message texts to file, save attachments
preserve<message list>          keep incoming messages in mailbox even if saved
Reply <message list>            reply to message senders
reply<message list>             reply to message senders and all recipients
mail addresses                  mail to specific recipients
file folder                     change to another folder
quit                            quit and apply changes to folder
xit                             quit and discard changes made to folder
!                               shell escape
cd<directory>                   chdir to directory or home if none given
list                            list names of all available commands
### --- 这些交互命令是可以简化输入的,比如“headers”命令,就可以直接输入“h”,
### --- 这是列出邮件标题列表的命令。我们解释一下常用的交互命令。

~~~     headers:列出邮件标题列表,直接输入“h”命令即可。
~~~     delete:删除指定邮件。比如想要删除第二封邮件,可以输入“d 2”。
~~~     save:保存邮件。可以把指定邮件保存成文件,如“s 2 /tmp/test.mail”。
~~~     quit:退出,并把已经操作过的邮件进行保存。比如移除已删除邮件、保存已阅读邮件等。
~~~     exit:退出,但是不保存任何操作。
### --- 发送邮件

[yanqi@server11 ~]$ mail root                                       // 给root用户发送邮件
Subject: hello
hello
hello
EOT
### --- root用户接收邮件

[root@server11 ~]# mail                                             
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 yanqi@server11.local  Thu Mar  4 22:11  19/603   "hello"      // N:表示未读邮件
&  
Message  1:                                                         // 按 1 来读第一份邮件
From yanqi@server11.localdomain  Thu Mar  4 22:11:53 2021
Return-Path: <yanqi@server11.localdomain>
X-Original-To: root
Delivered-To: root@server11.localdomain
Date: Thu, 04 Mar 2021 22:11:53 +0800
To: root@server11.localdomain
Subject: hello
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: yanqi@server11.localdomain
Status: R

hello
hello 
& h                                                                 // 列出当前邮件的标题
>   1 yanqi@server11.local  Thu Mar  4 22:11  19/603   "hello"
& ?                                                                 // 帮助信息
### --- 发送右键内容——常用

[yanqi@server11 ~]$ cat yanqi.mail 
test mail yanqi to root
[yanqi@server11 ~]$ mail -s "yanqi.mail" root< /home/yanqi/yanqi.mail
[root@server11 ~]# mail
>N  6 yanqi@server11.local  Thu Mar  4 22:19  18/620   "yanqi.mail"

标签: 820d型温度传感器温度探头

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台