The Linux Command Line——17. 网络系统

 

检查和监测网络

最基本的网络命令是 ping。这个 ping 命令发送一个特殊的网络数据包,叫做 ICMP ECHO_REQUEST,到一台指定的主机。大多数接收这个包的网络设备将会回复它,来允许网络连接验证

The Linux Command Line——17. 网络系统

 

这个 traceroute 程序(一些系统使用相似的 tracepath 程序来代替)会显示从本地到指定主机要经过的所有“跳数”的网络流量列表。例如,看一下到达 slashdot.org 需要经过的路由,我们将这样做:

The Linux Command Line——17. 网络系统

 

The Linux Command Line——17. 网络系统

 

从输出结果中,我们可以看到连接测试系统到 slashdot.org 网站需要经由 16 个路由器。对于那些提供标识信息的路由器,我们能看到它们的主机名,IP 地址和性能数据,这些数据包括三次从本地到此路由器的往返时间样本。对于那些没有提供标识信息的路由器(由于路由器配置,网络拥塞,防火墙等方面的原因),我们会看到几个星号,正如行中所示。

netstat 程序被用来检查各种各样的网络设置统计数据。通过此命令的许多选项,我们可以看 看网络设置中的各种特性。使用“-ie”选项,我们能够查看系统中的网络接口

The Linux Command Line——17. 网络系统

 

在上述实例中,我们看到我们的测试系统有两个网络接口。第一个,叫做 eth0,是以太网接口,和第二个,叫做 lo,是内部回环网络接口,它是一个虚拟接口,系统用它来“自言自语”。

当执行日常网络诊断时,要查看的重要信息是每个网络接口第四行开头出现的单词“UP”,说明这个网络接口已经生效,还要查看第二行中 inet addr 字段出现的有效 IP 地址

使用这个“-r”选项会显示内核的网络路由表。这展示了系统是如何配置网络之间发送数据包的。

The Linux Command Line——17. 网络系统

 

网络中传输文件

我们将展示一个典型的会话,从匿名 FTP 服务器,其名字是 fileserver,的/pub/_images/Ubuntu-8.04 的目录下,使用 ftp 程序下载一个 Ubuntu 系统映像文件。

The Linux Command Line——17. 网络系统

 

The Linux Command Line——17. 网络系统

 

The Linux Command Line——17. 网络系统

 

The Linux Command Line——17. 网络系统

 

另一个流行的用来下载文件的命令行程序是 wget。若想从网络FTP 网站两者上都能下载数据,wget 是很有用处的。不只能下载单个文件,多个文件,甚至整个网站都能下载。下载linuxcommand.org 网站的首页,我们可以这样做:

The Linux Command Line——17. 网络系统

 

与远程主机安全通信

用来与远端 SSH 服务器相连接的 SSH 客户端程序,顺理成章,叫做 ssh。想要连接到名叫remote-sys 的远端主机,我们可以这样使用 ssh 客户端程序:

The Linux Command Line——17. 网络系统

 

第一次尝试连接,提示信息表明远端主机的真实性不能确立。这是因为客户端程序以前从没有看到过这个远端主机。为了接受远端主机的身份验证凭据,输入“yes”。一旦建立了连接,会提示用户输入他或她的密码:

The Linux Command Line——17. 网络系统

 

成功地输入密码之后,我们会接收到远端系统的 shell 提示符:

The Linux Command Line——17. 网络系统

 

远端 shell 会话一直存在,直到用户输入 exit 命令后,则关闭了远程连接。这时候,本地的shell 会话恢复,本地 shell 提示符重新出现。

用户 me 能够用 bob 帐号登录到远端系统

The Linux Command Line——17. 网络系统

 

如果远端主机不能成功地通过验证,并提示一下信息

The Linux Command Line——17. 网络系统

 

使用文本编辑器(可能是 vim)从文件 ∼/.ssh/known_hosts 中删除废弃的钥匙,就解决了问题。

在上面的例子里,我们看到这样一句话:

The Linux Command Line——17. 网络系统

 

这意味着 known_hosts 文件的第一行包含那个冲突的钥匙。从文件中删除这一行,则 ssh程序就能够从远端系统接受新的身份验证凭据。

ssh 程序也允许我们在远端系统中执行单个命令。例如,在名为 remote-sys 的远端主机上,执行 free 命令,并把输出结果显示到本地系统 shell 会话中。

The Linux Command Line——17. 网络系统

 

我们在远端系统中执行 ls 命令,并把命令输出重定向到本地系统中的一个文件里面。

The Linux Command Line——17. 网络系统

 

这样做是因为我们不想路径名展开操作在本地执行,而希望它在远端系统中被执行。同样地,如果我们想要把输出结果重定向到远端主机的文件中,我们可以把重定向操作符和文件名都放到单引号里面

The Linux Command Line——17. 网络系统

 

scp 和 sftp

如果我们想要从 remote-sys 远端系统的家目录下复制文档 document.txt,到我们本地系统的当前工作目录下,可以这样操作:

The Linux Command Line——17. 网络系统

和 ssh 命令一样,如果所需的远端主机帐户名与本地系统中的不一致,那么你可以把用户名添加到远端主机名的开头:

The Linux Command Line——17. 网络系统

 

sftp 有一个重要特性强于传统的 ftp 命令,就是 sftp 不需要远端系统中运行 FTP 服务端。它仅仅需要 SSH 服务端。这意味着任何一台能用 SSH 客户端连接的远端机器,也可当作类似于 FTP 的服务器来使用。这里是一个样本会话:

The Linux Command Line——17. 网络系统

相关文章: