Linux(1)
笔记仅供学习,切勿触碰法律红线!
以下笔记学习来自B站泷羽Sec:https://space.bilibili.com/350329294?spm_id_from=333.337.search-card.all.click
如涉及侵权马上删除文章
1.openssl加密工具
openssl是一个开源的加密工具包,提供了各种加密、解密、签名、验证等功能
1.1 使用md5加密
openssl passwd -1 123
- passwd表示命令用于处理密码相关的操作
- -1参数指定使用md5加密算法,对密码123进行加密处理。md5是一种常用的哈希算法,他将任意长度的输入数据转换为固定长度的输出(通常是128位的哈希值)
1.2 使用sha-256加密
openssl passwd -5 123
-5参数表示使用sha-256哈希算法对密码123
sha-256是一种更安全的哈希算法,他生成的哈希值长度为256位。每次对相同的密码进行sha-256加密时,由于加密过程中通常回引入随机因素(如盐值等),所以每次生成密文都是不一样的,这增加了密码的安全性,及时攻击者获得了密文,也很难通过逆向计算得到原始密码
1.3 常用加密参数
-1:使用 MD5 算法进行密码加密。这是一种较为传统的哈希算法,虽然现在由于其安全性存在一定局限(如可能遭受彩虹表攻击等),但在一些旧系统或特定场景下仍可能会用到。示例:openssl passwd -1 password。
-5:正如前面所解释的,使用基于 MD5 的加盐哈希算法,相对单纯的 MD5 算法增加了一定的安全性,是比较常用的一种密码加密方式。
-6:采用 SHA-512 算法进行密码加密。SHA-512 属于 SHA-2 系列算法,具有较高的安全性,能够生成较长的哈希值,目前广泛应用于需要较高安全级别的密码存储和验证场景。示例:openssl passwd -6 password。
-salt:手动指定盐值(Salt Value)。盐值是在密码哈希过程中添加的随机字符串,用于增加密码哈希的唯一性和安全性,防止相同密码的哈希结果相同(即使密码相同,不同的盐值会导致不同的哈希结果)。如果不手动指定,系统会自动生成一个随机盐值。示例:openssl passwd -5 -salt mysaltvalue password,这里 “mysaltvalue” 就是手动指定的盐值。
-in:从指定的文件中读取要加密的密码,而不是从命令行直接输入密码。例如,如果有一个文件 password.txt 里面存储了要加密的密码,可使用 openssl passwd -5 -in password.txt 来对文件中的密码进行加密。
-out:将加密后的密码输出到指定的文件中。比如,可以使用 openssl passwd -5 password -out encrypted_password.txt 将加密后的密码结果保存到 encrypted_password.txt 文件中。
2.文件管理命令
创建空文件
touch new file
删除文件
rm newfile
新建目录
mkdir newdir
删除空目录
rmdir newdir
重命名文件
mv old.txt new.txt
移动文件
mv newfile newdir2
拷贝文件
cp file.txt newdir.txt
软链接:本质上是一个指向另一个文件或目录的特殊文件,里面存储的是目标文件或目录的路径信息,而不是实际的数据内容。就好比是一个快捷方式,通过它可以方便地访问到所指向的真实文件或目录。
In -s original.txt symlink.txt
硬链接:通过索引节点(inode)来进行的连接。在许多文件系统(如 Linux 的 ext 系列文件系统等)中,每个文件都有一个对应的 inode,它存储了文件的元数据信息,比如文件的权限、所有者、大小、时间戳以及最重要的 —— 数据块的指针。硬链接实际上就是创建了一个新的文件名,让它指向与原始文件相同的 inode,从而使得多个文件名可以对应到同一个文件内容。
In ~/offsec123.txt hardlink.txt
3.搜索文件
which
查找命令的可执行文件路径。例如,想知道ls命令在系统中的具体位置,可以使用“which ls”
echo $PATH
用于输出内容的命令
locate
用于快速查找文件,通过查询一个预先构建的文件数据库来实现
updatedb
用于更新“locate”命令所使用的文件数据库。这个操作会持续一段时间,因为他会扫描整个文件系统并将文件信息添加进数据库中
find
find ~ -mtime 2 -ls | sort -k9 -k10 | more
首先,“find” 是一个用于在文件系统中查找文件和目录的强大命令。
“~” 在这里表示当前用户的主目录,也就是以当前用户的家目录作为查找的起始路径。
“-mtime 2” 是 “find” 命令的一个时间条件参数,它表示要查找的是在过去两天内(精确来说是距离当前时间正好两天前的那一天,24 小时算一天)修改过的文件和目录。
“-ls” 选项则是让 “find” 命令在找到符合条件的文件和目录后,以类似 “ls -l” 的详细列表格式输出它们的相关信息,比如文件类型、权限、所有者、大小、修改时间等等。
“|” 是管道符号,它的作用是将前一个命令(这里就是 “find ~ -mtime 2 -ls”)的输出作为后一个命令的输入。
“sort” 命令用于对输入的数据进行排序。
“-k9 -k10” 是 “sort” 命令的参数,指定了按照第 9 个字段和第 10 个字段来进行排序,这里的字段是基于前面 “find -ls” 输出的详细列表信息而言的,通常第 9 个字段可能是文件大小,第 10 个字段可能是修改时间等(具体取决于系统的 “ls -l” 输出格式细节),通过这样的排序可以让输出结果按照特定的文件属性顺序呈现。
“| more” 又是一个管道操作,“more” 命令用于分页显示文本内容,它会将前面 “sort” 命令排序后的结果以分页的形式展示出来,方便用户逐页查看,避免一次性输出大量内容导致屏幕滚动过快难以查看的情况。
总体来说,这条命令组合起来就是在当前用户主目录下查找过去两天内修改过的文件和目录,以详细列表格式输出并按照特定字段排序后,再分页展示给用户查看。
find . -type f -iname '*.sh' -mmin -30 -ls
“find”:这是一个用于在文件系统中查找文件和目录的强大命令行工具。
“.” :表示从当前目录开始进行查找操作。也就是说,会以当前所在的目录作为搜索的起点,遍历其下的所有子目录及文件(如果有相关权限的话)。
“-type f”:指定要查找的类型为文件。这里的 “f” 代表文件(file),它会排除目录等其他类型的文件系统对象,只关注普通的文件。
“-iname ‘.sh’”:“-iname” 是不区分大小写的文件名匹配选项。“.sh” 是一个通配符模式,表示要查找的文件名是以 “.sh” 结尾的文件,无论文件名中的字母是大写还是小写,比如 “test.sh”“TEST.SH”“script123.sh” 等都会被匹配到。
“-mmin -30”:这是用于根据文件的修改时间来筛选文件的条件。“-mmin” 表示按照文件的分钟级修改时间来判断,“-30” 则表示要查找的是在最近 30 分钟内被修改过的文件。也就是说,只有那些在过去 30 分钟内有过修改操作的符合前面条件(是文件且文件名以.sh 结尾)的文件才会被选中。
“-ls”:这是一个让 “find” 命令在找到符合条件的文件后,以类似 “ls -l” 命令的长格式列出这些文件的详细信息,包括文件的权限、所有者、所属组、大小、修改时间等内容,方便用户进一步查看这些文件的具体属性。
总体而言,这条命令的作用是在当前目录及其子目录下,查找所有在最近 30 分钟内被修改过的、文件名以 “.sh” 结尾的文件,并以长格式列出它们的详细信息。
find / -user root -type f -perm -o=w -name '*.sh' 2>/dev/null
“find” 是用于在文件系统中查找文件和目录的命令。“/” 表示从根目录开始进行查找,意味着会遍历整个文件系统。
“-user root” 这个参数指定了要查找的文件所属用户是 “root”,也就是只查找属于根用户的那些文件。“-type f” 进一步限定查找的对象是普通文件(而不是目录、链接等其他类型的文件)。
“-perm -o=w” 表示查找具有可写权限(对于其他用户、所属组用户或者文件所有者,只要满足其中任何一种可写情况即可)的文件。
“-name ‘.sh’” 则是指定要查找的文件名需匹配 “.sh” 这个模式,也就是查找所有以 “.sh” 为扩展名的文件。
最后的 “2>/dev/null” 是将标准错误输出重定向到 “/dev/null”,“/dev/null” 可以看作是一个特殊的设备文件,它会丢弃写入其中的任何数据,在这里的作用就是不让查找过程中可能出现的错误信息显示在终端上,只输出符合查找条件的文件路径等相关结果。
总体来说,这条命令的目的是在整个文件系统中找出属于根用户、是普通文件、具有可写权限且文件名以 “.sh” 结尾的所有文件,并隐藏可能产生的错误提示信息。
4.用户账号
4.1 用户数据库
/etc/passwd:每行记录一个用户账户的基本信息,各个字段之间用冒号(:)分隔
/etc/shadow:每行对应一个用户账户的密码相关信息,字段之间也用冒号(:)分隔
组账号
cat /etc/group
禁用账号:
sudo passwd -l username
- sudo:以超级用户(root)的权限执行后面的命令。由于修改用户密码通常需要较高的权限,所以这里使用 sudo。
- passwd:用于管理用户账户密码的命令。
- -l:这是 passwd 命令的一个选项,代表“lock”(锁定)。
- username:你想要锁定密码的用户的用户名。
修改用户登录时效
change -E 1990-01-01 kali
-E 选项用于指定账户的过期日期,格式为 YYYY-MM-DD。这里的 1990-01-01 表示将 kali 用户的账户设置为在1990年1月1日过期。一旦账户过期,该用户将无法登录系统。
具体来说,chage 命令用于更改与用户账户相关的密码过期信息。通过指定 -E 选项后跟一个日期,你可以设置账户的过期日期。这个日期之后,账户将被系统视为无效,用户将无法使用该账户登录系统。
显示指定用户密码状态信息
passwd -S username
命令用于显示指定用户账户的密码状态信息。这个命令会输出用户的密码状态,包括密码是否已设置、密码的最后修改时间、密码到期时间等。
输出的信息通常包括以下几个部分:
- PS:表示密码已设置。
- NP:表示密码未设置。
- LK:表示账户被锁定。
- EXP:表示账户已过期。
- P:表示密码到期前的警告天数。
- W:表示密码过期后的宽限天数。
- S:表示账户失效日期。
- D:表示账户密码被禁用。
4.2 文件系统权限
Linux系统中一切都是文件
Linux 文件系统的权限主要分为三类:读权限(read)、写权限(write)和执行权限(execute)。
这些权限可以分别分配给文件或目录的所有者(user)、用户组(group)和其他用户(others)。
权限表示方式
Linux 文件系统的权限通常用字符和数字两种方式表示:
- 字符表示法:
• r:读权限,允许读取文件内容或列出目录内容。
• w:写权限,允许修改文件内容或删除、重命名目录中的文件。
• x:执行权限,允许运行可执行文件或进入目录。 - 数字表示法:
• 权限可以用八进制数字表示,每个权限对应一个数值:
• r = 4
• w = 2
• x = 1
• 权限的组合值是各个权限值的总和。例如,读写权限(rw)对应的数值是 4+2 = 6。
权限的查看和修改 - 查看权限:
• 使用 ls -l 命令可以查看文件和目录的权限信息。输出结果中,第一列显示权
限信息,格式如下:
• [文件类型] [所有者权限] [用户组权限] [其他用户权限]
查看权限
ls -la /etc/passwd
显示 /etc/passwd 文件的详细信息,包括文件的权限、所有者、用户组、文件大小、最后修
改时间等
更改文件所有者
chown root filename
- chown: 这是 Linux 系统中的一个命令,用于更改文件的所有者和用户组
- root: 这是指定的新所有者,即 root 用户
- file:: 这是要更改所有者的文件名
修改文件权限
sudo chmod u=rwx,g+rw,o-r file
- u=rwx:u 代表文件的所有者(user)。rwx 分别表示读(read)、写(write)、执行(execute)权限。这意味着将 文件所有者的权限设置为拥有对文件的读、写、执行全部权限。
- g+rw:g 代表文件所属的组(group)
- +rw:表示在组当前已有的权限基础上,增加读(read)和写(write)权限。也就是说,不管组之前对该文件有什么权限,现在要确保组拥有读和写的权限
- o-r:o 代表其他用户(others),即既不是文件所有者也不属于文件所属组的其他用户
- -r:表示移除其他用户的读权限。所以其他用户将不再拥有对该文件的读权限
chmod 400 filename
- 400: 八进制权限表示法,其中每一位分别表示所有者、所属组和其他用户的权限。4: 二进制为 100,表示所有者有读权限(r)
- 第二位的0: 二进制为 000,表示所属组没有任何权限
- 第三位的0: 二进制为 000,表示其他用户没有任何权限
5.系统日志
5.1 系统日志相关命令
命令: ls -l /var/log
• ls: 列出目录内容。
• -l: 以长格式显示文件和目录的详细信息,包括权限、链接数、所有者、组、
文件大小、修改时间等
5.2 认证信息相关命令
tail -3 /var/log/auth.log
- tail:这是一个用于显示文件末尾内容的命令。
- -3:这个选项指定显示文件的最后三行。
- /var/log/auth.log :这是要查看的日志文件的路径。
在渗透测试的后续阶段,需要对我们渗透的痕迹进行抹除清理,这个时候就需要对日志进行
一些操作
5.3 二进制相关文件命令
who /var/log/wtmp | tail -5
- who /var/log/wtmp:读取 /var/log/wtmp 文件并显示历史登录记录。
- tail -5:显示输出的最后 5 行。
注意事项
• /var/log/wtmp 文件通常是二进制文件,who 命令能够正确解析它。
• 如果 /var/log/wtmp 文件不存在或为空,输出将为空。
• 该命令需要足够的权限来读取 /var/log/wtmp 文件。
5.4 dmesg查看和控制内核环缓冲
dmesg 是一个在 Linux 系统中用于查看内核环形缓冲区(kernel ring buffer)消息 的命令。
信息包括设备的初始化情况、硬件检测结果、驱动程序加载信息、系统错误和警告等诸多重要内容帮助用户了解系统硬件状态和内核的运行情况
查看系统内核日志
dmesg
执行上述命令后,将显示最新的内核日志信息。日志可能包含各种关于系统硬件、设备驱动
程序和内核模块的消息
过滤特定关键字
dmesg | grep "perf"
使用 grep 命令结合 dmesg 命令,可以过滤出包含特定关键字的日志信息。例如,过滤出包含 “error” 关键字的日志:
5.5 systemd 日志相关命令
journalctl基本用法:
查看所有日志:journalctl
默认情况下,将显示自带系统安装以来收集的所有日志
查看内核日志:journalctl -k
查看指定时间的日志:journalctl --since "2024-11-06 00:00:00" --until "2024-11-06 15:00:00"
查看指定进程的日志:journalctl_PID=1234
查看指定服务的日志:journalctl -u nginx.service
实时跟踪最新的日志(类似于tail -num):journalctl -f
显示指定数量的最新日志:journalctl -n 20
调整显示输出:jourlnalctl -o json-pretty
6.内存管理
查看内存使用量
free -m
磁盘使用量
df -hT
df
:是 “disk free” 的缩写,这个命令本身用于报告文件系统的磁盘空间使用情况,包括已用空间、可用空间、磁盘容量等信息。-h
:这是一个选项(option),“h” 代表 “human-readable”,即让输出的结果以人类易读的格式显示。例如,它会将磁盘空间大小以合适的单位(如 KB、MB、GB、TB 等)显示出来,而不是以原始的字节数显示,这样更便于直观理解磁盘空间的使用状况。-T
:同样是一个选项,用于在输出结果中显示文件系统的类型。不同的文件系统类型(如 ext4、NTFS、FAT32 等,在 Linux 环境下常见的是 ext4 等本地文件系统类型)具有不同的特性,通过显示文件系统类型可以更全面地了解磁盘分区的相关信息。
查看文件或目录大小
du -h
- du(disk usage)命令用于估算文件和目录的磁盘使用空间。默认情况下,它会以磁盘块(通常是 1KB,但可能因系统而异)为单位显示每个文件或目录所占用的空间大小,并递归地遍历目录结构,将子目录的空间占用情况一并累加显示。
- -h(human-readable)选项的作用是让输出的磁盘空间大小以一种更易于人类阅读的格式呈现。具体来说,它会根据文件或目录实际占用的空间大小自动选择合适的单位进行显示,比如:
- 当占用空间小于 1KB 时,可能显示为字节数(如 512B)。
- 当占用空间在 1KB 到 1024KB(即 1MB)之间时,会以 KB 为单位显示(如 256KB)。
- 当占用空间在 1MB 到 1024MB(即 1GB)之间时,会以 MB 为单位显示(如 12.5MB)。
- 当占用空间大于 1GB 时,会以 GB 为单位显示(如 2.3GB)。
查看磁盘分区
fdisk -l
- 开头部分描述了整个磁盘设备的基本情况。例如,在上述示例中 /dev/sda 是磁盘设备名,“1000.2 GB” 是磁盘的容量大小,后面还给出了磁盘的一些物理参数如磁头数、扇区数、柱面数等,以及扇区和 I/O 操作的相关单位及大小信息。
- 以每一行对应一个分区来展示详细内容。
- Device:表示分区的设备文件名,如 /dev/sda1、/dev/sda2 等,通过这些文件名可以在后续操作中对特定分区进行处理。
- Boot:如果该分区是可引导分区(即系统可以从这个分区启动),这里会有一个 * 标识,如 /dev/sda1 这里有 *,说明它是可引导分区。
- Start 和 End:分别表示分区在磁盘上的起始和结束扇区位置。通过这两个值可以确定分区在整个磁盘上所占的扇区范围。
- Blocks:指的是该分区所包含的磁盘块数量,每个磁盘块的大小通常是由前面提到的 Units 所定义的,这里一般是 512 字节(也可能因系统设置不同而有变化),通过 Blocks 的值可以大致了解分区的容量大小(因为容量 = 磁盘块数量 × 每个磁盘块大小)。
- Id:是分区的标识符代码,不同的代码对应不同的分区类型。例如,83 通常表示是一个普通的 Linux 主分区或扩展分区中的逻辑分区,8e 一般表示是 Linux 的 LVM(逻辑卷管理)分区等。通过这个代码可以快速识别分区的类型。
- System:简单描述了分区对应的系统类型,比如 “Linux” 等,这是对分区类型的一个较为直观的说明。
挂载分区mount命令概述
- 挂载是指将一个存储设备(如硬盘、U 盘、光盘等)或存储设备中的分区,通过操作系统的操作,使其在文件系统层次结构中成为一个可访问的目录,以便用户和程序能够对其进行读写等操作。简单来说,就是让操作系统能够识别并使用这些存储资源。
- 例如,当你将 U 盘插入电脑后,操作系统会自动检测到 U 盘,并将其挂载到一个特定的目录(在 Linux 系统中可能是 /media/your_username/usb_device_name 之类的目录,在 Windows 系统中会分配一个盘符,如 E:、F: 等),之后你就可以通过访问该目录或盘符来查看和操作 U 盘中的文件了。
mount [-t vfstype] [-o options] device dir
• -t vfstype: 指定文件系统类型。
• -o options: 指定挂载选项。
• device: 要挂载的设备或文件。
• dir: 挂载点,即设备或文件系统要挂载到的目录。
常用选项
• -a: 挂载 /etc/fstab 中定义的所有文件系统。
• -t type: 指定文件系统类型,如 ext4, xfs, nfs 等。
• -o: 指定挂载选项,如 ro (只读), rw (读写), loop (将文件作为循环设备挂载) 等。
• -L label: 挂载具有特定标签的文件系统。
• -U UUID: 挂载具有特定 UUID 的文件系统。
7.基本网络枚举
7.1 基本网络工具
ifconfig 命令在 Linux 和 Unix 系统中用于查看和配置网络接口。它能够显示网络接口的详
细信息,包括 IP 地址、MAC 地址、子网掩码、广播地址等。此外,ifconfig 还可以用来启
用或禁用特定的网络接口,以及配置网络参数。
主要功能和用途
- 查看网络接口信息
ifconfig
运行上述命令将显示当前系统中所有的网络接口信息,包括 IP 地址、MAC 地址、子网掩
码、广播地址等 1。 - 配置网络接口
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
这个命令将 eth0 网络接口配置为 IP 地址 192.168.0.1,子网掩码 255.255.255.0,并启用该
接口 2。
3. 启用或禁用网络接口
ifconfig eth0 up
ifconfig eth0 down
这些命令分别用于启用和禁用 eth0 网络接口 2。
4. 设置网卡的硬件地址(MAC 地址)
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
这个命令将 eth0 网络接口的 MAC 地址更改为指定的地址 2。
输出结果解释
ifconfig 命令的输出结果通常包含以下信息:
• 网络接口名称:如 eth0 表示第一块以太网卡。
• IP 地址:inet 后面的数字表示该网卡的 IP 地址。
• 子网掩码:netmask 后面的值表示该网卡的子网掩码。
• 广播地址:broadcast 后面的值表示广播地址。
• 接收和发送的数据包数量:RX packets 和 TX packets 分别表示接收到的数据包数量
和发送的数据包数量。
• 错误数量:RX errors 和 TX errors 分别表示接收和发送过程中发生的错误数量 3。
注意事项
• 使用 ifconfig 命令配置的网络接口信息在网卡重启或机器重启后会失效。如果需要
永久保存配置信息,需要修改网络接口的配置文件。
• ifconfig 命令只能由 root 用户或具有适当权限的用户执行。
• 在某些现代 Linux 发行版中,ifconfig 命令可能已经被 ip 命令所取代,但仍然广泛
使用。
ip addr
ip addr 命令是 Linux 系统中用于查看和管理网络接口 IP 地址的命令。它是 ip 命令集的一
部分,属于 iproute2 套件,用于替代传统的 ifconfig 命令。ip addr 提供了更强大和灵活的功
能,适用于现代 Linux 系统中的网络配置和管理。
主要功能和用途
- 查看网络接口的 IP 地址
ip addr show
这个命令将显示系统中所有网络接口的 IP 地址信息,包括 IP 地址、子网掩码、广播地址
等。
2. 查看特定网络接口的 IP 地址
ip addr show eth0
这个命令仅显示 eth0 网络接口的 IP 地址信息。
3. 添加 IP 地址
sudo ip addr add 192.168.0.1/24 dev eth0
这个命令将在 eth0 网络接口上添加 IP 地址 192.168.0.1,子网掩码 255.255.255.0。
4. 删除 IP 地址
sudo ip addr del 192.168.0.1/24 dev eth0
这个命令将从 eth0 网络接口上删除 IP 地址 192.168.0.1,子网掩码 255.255.255.0。
5. 显示网络接口的详细信息
ip addr show eth0
这个命令将显示 eth0 网络接口的详细 IP 地址信息,包括 IP 地址、子网掩码、广播地址等。
输出结果解释
ip addr 命令的输出结果通常包含以下信息:
• 网络接口名称:如 eth0 表示第一块以太网卡。
• IP 地址:inet 后面的数字表示该网卡的 IP 地址。
• 子网掩码:/24 表示子网掩码为 255.255.255.0。
• 广播地址:brd 后面的值表示广播地址。
• 状态信息:如 UP 表示接口已启用,LOWER_UP 表示接口已连接。
注意事项
• 使用 ip addr 命令配置的网络接口信息在网卡重启或机器重启后会失效。如果需要
永久保存配置信息,需要修改网络接口的配置文件。
• ip addr 命令只能由 root 用户或具有适当权限的用户执行。
• 在某些情况下,ip addr 命令可能需要配合 ip link 命令一起使用,以实现更复杂的网
络配置。
ifdown eth0
ifup eth0
sudo ifdom eth0 ifdom 用于关闭指定的网络接口 eth0 是网络接口的名称,这里表示关闭
eth0 的网络接口 sudo ifup eth0 ifup 用于开启指定的网络接口 这里表示开启 eth0 的网络
接口
出现问题
ifdown: unknown interface eth0
• 在较新的 Linux 发行版(如 Ubuntu 16.04 及以后),网络接口名称通常
不再是 eth0,而是类似于 enp0s3 或 ens33 这样的名称。这种更改是因为新
的命名规则(即“预测一致的网络设备名称”)。
• 您可以使用以下命令查看当前系统中的网络接口名称:
ip a
7.2 网络配置
/etc/network/interfaces
用于描述主机中所有的网络接口的信息,不论Linux 主机中作为 DHCP 客户端还是配置使用静态 IP 地址,都需要对该文件进行修改在修改完 /etc/network/interfaces 文件后,需要重启网络服务以使配置生效
Networking Manager
这是一个动态网络控制和配置的守护进程 它可以自动管理网络连接,包括有线连接、无线网络和 VPN 连接等 Networkmanager 提供了图形界面和命令行工具来配置和管理网络,使得网络配 置更加方便。还可以自动检测网络变化,并根据配置自动进行网络连接
7.3 网络链接状态查看
netstap -natup
- -n:显示数字形式的地址和端口号,而不是尝试解析主机名和服务名称。
- -a:显示所有连接及其状态,包括监听和非监听的套接字。
- -t:显示 TCP 连接。
- -u:显示 UDP 连接。
- -p:显示与每个连接关联的程序的 PID(进程 ID)和名称。
ss -netup
ss 是一个用于查看网络套接字(socket)信息的工具,它可以替代传统的 netstat 命令,并且在某些情况下性能更好。取特定类型的网络状态信息。-natup 是它的一组选项,用于获两个命令的作用大致相同,只是一个是旧版的一个是新版的。ss 比上面的更高速更稳定
7.4 OSI二层地址查看工具
arp -en
用于查看系统的 ARP(Address Resolution Protocol,地址解析协议)缓存表信息。ARP 协议的作用是将网络层(IP 层)的 IP 地址解析为数据链路层的 MAC 地址,以便在局域网内实现数据帧的准确发送。
- -a:这个参数表示要显示所有的 ARP 缓存条目,包括动态学习到的和静态配置的条目。
- -n:以数字形式显示 IP 地址和 MAC 地址等信息,而不是尝试进行主机名的反向解析。也就是说,它会直接显示 IP 地址的数字形式和对应的 MAC 地址等,不会去尝试根据 IP 地址去查找对应的主机名并显示主机名,这样可以加快显示速度并且在某些网络环境下更加准确地呈现信息,因为主机名解析可能会因为 DNS 等问题出现不准确或耗时较长的情况。
- Address:表示IP 地址。
- HWtype:表示硬件类型,通常为ether,表示以太网
- HWaddress:表示 MAC 地址。
- Flags:表示标志位,C表示这个条目是有效的。
- Mask:表示子网掩码。
- lface:表示网络接口名称,例如 eth0。
7.5 路由信息及工具
route
参数解释
- -V,-verbose:提供详细信息。
- -n,-numeric:不解析名字,显示数字形式的地址。
- -e,-extend:显示额外的信息。
- -F,-fib:显示转发信息库(默认)。
- -C,-cache:显示路由缓存而不是转发信息库。
地址族选项
<\AF>:指定地址族,默认是inet(DARPA Internet)。其他可能的地址族包括inet6(IPv6)、ax25(AMPR AX.25)、netrom(AMPR NET/ROM)、rose(AMPR ROSE)、ipx(Novell IPX)、ddp(Appletalk DDP)、x25(CCITT X.25)。
修改路由表
add:添加路由。
del:删除路由。
flush:清空路由表。
ip route
命令格式
ip route show table all :显示路由表
ip route get 192.168.1.1 :获取特定目标的路由信息
ip route add default via 192.168.1.1 dev eth0 :添加路由
ip route del default via 192.168.1.1 dev eth0 :删除路由
ip route flush cache :清空路由缓存
8.ssh服务
systemctl start ssh
整体命令的目的就是指示系统启动 SSH 服务。如果 SSH 服务之前处于停止状态,执行该命令后,系统会尝试加载并启动 SSH 相关的进程,使得服务器能够接受来自客户端的 SSH 连接请求,从而允许用户通过 SSH 协议远程登录到该服务器或在服务器与客户端之间进行安全的文件传输等操作。
ssh root@IP
root
:这是要登录到远程服务器所使用的用户名。在类 Unix 系统(如 Linux、Unix 等)中,root
是具有最高权限的超级用户,可以执行系统管理任务,如安装软件、配置系统服务、修改系统文件等。以root
身份登录意味着在远程服务器上拥有对整个系统进行完全控制的权限,所以需要谨慎使用,避免因误操作而导致系统故障等问题。@
:这是一个分隔符,用于将用户名和服务器的 IP 地址分隔开来,明确表示要以指定的用户名登录到后面跟着的 IP 地址对应的服务器上。IP
:这里代表远程服务器的互联网协议(Internet Protocol)地址,它是用于在互联网上唯一标识一台设备(在此处就是要连接的服务器)的地址。通过这个 IP 地址,本地的 SSH 客户端能够找到并建立与远程服务器的网络连接。
ssh 远程拷贝
格式:
从本地拷贝到远程
scp [本地文件路径] [远程用户名@远程主机IP或域名:远程文件路径]
从远程拷贝到本地
scp [远程用户名@远程主机IP或域名:远程文件路径] [本地文件路径]
9.history
查看历史使用过的命令