《Linux Shell脚本攻略》学习笔记-第八章

8.1 简介

TCP/IP网络的运作过程就是在节点之间传递分组。每一个分组中都包含了目标的IP地址以及处理分组中数据的应用程序端口号。

当节点接收到分组时,它会查看自己是否就是改分组的目的地。如果是,节点会再检查端口号并调用相应的应用程序来处理分组数据。如果不是,节点则根据已知的网络配置,将分组发送到离最终目的地更近的下一个节点。

8.2 网络设置

限制它只显示某个特定接口的信息

如果想要从ifconfig输出中提取ip地址,可以使用

ifconfig的子命令可以定义设备类别以及MAC地址

将IP地址映射为符号名称的这种技术称为域名服务。当我们输入www.google.com,计算机使用DNS服务器将域名解析为对应的IP地址。

一个域名可以对应多个IP地址,对于这种情况,ping只会显示其中的一个地址。

如果一个网络中的设备想要同另一个网络中的设备通信,就需要借助某个同时连接了两个网络的设备分组。这个特殊的设备叫做网关,它的作用就是在不同的网络中转发分组。

操作系统维护着一个叫做路由表的表格,它包含了分组如何转发的信息。

-n选项可以指定数字形式显示地址,默认情况下route命令会将IP地址映射为名字。

如果系统不知道如何分组到目的地的路由,它会将其发送到默认网关。

route add命令可以添加默认网关。

8.3 ping

ping可以用于检验网络上主机之间的连通性,找出活动主机。

默认情况下,ping会发送连续分组,可以使用ctrl+c来停止ping命令。

网络管理员通常会对网络设备进行配置,使其不响应ping命令。

ping命令可以显示每个分组的往返时间RTT。

其中mdev代表的是平均偏差。

ping发出的每个分组都有一个序列号,从1开始,知道ping结束。

依据你使用的系统或ping命令版本的不同,生存时间TTL的初始值也不尽相同。你可以通过向环回接口发出ping命令来确定TTL的初始值。

使用TTL的初始值减去回应中的TTL值,就可以得到两个位置之间的跳数。(128-54)

8.4 跟踪IP路由

traceroute命令可以显示分组途径的所有网管的地址,帮助我们搞清楚分组到达目的地需要经过多少跳。

8.5 列出网络中所有的活动主机

8.6 使用SSH在远程主机上执行命令

SSH能够让你访问远程计算机上的shell,从而在其上执行交互命令并接收结果,或是启动交互会话。

连接运行了SSH服务器的远程主机

SSH服务器默认在端口22上运行,但是有些SSH服务器并没有使用这个端口。针对这个特殊情况,可以使用-p port_number来指定端口。

8.8 通过网络传输文件

计算机联网的主要目的之一就是资源共享,文件就是常见的共享资源。

启动SFTP会话:

可以使用-oPort=PORT_NUMBER来指定端口号。

scp的选项-r可以在两台网络主机之间以递归形式复制目录;scp的-p选项能够在复制文件的同时保留文件的权限和模式。

8.10 实现SSH的无密码自动登录

       SSH广泛用于脚本自动化。借助SSH,我们可以在远程主机上执行命令并读取输出。SSH使用用户名和密码进行认证。在SSH命令的执行过程中提示输入密码。但是在自动化脚本中,SSH命令可能在一个循环中执行上百次,每次都得提供密码的话,显然不实际。因此,我们需要将登入过程自动化。SSH就包含了一个内建的特性,可以用SSH密钥实现自动登陆。这则攻略描述了如何创建SSH密钥并协助实现自动登陆。

       SSH采用基于公钥和基于私钥的加密技术进行自动化认证。认证密钥包含两部分:一个公钥和一个私钥。我们可以通过“ssh-keygen”命令创建认证密钥。要想实现自动化认证,公钥必须放置在服务器中(将其加入文件~/.ssh/authorized_keys),与公钥对应的私钥应该放入你用来登录的客户机的~/.ssh目录中。另一些与SSH相关的配置信息(例如,authorized_keys文件的路径与名称)可以通过修改文件/etc/ssh/sshd_config进行配置。

       设置SSH自动化认证步骤:

                1. 创建SSH密钥,这需要登录到远程主机

                2. 将生成的密钥传输到远程主机,并将其加入文件~/.ssh/authorized_keys中

1、输入命令创建SSH密钥,并指定加密算法

ssh-keygen -t rsa

      这里使用ssh-keygen 命令,-t参数表示接下来跟的是加密类型(type),然后就是加密的算法,可以选择rsa1(老版的rsa),rsa(新版的rsa),dsa,ecdsa,ed25519 等。这里用作证书通常使用rsa算法。

       然后会要求你填输出的文件夹,一般默认就摆在/home/user/.ssh/下的id_rsa文件中吧。不过需要注意的是,如果曾经生成过密钥,现在重新生成一个的话,如果不改地址是会将原来的覆盖掉的,这样可能会惹一些麻烦的。。。

       接下来你可以另外设置一个密码,这个密码相当于一个独立的连接服务器的密码,而不是服务器用户的密码。你就是相当于用这个密码来替代服务器的用户密码(这个密码的长度要大于四)。当然如果怕麻烦可以直接回车回车,表示不用这个密码。

到这一步密码就生成完了,在~/.ssh/下就有了生成的文件了。其中id_rsa.pub是公钥,id_rsa是私钥。

2、上传公钥到远程服务器

      公钥必须添加到想要自动登录的远程服务器的/home/user/.ssh/authorized_key文件中。

scp id_rsa.pub user@remote_host:~/.ssh/authorized_keys

            本地服务器操作过程:

远程服务器检查:

8.13 分析网络流量和端口

8.15 创建套接字

netcat和nc命令都可以创建用于在TCP/IP网络上传输数据的套接字。我们需要两个套接字:一个负责侦听连接,一个负责发起连接。(注意关闭防火墙)

8.18 使用ipables架设简易防火墙

1)iptables -A INPUT -s IP地址 -p tcp 端口号 -j ACCEPT

2)iptables -A INPUT -s IP地址 -p tcp --dport 端口号 -j ACCEPT

3)iptables -A INPUT -p tcp --dport 端口号-j DROP

  • netstat也可以显示网络服务统计信息
  • lsof命令可以列出已打开的文件,选项-i将范围限制在已打开的网络连接
  • 无密码登录检验
  • 实现方法
  • 储备知识
  • SCP是一个安全的文件复制命令,文件传输均通过SSH加密通道进行传输。
  • SFTP是一个运行在SSH连接之上并模拟了FTP接口的文件传输系统,它不需要远端运行FTP服务器来进行文件传输,但是必须要有SSH服务器。
  • fping
  • 实际效果
  • shell脚本
  • 限制发送的分组数量
  • 生存时间
  • 序列号
  • 往返时间
  • 显示路由表信息
  • DNS查找
  • 名字服务器与DNS(域名服务)
  • 硬件地址欺骗
  • 显示IP地址
  • 打印网络接口列表
  • 很多网络使用动态主机配置协议(DHCP)自动为连接到网络上的计算机分配IP地址。dhclient命令可以用于完成这项任务,很多linux发行版在感知到有网络物理连接的时候会自动调用dhclient。
  • 补充内容
  • 设置网络接口的IP地址
  • ifconfig命令用于配置及显示网络接口、子网掩码等细节信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

今夕何夕sy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值