Linux友人帐之网络配置与网络传输

一、相关概念

IP地址

IP地址(Internet Protocol Address)是用于唯一标识和定位计算机网络中设备(如计算机、服务器、路由器等)的数字标识。在互联网中,IP地址是用来进行网络通信和数据传输的基础。

IP地址由32位或128位的二进制数字组成,用点分十进制(IPv4)或冒号分隔的十六进制(IPv6)表示。IPv4地址是目前广泛使用的IP地址格式,它由四个8位的数字组成,每个数字范围从0到255。例如,192.168.0.1是一个IPv4地址。

IP地址分为公网IP地址和私网IP地址。公网IP地址是由互联网服务提供商(ISP)分配给用户设备的地址,用于在全球范围内进行通信。私网IP地址是在局域网中使用的地址,用于在局域网内部进行通信,不能直接在公网上访问。

IP地址的作用是唯一标识和定位网络设备,它允许设备之间进行通信和数据传输。通过IP地址,计算机可以找到目标设备,并将数据包传送到正确的位置。在互联网中,IP地址是互联网协议的基础,它是网络通信的基本要素之一。

需要注意的是,由于IPv4地址的资源有限,全球范围内的互联网地址已经基本耗尽。为了解决这个问题,IPv6地址被引入,它采用128位的地址空间,提供了更多的IP地址供使用。IPv6地址的格式和表示方式与IPv4有所不同,但其基本作用和原理与IPv4相同。

特殊IP地址

主机名

主机名(hostname)是用来标识网络中的设备(主机)的名称。它是由一串字符组成的标识符,用于在网络中唯一标识一个设备。主机名通常用于识别和访问网络中的服务器、计算机或其他网络设备。

主机名可以是一个简单的名称,如"server1"或"mycomputer",也可以是一个完全限定的域名,如"www.example.com"。主机名通常由字母、数字和连字符组成,不区分大小写。

主机名在网络中起到了重要的作用,它可以用来定位和访问特定的设备。在互联网中,主机名与IP地址相对应,通过域名系统(DNS)将主机名转换为IP地址,以便进行网络通信和数据传输。

需要注意的是,主机名是由网络管理员或设备所有者分配和管理的。在局域网中,主机名通常是根据设备的用途或位置进行命名的,而在互联网中,主机名通常是由域名注册机构分配的。

主机名的作用是在网络中唯一标识和定位设备。通过主机名,用户可以更方便地访问特定的设备,而无需记住复杂的IP地址。同时,主机名也可以提供更具有可读性和易记性的标识,使网络管理和配置更加方便。

总之,主机名是用来标识和定位网络设备的名称,它在网络中起到了重要的作用。通过主机名,用户可以更方便地访问设备,并进行网络通信和数据传输。

 域名解析

P地址实在是难以记忆,有没有什么办法可以通过主机名或替代的字符地址去代替数字化的P地址呢?
实际上,我们一直都是通过字符化的地址去访问服务器,很少指定P地址
比如,我们在浏览器内打开:WWW.baidu.com,会打开百度的网址
其中,www.baidu..com,是百度的网址,我们称之为:域名

 

二、网络连接测试

ping命令

Linux ping命令是一个用于测试网络连接和检测网络故障的工具。它可以向指定的目标主机发送一个或多个ICMP Echo Request报文,并等待目标主机返回ICMP Echo Reply报文作为响应。通过观察响应时间和丢包情况,我们可以判断网络连接是否正常。

Linux ping命令的基本语法是:

ping [选项] [目标主机]

其中,目标主机可以是IP地址或域名。选项可以用来控制ping命令的行为,例如:

  • -c <次数>:指定发送请求的次数,然后停止。
  • -i <间隔>:指定发送请求的间隔时间,单位是秒。
  • -s <大小>:指定发送数据包的大小,单位是字节。
  • -t <TTL>:指定发送数据包的TTL(Time To Live)值,即最大跳数。
  • -w <超时>:指定ping命令的最大执行时间,单位是秒。

Linux ping命令的输出结果包含以下信息:

  • 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.025 ms:表示收到了来自192.168.1.1的64字节的回应报文,序号是1,TTL值是64,响应时间是0.025毫秒。
  • --- 192.168.1.1 ping statistics ---:表示开始显示ping命令的统计信息。
  • 10 packets transmitted, 10 received, 0% packet loss, time 9008ms:表示发送了10个请求报文,收到了10个回应报文,丢包率是0%,总时间是9008毫秒。
  • rtt min/avg/max/mdev = 0.021/0.035/0.078/0.011 ms:表示响应时间(Round Trip Time)的最小值、平均值、最大值和标准差,单位是毫秒。
  • Ctrl+C可中断程序执行

