Linux网络管理
Linux网络管理
网络基本概念
物理地址(MAC地址) & 逻辑地址(IP地址)
网卡
- 计算机用于连接网络的硬件设备
- 网卡具有一个物理地址,被称为MAC地址
- 每个网卡都有一个唯一的MAC地址,类似于身份证号码
MAC地址
- MAC地址是一个物理地址,由网卡硬件制造时固化在设备中
- 网络设备上的一个唯一标识符,用于在局域网中标识和定位网卡设备
IP地址
- 做逻辑地址
- 网络中用于唯一标识和定位设备的一种地址
公有IP地址 & 私有IP地址
-
局域网使用私有IP地址
-
互联网使用公有IP地址
公有IP地址的范围
- A类的公有IP: 1.0.0.0-9.255.255.255 11.0.0.0-126.255.255.255
- B类的公有IP: 128.0.0.0-172.15.255.255 172.32.0.0-191.255.255.255
- C类的公有IP: 192.0.0.0-192.168.255.255 192.169.0.0-223.255.255.255
私有IP地址的范围
- A类私有IP地址: 10.0.0.0-10.255.255.255
- B类私有IP地址: 172.16.0.0-172.31.255.255
- C类私有IP地址: 192.168.0.0-192.168.255.255
NAT 网络地址转换
- NAT(Network Address Translation)是一种网络技术,用于在私有网络(例如家庭网络或企业网络)与公共网络(如互联网)之间进行通信。NAT的主要功能是将私有网络中的IP地址转换为公共网络可路由的IP地址,以便实现通信。
- NAT的主要目的是解决IPv4地址短缺的问题。
IPv4 & IPv6
- IPv4(Internet Protocol version 4)和IPv6(Internet Protocol version 6)是互联网上常用的两种IP协议。
- IPv4是最早的IP协议版本,它使用32位(4字节)地址空间来唯一标识网络中的设备。IPv4地址由四个十进制数(0-255)组成,每个数之间使用句点分隔,例如192.168.0.1。IPv4地址空间有约42亿个可用地址,但随着互联网的迅速发展和设备的增加,IPv4地址短缺问题逐渐凸显。
- IPv6是为了解决IPv4地址短缺问题而开发的新一代IP协议。IPv6采用了128位(16字节)的地址空间,相比IPv4的地址空间大幅增加。IPv6地址由八组四位十六进制数(0-9,A-F)组成,每组之间使用冒号分隔,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334。IPv6地址空间可提供约340万亿亿亿亿个地址,大大满足了未来互联网发展的需求。
- IPv4 & IPv6 的区别:
- 地址表示:IPv4使用点分十进制表示,而IPv6使用冒号分隔的十六进制表示。
- 地址空间:IPv4地址空间有限,而IPv6地址空间巨大,可以满足日益增长的互联网设备需求。
- 地址分配:IPv4地址通常由ISP(Internet Service Provider,互联网服务提供商)分配,而IPv6地址分配更加灵活,并且支持自动配置。
- 网络协议:IPv4和IPv6是两种不兼容的协议,但它们可以通过转换技术(如双栈、隧道)来实现互联互通。
- 安全性和扩展性:IPv6在安全性和支持新的网络功能方面更加强大,并提供了更好的扩展性。
公网IP地址的分配
-
公网IP地址的分配是由互联网服务提供商(ISP,Internet Service Provider)负责进行的。
-
静态IP地址:静态IP地址是由ISP手动分配给用户的固定IP地址。每个静态IP地址都是唯一的,并且与特定的网络设备(如路由器、服务器)关联。静态IP地址适用于需要保持固定公网地址的场景,如托管网站、远程访问等。静态IP地址通常需要用户向ISP支付额外费用。
-
动态IP地址:动态IP地址是由ISP通过动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)自动分配给用户的IP地址。每次用户连接到互联网时,ISP会自动分配一个可用的动态IP地址给用户的设备。动态IP地址是临时的,并且可能在下一次连接时发生变化。动态IP地址适用于大多数家庭网络和小型办公网络,因为它们更经济且易于管理。
公网 IP地址通常是动态分配的
-
网络地址转换(NAT):对于使用私有IP地址的设备(如家庭网络、企业内部网络),ISP通常会分配一个公网IP地址给网络中的路由器或网关设备。通过NAT技术,路由器将私有IP地址转换为公共IP地址,并为网络中的设备提供互联网访问。这种方式可以有效地共享一个公网IP地址给多个设备,并实现局域网内部的互联网连接。
动态IP & 静态IP
- DHCP是一种网络协议,用于自动分配IP地址和其他网络配置信息给连接到网络的设备。
- 在静态配置中,设备的IP地址和其他网络配置信息是手动配置的。
动态IP
- 动态IP是由互联网服务提供商(ISP)动态分配给用户设备的IP地址。
- 每次设备连接到互联网时,ISP会为设备分配一个可用的IP地址,通常是从IP地址池中随机选择。
- 动态IP地址可能在每次重新连接时发生变化,因为它们是临时分配的,类似于你在公共电话亭中临时使用的电话号码。
- 动态IP适用于普通家庭用户和小型企业,因为它们经济实惠且供应量充足。
- 对于大多数网络活动(如网页浏览、电子邮件、在线娱乐等),动态IP足够满足需求。
静态IP
- 静态IP是由ISP手动分配给用户设备的固定IP地址。
- 静态IP是在网络设置中手动配置的,并且保持不变,无论设备是否重新连接到互联网。
- 静态IP地址通常用于需要长期稳定连接或特定网络服务的设备,如服务器、路由器、网络摄像头等。
- 使用静态IP地址可以方便地进行远程访问、设置端口转发和托管网络服务等。
- 静态IP通常需要额外付费,因为ISP需要保留和管理固定的IP地址资源。
环回地址
-
环回地址(Loopback Address)是计算机网络中的特殊IP地址,用于在同一设备内部进行网络通信。它通常被分配给一个名为"localhost"的网络接口,用于本地回环测试和网络应用程序的自我测试。
-
IPv4中的环回地址是 127.0.0.1,也可以表示为 127.x.x.x(其中 x 是 0 到 255 之间的任意数)。
IPv6中的环回地址是 ::1。
端口port
- 作用:区分程序
- 范围:0 ~ 65535
- 系统端口: 0 ~ 1023
- 用户端口, 也称为注册端口:1024 ~ 49151
- 动态端口, 也称为私有或临时端口:49152 ~ 65535
域名Domain Name
- 作用:替代IP,方便识记
- 域名如何转换为IP:DNS
- 域名与IP的数量关系:多对一
网络配置文件
文件 | 作用 |
---|---|
/etc/sysconfig/network-scripts/ifcfgens33 |
网卡配置文件 |
/etc/sysconfig/network-scripts/ifcfg-lo |
环回地址配置文件 |
/etc/hosts |
主机名与IP的映射 |
/etc/resolv.conf |
DNS配置,由ens33 自动覆盖 |
查看及配置网络
ifconfig
- 全拼:network interfaces configuring
- 位于net-tools工具包
- 可以动态配置网络参数
ip
- 位于iproute工具包、
- 添加设备、启动停止网络设备、设置IP、设置网关……
连通性探测
ping
-
全拼:Packet Internet Groper,因特网包探索器
-
用于检测和测试网络连接以及测量与目标主机之间的延迟。
-
命令格式:
ping ip或域名
1
ping www.baidu.com
telnet
- 用于在命令行界面中与远程主机建立Telnet连接并进行远程操作。
- 连接到远程主机(远程登陆):
telnet 远程主机
。例如,telnet 192.168.1.1
。 - 连接到指定端口(探测端口):
telnet 远程主机 端口
。例如,telnet 192.168.1.1 80
。 - 连接到远程主机并指定用户名:
telnet -l 用户名 远程主机
。例如,telnet -l john 192.168.1.1
。
查看网络连接
netstat (ss)
-
全拼:network statistics
-
查看程序的网络连接情况:
netstat -ap | grep ssh
查看程序ssh的网络连接情况
-
查看端口的网络连接情况:
netstat -ap | grep 3306
查看端口3306的网络连接情况
域名相关
nslookup
-
nslookup
是一种用于查询域名系统(DNS)记录的命令行工具。它可以用于获取特定主机的IP地址、解析域名、查询DNS记录等。 -
命令格式:
nslookup [选项] [域名]
-
常见选项:
- 无选项:在交互模式下启动nslookup,可以在命令提示符中直接输入域名进行查询。
-type=记录类型
:指定要查询的DNS记录类型。常见的记录类型包括 A(主机记录,获取主机的IP地址) CNAME(规范名称,获取别名的实际名称) MX(邮件交换记录,获取邮件服务器的优先级和地址)等。-query=记录类型
:与上述选项相同,用于指定查询的DNS记录类型。-debug
:显示更详细的调试信息。
-
使用示例:
-
查询域名的IP地址:在命令提示符中输入
nslookup 域名
。例如,nslookup example.com
。 -
查询特定类型的DNS记录:在命令提示符中输入
nslookup -type=记录类型 域名
。1
nslookup -type=mx example.com
-
-
查询结果:
nslookup
命令会显示查询结果,包括查询的域名、对应的IP地址、DNS记录的TTL(生存时间)、查询时间等。如果查询失败或找不到域名的记录,会显示相应的错误信息。
dig
-
dig
是一种用于在命令行中执行DNS(Domain Name System)查询的工具。它提供了详细的域名解析信息,包括域名的IP地址、DNS记录、域名服务器等。 -
命令格式:
dig [选项] [域名]
-
常见选项:
- 无选项:在默认模式下执行
dig
命令,查询指定域名的A记录(主机的IP地址)。 +记录类型
:指定要查询的DNS记录类型。常见的记录类型包括 A(主机记录,获取主机的IP地址) CNAME(规范名称,获取别名的实际名称) MX(邮件交换记录,获取邮件服务器的优先级和地址)等。@DNS服务器
:指定用于查询的特定DNS服务器。默认情况下,dig将使用操作系统配置的DNS服务器。+short
:以简洁的形式显示查询结果,只显示IP地址或最基本的信息。
- 无选项:在默认模式下执行
-
使用示例:
-
查询域名的IP地址:在命令提示符中输入
dig 域名
。例如1
dig example.com
-
查询特定类型的DNS记录:在命令提示符中输入
dig +记录类型 域名
。例如1
dig +mx example.com
-
查询特定DNS服务器:在命令提示符中输入
dig @DNS服务器 域名
。例如1
dig @8.8.8.8 example.com
-
-
查询结果:
dig
命令会显示详细的查询结果,包括查询的域名、对应的IP地址、DNS记录的TTL(生存时间)、查询时间等。查询结果中还包含有关DNS服务器和查询过程的信息。
host
-
用于执行DNS(Domain Name System)查询并获取与指定域名相关的信息。它可用于查找域名的IP地址、反向解析IP地址、查询MX记录等。
-
语法:host [选项] [域名]
-
常见选项:
- 无选项:在默认模式下执行host命令,查询指定域名的A记录(主机的IP地址)。
-t 记录类型
:指定要查询的DNS记录类型。常见的记录类型包括 A(主机记录,获取主机的IP地址) CNAME(规范名称,获取别名的实际名称) MX(邮件交换记录,获取邮件服务器的优先级和地址)等。-a
:查询所有可用的DNS记录类型。-4
:仅查询IPv4地址记录。-6
:仅查询IPv6地址记录。
-
使用示例:
-
查询域名的IP地址:在命令提示符中输入
host 域名
。例如1
host example.com
-
查询特定类型的DNS记录:在命令提示符中输入
host -t 记录类型 域名
。例如1
host -t mx example.com
-
查询IPv6地址记录:在命令提示符中输入
host -6 域名
。例如1
host -6 example.com
-
-
查询结果:
host
命令会显示查询结果,包括查询的域名、对应的IP地址或其他DNS记录信息。它通常会显示多个记录,如果有多个可用的记录类型。
下载传输
Xshell拖曳上传
xftp & Filezilla & FlashFTP 双向传输
sz
-
sz
命令是用于在Unix/Linux系统中通过串行连接(如终端仿真器)从本地主机向远程主机发送文件的命令。它是Zmodem协议的一部分,允许安全地将文件传输到远程主机。1
sz 文件名
rz
rz
命令是用于在终端仿真器中接收(上传)文件到本地主机的命令。它通常与支持Zmodem协议的终端仿真器一起使用,如Minicom、SecureCRT或Xshell(通过Xftp工具)。- 在远程主机上,通过终端仿真器(如Xshell)与目标主机建立连接。
- 在终端仿真器中,使用命令行界面进入要上传文件的目录。
- 在命令行界面中,输入
rz
命令并按下回车键。 - 终端仿真器会进入接收文件的等待状态。
- 在本地主机上,通过支持Zmodem协议的文件传输工具(如sz、SecureCRT的rz命令)选择要上传的文件。
- 拖拽或通过文件传输工具将文件发送到终端仿真器窗口。
- 文件传输完成后,终端仿真器将接收并保存文件到当前目录中。
VMware Tools 拖动传入
- VMware Tools是一套软件,提供了一些增强功能和驱动程序,用于增强在虚拟机中运行的操作系统的性能和功能。在使用VMware虚拟化平台(如VMware Workstation、VMware Fusion、VMware ESXi等)创建的虚拟机中,可以使用VMware Tools来实现拖动传输文件的功能。
QQ双向传输
wget
-
wget是一个常用的命令行工具,用于从网络上下载文件。它支持HTTP、HTTPS和FTP等协议。
-
命令语法:
wget [选项] [URL]
-
常见选项:
-O 文件名
:将下载的文件保存为指定的文件名。-P 目录
:指定下载文件的保存目录。-c
:继续下载中断的文件。-r
:递归下载,下载指定URL页面上的所有链接。-np
:不跟踪父级目录,用于限制递归下载时的目录层级。-nH
:不保存远程主机的目录结构,将所有文件保存到当前目录。-nc
:不覆盖已存在的文件,跳过已下载的文件。-q
:安静模式,减少输出信息。-h
:显示wget命令的帮助信息和选项说明。
-
使用示例:
-
下载文件到当前目录:
wget URL
。例如1
wget https://example.com/file.zip
-
下载文件并指定保存目录:
wget -P 目录 URL
。例如1
wget -P /path/to/save https://example.com/file.zip
-
断点续传下载:
wget -c URL
。例如1
wget -c https://example.com/largefile.zip
-
递归下载整个网站:
wget -r URL
。例1
wget -r https://example.com
-
scp
-
全拼:Secure Copy
-
用于在本地主机和远程主机之间进行安全的文件传输。它使用SSH协议来加密传输数据,可以在不同的操作系统之间进行文件传输。
-
命令语法:
scp [选项] [源文件/目录] [目标位置]
-
常见选项:
-r
:递归复制整个目录。-p
:保留源文件的权限和时间戳。-P 端口
:指定远程SSH服务器的端口号,默认为22。-i 私钥文件
:指定使用的私钥文件来进行身份验证。-v
:显示详细的调试信息。
-
使用示例:
-
从远程主机复制文件到本地主机:
scp 用户名@远程主机:源文件 目标位置
。例如1
scp user@example.com:/path/to/file.txt /local/path/
-
从本地主机复制文件到远程主机:
scp 源文件 用户名@远程主机:目标位置
。例如1
scp /local/path/file.txt user@example.com:/path/to/
-
复制整个目录:使用
-r
选项来递归复制整个目录。例如1
scp -r /local/directory user@example.com:/remote/directory
-
curl
-
用于与网络服务器进行数据传输。它支持多种协议,包括HTTP、HTTPS、FTP等,并提供了丰富的功能,如发送HTTP请求、下载文件、上传文件、处理Cookie等。
-
命令语法:
curl [选项] [URL]
-
常见选项:
-X 请求方法
:指定HTTP请求的方法,如GET、POST、PUT等。-H "头信息"
:添加自定义的HTTP头信息,如Content-Type、User-Agent等。-d "数据"
:发送POST请求时,指定要发送的数据。-F "字段名=值"
:发送POST请求时,以表单方式发送数据。-o 文件名
:将服务器响应保存到指定的文件中。-O
:将服务器响应保存为默认的文件名。-L
:跟随重定向。-c "文件"
:使用指定的文件来保存和加载Cookie。-u 用户名:密码
:指定HTTP身份验证的用户名和密码。-s
:静默模式,不显示进度和错误信息。-v
:显示详细的调试信息。
-
使用示例:
-
发送GET请求并显示服务器响应:
curl URL
。例如1
curl https://example.com
-
发送POST请求并传递数据:
curl -X POST -d "data=hello" URL
。例如1
curl -X POST -d "username=admin&password=123" https://example.com/login
-
下载文件到本地:
curl -o 文件名 URL
。例如1
curl -o image.jpg https://example.com/image.jpg
-
上传文件到服务器:
curl -F "file=@本地文件路径" URL
。例如1
curl -F "file=@/path/to/file.txt" https://example.com/upload
-
防火墙设置
-
iptables工具
-
查看已开放的端口
1
firewall-cmd --list-ports
-
开启80端口
1
firewall-cmd --zone=public --add-port=80/tcp --permanent
-
重启防火墙
1
firewall-cmd --reload
-
停止防火墙
1
systemctl stop firewalld.service
-
禁止防火墙开机启动
1
systemctl disable firewalld.service
-
删除规则
1
firewall-cmd --zone=public --remove-port=80/tcp --permanent
欲将心事付瑶琴。知音少,弦断有谁听?