外观
常用网络命令
配置IP地址
IP地址是计算机在互联网中唯一的地址编码,每台计算机如果需要接入网络和其他计算机进行数据通信,就必须配置唯一的IP地址
IP地址的配置有两种方法:
- setup 工具
- 手工修改网卡配置文件
- 第一步:编辑网卡文件,
vi /etc/sysconfig/network-scripts/ifcfg-eth0,"ifcfg-eth0"是第一块网卡,第二块网卡则为"ifcfg-eth1",以此类推。网卡文件内容配置项如下:- DEVICE=eth0 #网卡设备名
- BOOTPROTO=static #[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议)
- HWADDR=00:15:5D:00:46:83 #MAC地址
- UUID=5753e2ed-add1-4d1c-8a69-21a89647b050 # 唯一识别码
- NM_CONTROLLED=yes #是否可以由Network Manager图形管理工具托管
- ONBOOT=yes #[yes|no],是否随网络服务启动,如果配置"no",使用"ifconfig"命令时看不到该网卡
- TYPE=Ethernet # 网络类型
- IPADDR=192.168.1.10 #IP地址
- NETMASK=255.255.255.0 #子网掩码
- NETWORK=192.168.1.0 #网络地址
- BROADCAST=192.168.1.255 #广播地址
- GATEWAY=192.168.1.1 #网关地址
- DNS1=202.109.14.5 #首选DNS服务地址
- DNS2=219.141.136.10 #备用DNS服务地址
- USERCTL=no #[yes|no](非root用户是否可以控制该设备)
- 第二步:查看DNS服务配置文件,
vim /etc/resolv.conf,里面的内容是系统自动生成的,一般不需要修改 - 第三步:重启网络服务,
service network restart或/etc/init.d/network restart
- 第一步:编辑网卡文件,
注意:使用虚拟机克隆时,UUID可能复制的是一样的,导致网络服务启动失败,需要重置UUID值: 第一步:编辑网卡文件,删除UUID和MAC地址 第二步: 删除MAC地址和UUID绑定文件,
rm -rf /etc/udev/rules.d/70-persistent-net.rules第三部:重启系统
ifconfig 命令
ifconfig 被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在,要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。基本信息如下:
- 命令名称:ifconfig
- 英文原意:configure a network interface
- 所在路径:/sbin/ifconfig
- 执行权限:超级用户
- 功能描述:配置网络接口
命令格式:ifconfig [参数]
- 参数:
add 地址:设置网络设备IPv6的ip地址;del 地址:删除网络设备IPv6的IP地址;down:关闭指定的网络设备;<hw<网络设备类型><硬件地址>:设置网络设备的类型与硬件地址;io_addr I/O地址:设置网络设备的I/O地址;irq IRQ地址:设置网络设备的IRQ;media 网络媒介类型:设置网络设备的媒介类型;mem_start 内存地址:设置网络设备在主内存所占用的起始地址;metric 数目:指定在计算数据包的转送次数时,所要加上的数目;mtu 字节:设置网络设备的MTU;netmask 子网掩码:设置网络设备的子网掩码;tunnel 地址:建立IPv4与IPv6之间的隧道通信地址;up:启动指定的网络设备;IP地址:指定网络设备的IP地址;网络设备:指定网络设备的名称。
ifconfig 命令最主要的作用就是查看IP地址的信息,直接输入ifconfig命令即可显示激活状态的网络设备信息:
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:3E:00:1E:51
inet addr:10.160.7.81 Bcast:10.160.15.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:61430830 errors:0 dropped:0 overruns:0 frame:0
TX packets:88534 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3607197869 (3.3 GiB) TX bytes:6115042 (5.8 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:56103 errors:0 dropped:0 overruns:0 frame:0
TX packets:56103 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5079451 (4.8 MiB) TX bytes:5079451 (4.8 MiB)内容说明:
- eth0 表示第一块网卡,其中HWaddr表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)是00:16:3E:00:1E:51
- inet addr 用来表示网卡的IP地址,此网卡的IP地址是10.160.7.81,广播地址Bcast:10.160.15.255,掩码地址Mask:255.255.240.0
- lo 是表示主机的回环地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 httpd服务器的指定到回环地址,在浏览器输入127.0.0.1就能看到你所架WEB网站了,但只是本机能看得到,局域网的其它主机或用户无从知道
- 第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)
- 第二行:网卡的IP地址、子网、掩码
- 第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节
- 第四、五行:接收、发送数据包情况统计
- 第七行:接收、发送数据字节数统计信息
其他示例:
#启动和关闭网卡eth0。关闭网卡eth0,ssh登陆linux服务器操作要小心,关闭了就不能开启了,除非你有多网卡
[root@localhost ~]# ifconfig eth0 up
[root@localhost ~]# ifconfig eth0 down
#为网卡eth0配置IPv6地址
[root@localhost ~]# ifconfig eth0 add 33ffe:3240:800:1005::2/64
#为网卡eth0删除IPv6地址
[root@localhost ~]# ifconfig eth0 del 33ffe:3240:800:1005::2/64
#用ifconfig修改MAC地址
[root@localhost ~]# ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE
#ifconfig配置IP地址
[root@localhost ~]# ifconfig eth0 192.168.2.10
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255
#启用和关闭arp协议
[root@localhost ~]# ifconfig eth0 arp
[root@localhost ~]# ifconfig eth0 -arp
#设置最大传输单元,这里设置能通过的最大数据包大小为 1500 bytes
[root@localhost ~]# ifconfig eth0 mtu 1500ping 命令
ping 命令是常用的网络命令,主要通过ICMP协议进行网络探测,测试网络中主机的通信情况。基本信息如下:
- 命令名称:ping
- 英文原意:send ICMP ECHO_REQUEST to network hosts
- 所在路径:/bin/ping
- 执行权限:所有用户
- 功能描述:向网络主机发送ICMP请求
命令格式: ping [选项] IP
- 选项:
- -b:用于对整个网段进行探测。IP需要为广播地址
- -c 次数:设置完成要求回应的次数
- -s 字节数:设置数据包的大小
示例:
#探测整个网段中有多少主机是可以和本机通信的,而不是一个一个IP地址地进行探测
[root@localhost ~]# ping -b -c 3 192.168.199.255
WARNING: pinging broadcast address
PING 192.168.199.255 (192.168.199.255) 56(84) bytes of data.
64 bytes from 192.168.199.216: icmp_seq=1 ttl=64 time=77.7 ms
64 bytes from 192.168.199.131: icmp_seq=2 ttl=64 time=102 ms
64 bytes from 192.168.199.216: icmp_seq=3 ttl=64 time=19.5 ms
--- 192.168.199.255 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2023ms
rtt min/avg/max/mdev = 19.515/66.701/102.798/34.892 msnetstat 命令
netstat是网络状态查看命令,既可以查看到本机开启的端口,也可以查看哪些客户端连接。在CentOS 7.x中 netstat 命令默认没有安装,如果需要使用,需要先安装 "net-snmp" 和 "net-tools" 软件包。基本信息如下:
- 命令名称:network
- 英文原意:print network connections, routing tables, interface statistics, masquerade connections, and mulicast memberships
- 所在路径:/bin/netstat
- 执行权限:所有用户
- 功能描述:打印网络连接、路由表、接口统计信息、伪装连接和多播成员身份
命令格式: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 :::*这个命令输出内容较多,下面对每列进行说明:
- 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/Program name",则可以查看到是哪个程序占用了端口,并且可以知道这个程序的 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示例 3:查看所有连接 使用选项“-an”可以查看所有连接,包括监听状态的连接(LISTEN)、已经建立连接状态的 连接(ESTABLISHED)、Socket 程序连接等。因为连接较多,所以输出的内容有很多
[root@localhost ~]# netstat -an
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 117.79.130.170:80 78.46.174.55:58815 SYN_RECV
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 117.79.130.170:22 124.205.129.99:10379 ESTABLISHED
tcp 0 0 117.79.130.170:22 124.205.129.99:11811 ESTABLISHED
...省略部分内容...
udp 0 0 0.0.0.0:11211 0.0.0.0:*
udp 0 0 :::11211 :::*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 12668 /var/run/mcelog-client
unix 2 [ ACC ] STREAM LISTENING 12193 @/var/run/hald/dbus-ZeYsMXZ7Uf
...省略部分内容...从 "Active UNIX domain sockets" 开始,之后的内容就是 Socket 程序产生的连接,之前的内容都是网 络服务产生的连接。我们可以在“-an”选项的输出中看到各种网络连接状态,而之前的“-tuln”选项则只能看到监听状态的连接
write 命令
write 命令用于向指定登录用户终端上发送信息。通过write命令可传递信息给另一位登入系统的用户,当输入完毕后,键入 "回车" 表示发送,键入 "Ctrl+C" 表示信息结束。如果接收信息的用户不只登入本地主机一次,你可以指定接收信息的终端机编号。基本信息:
- 命令名称:write
- 英文原意:send a message to another user
- 所在路径:/usr/bin/write
- 执行权限:所有用户
- 功能描述:向其他用户发送消息
命令格式 :write 用户名 [终端编号]
用户名:指定要接受信息的登录用户终端编号:指定接收信息的用户的登录终端,如果省略,且用户在多个终端登录,会发送给其中一个终端
wall 命令
wall命令用于向系统当前所有打开的终端上输出信息,而 "write" 命令用于给指定用户发送消息。
命令格式:wall 消息
示例:
[root@localhost ~]# wall "I will be in 5 minutes to restart, please save your data"