查询本地网络配置 

  • 使用命令提示符(cmd)输入一些命令,例如:
    • ipconfig:查看本地IP地址、子网掩码、默认网关等信息。
    • ipconfig /all:查看更详细的本地网络配置信息,包括物理地址、DNS服务器、DHCP状态等。
    • ping:测试本地与目标主机的网络连通性,例如ping www.baidu.com
    • tracert:跟踪本地到目标主机的数据包路径,例如tracert www.baidu.com
  • 使用图形界面操作,例如:
    • 在控制面板中打开网络和共享中心,查看本地网络连接状态和属性。
    • 在任务栏中右键点击网络图标,选择打开网络和Internet设置,查看或修改本地网络配置。

 查询本地虚拟机

  • 使用命令提示符(cmd)输入一些命令,例如:
    • ifconfig:查看本地虚拟机IP地址、子网掩码、默认网关等信息
  • 使用图形界面操作,例如
    • 点击“控制面板”,选择“网络和Internet”
    • 点击“查看网络状态和任务”
    • 点击“更改适配器设置
    • 选择VMnet8那个适配器,邮件选择“属性”
    • 选择IPV4一项,点击右下角的“属性”

 三、网络连接模式

 桥接模式

相当于在物理主机与虚拟机网卡之间 架设了一座桥梁,从而可以通过物理主机的网卡
访问外网。

NAT模式

NAT模式:让VM虚拟机的网络服务发挥路由器的 作用,使得通过虚拟机软件模拟的主机可以通过 物理主机访问外网。在真机中,NAT虚拟机网卡 对应的物理网卡是VMnet8。

 

仅主机模式

仅主机模式:仅让虚拟机内的主机与物理主机通信,不能访问外网。在真机中,仅主机模式模拟网卡对应的物理网卡是VMnet1。 

 

四、配置网络IP地址

配置静态IP

虚拟机左上角“编辑”,点击有个“虚拟网络编辑器” 

  • Linux修改静态IP的方法和步骤取决于Linux的发行版和版本,以及网络接口的类型和名称。一般来说,需要考虑以下几个方面:
    • 确定要设置静态IP地址的网络接口名称,例如eth0或ens33。
    • 编辑网络接口的配置文件,通常位于/etc/sysconfig/network-scripts或/etc/network目录下,根据不同的发行版可能有不同的文件名,例如ifcfg-eth0或interfaces。
    • 在配置文件中修改或添加以下参数:
      • BOOTPROTO=“static”:指定使用静态IP地址,而不是动态获取(DHCP)。
      • IPADDR=“xxx.xxx.xxx.xxx”:指定静态IP地址,根据网络环境选择合适的网段。
      • NETMASK=“255.xxx.xxx.xxx”:指定子网掩码,根据网络环境选择合适的值。
      • GATEWAY=“xxx.xxx.xxx.xxx”:指定网关地址,通常是路由器或交换机的IP地址。
      • DNS1=“xxx.xxx.xxx.xxx”:指定DNS服务器地址,可以使用公共的DNS服务,例如8.8.8.8或114.114.114.114。
    • 保存配置文件并重启网络服务或重启系统使修改生效。也可以:systemctl restart network

配置主机名

hostname命令

  • Linux hostname命令是一个用于显示和设置系统的主机名的工具。主机名是用来标识和连接网络中的机器的一个独特的名称。Linux系统中的HOSTNAME环境变量保存了当前的主机名,使用hostname命令可以查看和修改这个变量的值。
  • Linux hostname命令的基本语法是:

hostname [选项] [主机名/文件名]

其中,主机名/文件名参数是可选的,用来指定一个新的主机名或从一个文件中读取主机名。选项参数可以用来控制hostname命令的行为,例如:

  • -i 或 --ip-address:显示主机名对应的IP地址。

  • -I 或 --all-ip-addresses:显示所有分配给系统网络接口的IP地址。

  • -s 或 --short:显示缩短的主机名,即去掉点(.)后面的部分。

  • -f 或 --fqdn 或 --long:显示完全域名(FQDN),即主机名加上DNS域名。

  • -d 或 --domain:显示DNS域名。

  • -F 或 --file:从指定文件中读取主机名。

  • -b 或 --boot:忽略无效的主机名,使用默认值。

  • Linux hostname命令只能临时修改主机名,重启系统后会恢复原来的值。如果要永久修改主机名,需要使用hostnamectl命令或直接编辑配置文件 /etc/hostname 和 /etc/hosts

hostnamectl命令

  • Linux hostnamectl命令是一个用于查询和更改系统主机名和相关设置的工具。主机名是用来标识和连接网络中的机器的一个独特的名称。Linux系统中的HOSTNAME环境变量保存了当前的主机名,使用hostnamectl命令可以查看和修改这个变量的值。
  • Linux hostnamectl命令的基本语法是:

hostnamectl [选项] [命令]

其中,命令参数可以是以下几种:

  • status:用于查看当前主机名设置。
  • set-hostname NAME:用于设置系统主机名。
  • set-icon-name NAME:用于设置主机图标名称。
  • set-chassis NAME:用于设置主机机箱类型。

选项参数可以用来控制hostnamectl命令的行为,例如:

  • -i 或 --ip-address:显示主机名对应的IP地址。

  • -I 或 --all-ip-addresses:显示所有分配给系统网络接口的IP地址。

  • -s 或 --short:显示缩短的主机名,即去掉点(.)后面的部分。

  • -f 或 --fqdn 或 --long:显示完全域名(FQDN),即主机名加上DNS域名。

  • -d 或 --domain:显示DNS域名。

  • -F 或 --file:从指定文件中读取主机名。

  • -b 或 --boot:忽略无效的主机名,使用默认值。

  • -H --host=[USER@]HOST:用于操作远程主机。

  • Linux hostnamectl命令可以临时或永久地修改主机名,不需要重启系统。如果要修改/etc/hostname或/etc/hosts文件中的主机名,需要使用hostname命令或直接编辑文件。

 修改hosts映射文件

  • hosts映射文件是一个用于定义IP地址和主机名的映射关系的系统文件,通常位于C:\Windows\System32\drivers\etc目录下,没有扩展名,可以用文本编辑器打开。
  • 修改hosts映射文件的目的是为了绕过DNS服务器,直接访问指定的IP地址,或者为一些IP地址设置方便记忆的主机名,例如虚拟机的IP地址。
  • 修改hosts映射文件的方法和步骤如下:
    • 首先,找到hosts文件,并检查其是否为只读属性,如果是,需要取消只读属性。
    • 然后,使用管理员权限打开hosts文件,并在文件末尾添加新的映射关系,格式为IP地址 空格 主机名,例如192.168.10.100 hadoop100
    • 最后,保存并关闭hosts文件,并清空浏览器缓存,即可生效。

 

五、远程登录SSH

 ssh命令

  • Linux ssh命令是一个用于通过安全的加密协议,远程登录和操作其他Linux主机的工具。它可以实现数据的传输和执行命令,同时保证通信的安全性和效率。
  • Linux ssh命令的基本语法是:

ssh [选项] [用户@]主机 [命令]

其中,用户@主机参数是指定要登录的远程主机的用户名和地址,可以是IP地址或域名。如果不指定用户名,则默认为当前用户。命令参数是可选的,用来在远程主机上执行指定的命令,而不进入交互式shell。选项参数可以用来控制ssh命令的行为,例如:

  • -p <端口>:指定远程主机的SSH服务端口,默认为22。

  • -i <文件>:指定要使用的私钥文件,用于公钥认证。

  • -v:显示详细的调试信息,可以重复使用以增加信息级别。

  • -C:启用压缩数据传输,可以提高速度。

  • -X:启用X11转发,可以在远程主机上运行图形界面程序。

  • Linux ssh命令的使用步骤如下:

    • 首先,确保本地主机和远程主机都安装了SSH服务,并且远程主机的SSH服务已经启动。
    • 然后,在本地主机上运行ssh命令,输入远程主机的用户名和地址,以及要执行的命令(如果有)。
    • 接着,如果是第一次登录远程主机,系统会提示是否接受远程主机的公钥指纹,并将其保存在本地主机的$HOME/.ssh/known_hosts文件中。输入yes表示接受。
    • 然后,系统会要求输入远程主机的密码或私钥口令(如果使用公钥认证)。输入正确后,就可以登录或执行命令了。
    • 最后,在远程主机上操作完成后,可以输入exit或Ctrl+D退出登录。

 六、网络请求和下载

