本文共 8572 字,大约阅读时间需要 28 分钟。
IP 地址是计算机在互联网中唯一的地址编码。每台计算机如果需要接入网络和其他计算机进行数据通信,就必须配置唯一的公网 IP 地址。
配置 IP 地址有两种方法:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
手工修改配置文件[root@localhost ~]#
#重启网络服务service network restart
[root@localhost ~]#
#修改配置文件 [root@localhost ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0
rm -rf /etc/udev/rules.d/70-persistent-net.rules
#删除 MaC 地址和 UUID 绑定文件 [root@localhost ~]#reboot
#重启 Linux
ifconfig命令的基本信息如下。
命令名称:ifconfig。
英文原意:configure a network interface。
所在路径:/sbin/ifconfig。
执行权限:超级用户。
功能描述:配置网络接口。
ifconfig 命令最主要的作用就是查看 IP 地址的信息,直接输入 ifconfig 命令即可。 [root@localhost ~]# ifconfig eth0: flags=4163mtu 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 #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 mtu 65536 #本地回环网卡 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 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
ping 是常用的网络命令,主要通过 ICMP 协议进行网络探测,测试网络中主机的通信情况。ping命令的基本信息如下。
命令的基本格式如下:
[root@localhost ~]#
选项:ping [选项] IP
- -b: 后面加入广播地址,用于对整个网段进行探测
- -c 次数: 用于指定 ping 的次数
- -s 字节: 指定探测包的大小
例子:探测网段中的可用主机
ping 命令中,可以使用“-b”选项,后面加入广播地址,探测整个网段。我们可以使用这个选项知道整个网络中有多少主机是可以和我们通信的,而不用一个一个 IP 地址地进行探测。例如:
[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!) …省略部分内容…
#探测 192.168.103.0/24 网段中有多少可以通信的主机
netstat 是网络状态查看命令,既可以查看到本机开启的端口,也可以查看有哪些客户端连接。在 CentOS 7.x 中 netstat 命令默认没有安装,如果需要使用,需要安装 net-snmp 和 net-tools 软件包。
netstat 命令的基本信息如下。
命令格式如下:
[root@localhost ~]#
选项:netstat [选项]
- -a: 列出所有网络状态,包括 Socket 程序
- -c 秒数: 指定每隔几秒刷新一次网络状态
- -n: 使用 IP 地址和端口号显示,不使用域名与服务名
- -p: 显示 PID 和程序名
- -t: 显示使用 TCP 协议端口的连接状况
- -u: 显示使用 UDP 协议端口的连接状况
- -l: 仅显示监听状态的连接
- -r: 显示路由表
例子 1:查看本机开启的端口
这是本机最常用的方式,使用选项“-tuln”。因为使用了“-l”选项,所以只能看到监听状态的连接,而不能看到已经建立连接状态的连接。例如:[root@localhost ~]# netstat -tuln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 :::11211 :::* LISTEN tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::22 :::* LISTEN udp 0 0 0.0.0.0:11211 0.0.0.0:* udp 0 0 :::11211 :::* #协议 接收队列 发送队列 本机的 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。例如:
[root@localhost ~]# 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:3306 0.0.0.0:* LISTEN 2359/mysqld tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 1563/memcached tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1490/sshd tcp 0 0 :::11211 :::* LISTEN 1563/memcached tcp 0 0 :::80 :::* LISTEN 21025/httpd tcp 0 0 :::22 :::* LISTEN 1490/sshd udp 0 0 0.0.0.0:11211 0.0.0.0:* 1563/memcached udp 0 0 :::11211 :::* 1563/memcached #比之前的命令多了一个“-p”选项,结果多了“PID/程序名”,可以知道是哪个程序占用了端口
例子 3:查看所有连接
使用选项“-an”可以查看所有连接,包括监听状态的连接(LISTEN)、已经建立连接状态的连(ESTABLISHED)、Socket 程序连接等。因为连接较多,所以输出的内容有很多。例如:
[root@localhost ~]#
netstat -an
从“Active UNIX domain sockets”开始,之后的内容就是 Socket 程序产生的连接,之前的内容都是网络服务产生的连接。
我们可以在“-an”选项的输出中看到各种网络连接状态,而之前的“-tuln”选项则只能看到监听状态write 命令的基本信息如下。
[root@localhost ~]#
hello I will be in 5 minutes to restart, please save your data #向在 pts/1(远程终端 1)登录的 user1 用户发送信息,使用“Ctrl+D”快捷键保存发送的数据write user1 pts/1
write 命令用于给指定用户发送信息,而 wall 命令用于给所有登录用户发送信息,包括你自己。执行时,在 wall 命令后加入需要发送的信息即可,例如:
[root@localhost ~]#
wall "I will be in 5 minutes to restart, please save your data"
mail 是 Linux 的邮件客户端命令,可以利用这个命令给其他用户发送邮件。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:查看已经接收的邮件
[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 typetype messages next goto and type next message from give head lines of messages headers print out active message headers delete delete messages undelete undelete messages save folder append messages to folder and mark as saved copy folder append messages to folder without marking them write file append message texts to file, save attachments preserve keep incoming messages in mailbox even if saved Reply reply to message senders reply 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 chdir to directory or home if none given list list names of all available commands
这些交互命令是可以简化输入的,比如“headers”命令,就可以直接输入“h”,这是列出邮件标题列表的命令。我们解释一下常用的交互命令
sync 命令的基本信息如下。
shutdown 命令的基本信息如下。
[root@localhost ~]#
选项:shutdown [选项] 时间 [警告信息]
- -c: 取消已经执行的 shutdown 命令
- -h: 关机
- -r: 重启
在现在的系统中,reboot 命令也是安全的,而且不需要加入过多的选项。
[root@localhost ~]#
#重启reboot
这两个都是关机命令,直接执行即可。这两个命令不会完整关闭和保存系统的服务,不建议使用。
[root@localhost ~]#
#关机 [root@localhost ~]#halt
poweroff
#关机
init 是修改 Linux 运行级别的命令,也可以用于关机和重启。这个命令并不安全,不建议使用。
[root@localhost ~]#
#关机,也就是调用系统的 0 级别init 0
[root@localhost ~]#
#重启,也就是调用系统的 6 级别init 6
转载地址:http://btcsi.baihongyu.com/