前言
通过前面的实验,我们已经将关于Ubuntu系统的文件管理和文件编辑和系统管理部分的命令行做完了,接下来我们将进行关于linux部分的网络通讯命令行实验。
实验目的
1.掌握Ubuntu系统下文件系统中网络通讯部分命令行的原理及使用
实验内容
本次实验主要是掌握Linux系统下的网络通讯部分的使用,主要包括以下内容:
第五部分(网络通讯部分):
1.ssh命令 – 安全连接客户端
2.netstat命令 – 显示网络状态
3. ping命令 – 测试主机间网络连通性
4. ifconfig命令 – 显示或设置网络设备
5. dhclient命令 – 动态获取或释放IP地址
实验环境
树莓派4B,系统为Ubuntu 20.10系统 。实验的编程环境为Terminal终端程序
实验步骤
1.ssh命令 – 安全连接客户端
(1)命令格式
ssh [参数][远程主机]
(2)命令功能
ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器,实现对服务器的远程管理。
(3)命令参数
参数 | 功能说明 |
---|---|
-1 | 强制使用ssh协议版本1 |
-2 | 强制使用ssh协议版本2 |
-4 | 强制使用IPv4地址 |
-6 | 强制使用IPv6地址 |
-A | 开启认证代理连接转发功能 |
-a | 关闭认证代理连接转发功能 |
-b<IP地址> | 使用本机指定的地址作为对位连接的源IP地址 |
-C | 请求压缩所有数据 |
-F<配置文件> | 指定ssh指令的配置文件,默认的配置文件为“/etc/ssh/ssh_config” |
-f | 后台执行ssh指令 |
-g | 允许远程主机连接本机的转发端口 |
-i<身份文件> | 指定身份文件(即私钥文件) |
-l<登录名> | 指定连接远程服务器的登录用户名 |
-N | 不执行远程指令 |
-o<选项> | 指定配置选项 |
-p<端口> | 指定远程服务器上的端口 |
-q | 静默模式,所有的警告和诊断信息被禁止输出 |
(4)使用范例
例一:登录远程服务器:
命令:
ssh 211.87.227.206
例二:用test用户连接远程服务器:
命令:
ssh -l test 211.87.227.206
例三:查看分区列表:
命令:
ssh 211.87.227.206 /sbin/fdisk -l
例四:强制使用ssh协议版本1:
命令:
ssh -1
例五:开启认证代理连接转发功能:
命令:
ssh -A
2.netstat命令 – 显示网络状态
(1)命令格式
netstat [参数]
(2)命令功能
netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态,masquerade 连接,多播成员 等等。从整体上看,netstat的输出结果可以分为两个部分:一个是有源TCP连接,其中”Recv-Q”和”Send-Q”指的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到;另一个是源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
(3)命令参数
参数 | 功能说明 |
---|---|
-a | 显示所有连线中的Socket |
-p | 显示正在使用Socket的程序识别码和程序名称 |
-u | 显示UDP传输协议的连线状况 |
-i | 显示网络界面信息表单 |
-n | 直接使用IP地址,不通过域名服务器 |
(4)使用范例
如果系统没有安装net-tools的话,就先通过命令sudo apt install net-tools
安装上。
例一:显示详细的网络状况:
命令:
netstat -a
输出:
例二:显示当前户籍UDP连接状况:
命令:
netstat -nu
输出:
例三:显示UDP端口号的使用情况:
命令:
netstat -apu
输出:
例四:显示网卡列表:
命令:
netstat -i
输出:
例五:显示组播组的关系:
命令:
netstat -g
输出:
3.ping命令 – 测试主机间网络连通性
(1)命令格式
ping [参数] [目标主机]
(2)命令功能
ping命令主要用来测试主机之间网络的连通性,也可以用于。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。不过值得我们注意的是:Linux系统下的ping命令与Windows系统下的ping命令稍有不同。Windows下运行ping命令一般会发出4个请求就结束运行该命令;而Linux下不会自动终止,此时需要我们按CTR+C终止或者使用-c参数为ping命令指定发送的请求数目。
(3)命令参数
参数 | 功能说明 |
---|---|
-d | 使用Socket的SO_DEBUG功能 |
-c | 指定发送报文的次数 |
-i | 指定收发信息的间隔时间 |
-I | 使用指定的网络接口送出数据包 |
-n | 只输出数值 |
-p | 设置填满数据包的范本样式 |
-q | 不显示指令执行过程 |
-R | 记录路由过程 |
-s | 设置数据包的大小 |
-t | 设置存活数值TTL的大小 |
-v | 详细显示指令的执行过程 |
(4)使用范例
例一:检测与baidu网站的连通性:
命令:
ping www.baidu.com
输出:
如果不为ping命令指定参数的话,会一直向目标网址发送强求,只有按下ctrl+c才能终止进程。
例二:与baidu网站连续ping4次
命令:
ping -c 4 www.baidu.com
输出:
例三:设置与百度网站的ping次数为4,时间间隔为3秒
命令:
ping -c 4 -i 3 www.baidu.com
输出:
例四:利用ping命令获取指定网站的IP地址:
命令:
ping -c 1 linuxcool.com | grep from | cut -d " " -f 4
输出:
4.ifconfig命令 – 显示或设置网络设备
(1)命令格式
ifconfig [参数]
(2)命令功能
ifconfig是用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
(3)命令参数
参数 | 功能说明 |
---|---|
add<地址> | 设置网络设备IPv6的IP地址 |
del<地址> | 删除网络设备IPv6的IP地址 |
down | 关闭指定的网络设备 |
up | 启动指定的网络设备 |
IP地址 | 指定网络设备的IP地址 |
(4)使用范例
例一:显示网络设备信息:
命令:
ifconfig
输出:
例二:启动关闭指定网卡:
命令:
ifconfig eth0 down
ifconfig eth0 up
例三:为网卡配置和删除IPv6地址:
命令:
ifconfig eth0 add 33ffe:3240:800:1005::2/64
ifconfig eth0 del 33ffe:3240:800:1005::2/64
例四:用ifconfig修改MAC地址
命令:
ifconfig eth0 down
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
ifconfig eth0 up
ifconfig eth1 hw ether 00:1D:1C:1D:1E
ifconfig eth1 up
例五:配置IP地址:
命令:
ifconfig eth0 192.168.1.56
ifconfig eth0 192.168.1.56 netmask 255.255.255.0
ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
输出:
5.dhclient命令 – 动态获取或释放IP地址
(1)命令格式
dhclient [参数] [网络接口]
(2)命令功能
dhclient命令的作用是:使用动态主机配置协议动态的配置网络接口的网络参数,也支持BOOTP协议。
(3)命令参数
参数 | 功能说明 |
---|---|
-p | 指定dhcp客户端监听的端口号(默认端口号86) |
-d | 总是以前台方式运行程序 |
-q | 安静模式,不打印任何错误的提示信息 |
-r | 释放ip地址 |
-n | 不配置任何接口 |
-x | 停止正在运行的DHCP客户端,而不释放当前租约,杀死现有的dhclient |
-s | 在获取ip地址之前指定DHCP服务器 |
-w | 即使没有找到广播接口,也继续运行 |
(4)使用范例
例一:在指定网络接口上发出DHCP请求:
命令:
dhclient eth0
输出:
例二:释放IP地址:
命令:
dhclient -r
例三:从指定的服务器获取ip地址:
命令:
dhclient -s 192.168.60.240
例四:停止运行dhclient:
命令:
dhclient -x