wget命令

  • Linux wget命令是一个用于从Web下载文件的命令行工具,支持 HTTP、HTTPS及FTP协议下载文件,而且wget还提供了很多选项,例如下载多个文件、后台下载,使用代理等等,使用非常方便。
  • Linux wget命令的基本语法是:

wget [选项]... [URL]...

其中,[URL]是要下载的文件的网址,可以是一个或多个。[选项]是用来控制wget命令的行为和功能的参数,例如:

  • -O 或 --output-document=文件:将下载的文件保存为指定的文件名。
  • -c 或 --continue:断点续传,继续下载未完成的部分。
  • -b 或 --background:后台下载,将输出重定向到日志文件。
  • -i 或 --input-file=文件:从指定的文件中读取要下载的URL列表。
  • -r 或 --recursive:递归下载,下载指定的URL以及其链接到的所有页面和文件。
  • -l 或 --level=数字:指定递归下载的最大深度,默认为5。
  • -A 或 --accept=列表:指定要下载的文件类型,用逗号分隔,例如jpg,png,gif。
  • -R 或 --reject=列表:指定要排除的文件类型,用逗号分隔。
  • -p 或 --page-requisites:下载所有显示网页所需的元素,如图片和样式表等。
  • -k 或 --convert-links:下载完成后,将网页中的链接修改为本地链接。
  • -m 或 --mirror:镜像模式,相当于-r -N -l inf -nr选项的组合。
  • -w 或 --wait=秒数:在两次下载之间等待指定的秒数,可以避免过于频繁地访问服务器。
  • -t 或 --tries=次数:指定重试的次数,0表示无限制。
  • -o 或 --output-file=日志文件:将详细的输出信息写入指定的日志文件中。
  • -q 或 --quiet:安静模式,不输出任何信息。
  • -v 或 --verbose:详细模式,输出详细的信息,默认开启。
  • -nv 或 --no-verbose:非详细模式,只输出简要的信息。

curl命令

 

  • Linux curl命令是一个用于通过网络或者Internet传输文件的命令行工具,支持一系列常见协议(包括HTTP、HTTPS、FTP和SMB)。使用它可以访问FTP站点、发送电子邮件、连接到SAMBA地址、上传和下载文件以及相关任务。
  • Linux curl命令的基本语法是:

curl [选项]... [URL]...

其中,[URL]是要传输的文件的网址,可以是一个或多个。[选项]是用来控制curl命令的行为和功能的参数,例如:

  • -o <文件> 或 --output <文件>:将下载的文件保存为指定的文件名,而不是使用URL中的默认文件名。
  • -O 或 --remote-name:将下载的文件保存为URL中的默认文件名。
  • -C <偏移量> 或 --continue-at <偏移量>:断点续传,从指定的偏移量处继续下载未完成的部分。
  • -b <数据/文件> 或 --cookie <数据/文件>:发送cookie数据到HTTP服务器,数据格式为NAME1=VALUE1; NAME2=VALUE2,或者从指定的文件中读取cookie数据。
  • -c <文件> 或 --cookie-jar <文件>:操作结束后将服务器返回的cookies保存到指定的文件中。
  • -d <数据> 或 --data <数据>:以POST方式发送指定的数据到HTTP服务器,数据格式为name1=value1&name2=value2,或者以@开头指定一个包含数据的文件。
  • -F <名称=内容> 或 --form <名称=内容>:以multipart/form-data方式发送指定的数据到HTTP服务器,内容可以是一个文件名,或者以@开头指定一个包含数据的文件。
  • -H <头部> 或 --header <头部>:添加一个自定义的HTTP头部到请求中,格式为name: value
  • -i 或 --include:输出HTTP头和返回内容。
  • -I 或 --head:只输出HTTP头,不获取内容。
  • -L 或 --location:如果服务器返回3xx状态码,则自动跟随重定向的URL。
  • -u <用户[:密码]> 或 --user <用户[:密码]>:设置服务器的用户和密码,支持HTTP、FTP和SMB协议。
  • -U <用户[:密码]> 或 --proxy-user <用户[:密码]>:设置代理服务器的用户和密码,支持HTTP、FTP和SMB协议。
  • -x <主机[:端口]> 或 --proxy <主机[:端口]>:使用指定的代理服务器和端口访问URL,支持HTTP、FTP和SMB协议。
  • -A <字符串> 或 --user-agent <字符串>:设置HTTP请求头中的User-Agent字段,用于伪装浏览器类型。
  • -e <URL> 或 --referer <URL>:设置HTTP请求头中的Referer字段,用于伪造来源页面。
  • -X <命令> 或 --request <命令>:设置HTTP请求方法,如GET、POST、PUT等。

 端口

 ​​​nmap命令 

  • Linux nmap命令是一个用于网络探测和安全审计的命令行工具,支持多种扫描技术和参数,可以发现网络上的主机、服务、操作系统、防火墙等信息。
  • Linux nmap命令的基本语法是:

nmap [扫描类型] [选项] {目标规范}

其中,{目标规范}是指定要扫描的主机或网络的地址,可以是IP地址、域名、子网等。[扫描类型]是指定使用的扫描技术,例如:

  • -sL:列表扫描,只列出目标主机的名称和地址,不发送任何报文。
  • -sn:Ping扫描,只检测目标主机是否存活,不进行端口扫描。
  • -Pn:跳过Ping检测,直接进行端口扫描。
  • -sS:SYN扫描,使用TCP半开放连接方式进行端口扫描,速度快且隐蔽。
  • -sT:TCP连接扫描,使用完整的TCP连接方式进行端口扫描,速度慢且易被发现。
  • -sU:UDP扫描,使用UDP报文进行端口扫描,速度慢且不稳定。
  • -sO:IP协议扫描,使用IP报文进行协议扫描,检测目标主机支持的协议类型。
  • -sI:空闲扫描,使用另一台主机作为代理进行端口扫描,难以被追踪。

[选项]是用来控制nmap命令的行为和功能的参数,例如:

  • -p:指定要扫描的端口范围或列表,如-p 22,80,443或-p 1-1024。
  • -F:快速模式,只扫描最常见的100个端口。
  • -r:顺序模式,按照端口号从小到大进行扫描,不随机化。
  • -O:开启操作系统检测功能,尝试识别目标主机的操作系统类型和版本。
  • -sV:开启服务版本检测功能,尝试识别目标主机开放端口上运行的服务类型和版本。
  • -A:开启综合模式,相当于-O -sV -sC -T4选项的组合。
  • -v:开启详细模式,输出更多的信息。
  • -oX <文件>:将扫描结果以XML格式保存到指定的文件中。

 netstat命令

  • Linux netstat命令是一个用于显示与IP、TCP、UDP和ICMP协议相关的统计数据和网络状态的工具,一般用于检查本机各端口的网络连接情况,或者诊断网络问题。
  • Linux netstat命令的基本语法是:

netstat [选项]...

其中,[选项]是用来控制netstat命令的行为和功能的参数,例如:

  • -a 或 --all:显示所有连接中的Socket。
  • -A <网络类型> 或 --<网络类型>:列出该网络类型连接中的相关地址,如inet、unix、ipx等。
  • -c 或 --continuous:持续列出网络状态。
  • -C 或 --cache:显示路由器配置的缓存信息。
  • -e 或 --extend:显示网络其他相关信息,如用户ID、进程ID等。
  • -F 或 --fib:显示路由缓存。
  • -g 或 --groups:显示多播功能群组组员名单。
  • -h 或 --help:显示帮助信息。
  • -i 或 --interfaces:显示网络接口信息表单,如MTU、接收和发送的数据包数量等。
  • -l 或 --listening:仅显示正在监听的服务状态。
  • -n 或 --numeric:直接使用IP地址,而不通过域名服务器解析。
  • -N 或 --netlink 或 --symbolic:显示网络硬件外围设备的符号链接名称。
  • -o 或 --timers:显示计时器数据信息。
  • -p 或 --programs:显示正在使用Socket的程序识别码和名称。
  • -r 或 --route:显示路由表信息。
  • -s 或 --statistics:显示网络工作信息统计表信息,如TCP、UDP、ICMP等协议的数据包数量等。
  • -t 或 --tcp:显示TCP传输协议的连接状态。
  • -u 或 --udp:显示UDP传输协议的连接状态。
  • -v 或 --verbose:显示详细的执行过程。
  • -V 或 --version:显示版本信息。
  • -w 或 --raw:显示RAW传输协议的连接状态。
  • -x 或 --unix:此参数的效果和指定"-A unix"参数相同。
  • --ip或-inet: 此参数的效果和指定"-A inet"参数相同。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟雨平生9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值