linux网络相关命令

linux网络相关命令分为:监测,传输,远端登录

命令包括:

  • ping - 监测网络连通性
  • traceroute - 打印数据包的路由信息
  • netstat - 多种用途
  • ftp - 文件传输
  • wget - 网络下载器
  • ssh - 远程登录

ping

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

[me@linuxbox ~]$ ping linuxcommand.org

traceroute

traceroute会显示从本地到指定主机 要经过的所有“跳数”的网络流量列表。

[me@linuxbox ~]$ traceroute slashdot.org

netstat

netstat 程序被用来检查各种各样的网络设置统计数据

使用“-ie”选项,大家能够查看系统中的网络接口:

[me@linuxbox ~]$ netstat -ie
eth0    Link encap:Ethernet HWaddr 00:1d:09:9b:99:67
        inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
        inet6 addr: fe80::21d:9ff:fe9b:9967/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
        RX packets:238488 errors:0 dropped:0 overruns:0 frame:0
        TX packets:403217 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:100 RX bytes:153098921 (146.0 MB) TX
        bytes:261035246 (248.9 MB) Memory:fdfc0000-fdfe0000

lo      Link encap:Local Loopback
        inet addr:127.0.0.1 Mask:255.0.0.0
...

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

当实行日常网络诊断时,要查看的重要信息是每个网络接口第四行开头出现的单词 “UP”,说明这个网络接口已经生效,还要查看第二行中 inet addr 字段出现的有效 IP 地址。对于使用 DHCP(动态主机配置协议)的系统,在 这个字段中的一个有效 IP 地址则证明了 DHCP 工作正常。

使用这个“-r”选项会显示内核的网络路由表。

这展示了系统是如何配置网络之间发送数据包的。

[me@linuxbox ~]$ netstat -r
Kernel IP routing table
Destination     Gateway     Genmask         Flags    MSS  Window  irtt Iface

192.168.1.0     *           255.255.255.0   U        0    0          0 eth0
default         192.168.1.1 0.0.0.0         UG       0    0          0 eth0

在这个简单的例子里面,大家看到了,位于防火墙之内的局域网中,一台客户端计算机的典型路由表。 第一行显示了目的地 192.168.1.0。IP 地址以零结尾是指网络,而不是个人主机, 所以这个目的地意味着局域网中的任何一台主机。下一个字段,Gateway, 是网关(路由器)的名字或 IP 地址,用它来连接当前的主机和目的地的网络。 若这个字段显示一个星号,则表明不需要网关。

最后一行包含目的地 default。指的是发往任何表上没有列出的目的地网络的流量。 在大家的实例中,大家看到网关被定义为地址 192.168.1.1 的路由器,它应该能 知道怎样来处理目的地流量。

ftp

ftp程序可用来与FTP服务器进行通信,FTP服务器就是存储文件的计算机,这些文件能够通过网络下载和上传.
FTP(它的原始形式)并不是安全的,因为它会以明码形式发送帐号的姓名和密码.这就意味着这些数据没有加密,任何嗅探网络的人都能看到.由于此种原因,几乎因特网中所有FTP服务器都是匿名的.一个匿名服务器能允许任何人使用注册名“anonymous”和无意义的密码登录系统.

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

[me@linuxbox ~]$ ftp fileserver
Connected to fileserver.localdomain.
220 (vsFTPd 2.0.1)
Name (fileserver:me): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub/cd\_images/Ubuntu-8.04
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-rw-r-- 1 500 500 733079552 Apr 25 03:53 ubuntu-8.04- desktop-i386.iso
226 Directory send OK.
ftp> lcd Desktop
Local directory now /home/me/Desktop
ftp> get ubuntu-8.04-desktop-i386.iso
local: ubuntu-8.04-desktop-i386.iso remote: ubuntu-8.04-desktop-
i386.iso
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ubuntu-8.04-desktop-
i386.iso (733079552 bytes).
226 File send OK.
733079552 bytes received in 68.56 secs (10441.5 kB/s)
ftp> bye

这里是对会话期间所输入命令的说明说明:

ftp fileserver
唤醒ftp程序,让它连接到FTP服务器,fileserver。
anonymous
登录名。输入登录名后,将出现一个密码提示。一些服务器将会接受空密码,其它一些则会要求一个邮件地址形式的密码。如果是这种情况,试着输入 “user@example.com”。
cd pub/cd_images/Ubuntu-8.04
跳转到远端系统中,要下载文件所在的目录下,注意在大多数匿名的FTP服务器中,支撑公共下载的文件都能在目录pub下找到
ls
列出远端系统中的目录。
lcd Desktop
跳转到本地系统中的 ~/Desktop 目录下。在实例中,ftp 程序在工作目录 ~ 下被唤醒。 这个命令把工作目录改为 ~/Desktop
get ubuntu-8.04-desktop-i386.iso
告诉远端系统传送文件到本地。因为本地系统的工作目录已经更改到了 ~/Desktop,所以文件会被下载到此目录。
bye
退出远端服务器,结束ftp程序会话。也可以使用命令quit和exit。

在 “ftp>” 提示符下,输入 “help”,会显示所支撑命令的列表。使用 ftp 登录到一台授予了用户足够权限的服务器中,则可以实行很多普通的文件管理任务。虽然很笨拙, 但它真能工作。

lftp - 更好的 ftp

虽然lftp工作起来与传统的 ftp 程序很相似,但是它带有额外的便捷特性,包括多协议支撑(包括HTTP),若下载失败会自动地重新下载,后台处理,用tab按键来补全路径名,还有很多。

wget

若想从网络和FTP网站两者上都能下载数据,wget 是很有用处的。
下载 linuxcommand.org 网站的亚洲城ca88唯一官网, 大家可以这样做:

[me@linuxbox ~]$ wget http://linuxcommand.org/index.php
--11:02:51-- http://linuxcommand.org/index.php
        => `index.php'
Resolving linuxcommand.org... 66.35.250.210
Connecting to linuxcommand.org|66.35.250.210|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]

  [ <                        => ]        3,120       --.--K/s

11:02:51 (161.75 MB/s) - 'index.php' saved [3120]

这个程序的许多选项允许wget:递归地下载,在后台下载文件(你退出后仍在下载),能完成未下载全的文件。这些特性在命令手册,better-than-average 一节中有详尽地说明。

SSH

ssh解决了两个基本的和远端主机安全交流的问题。
首先,它要认证远端主机是否为它所知道的那台主机(这样就阻止了所谓的“中间人”的攻击)
其次,它加密了本地与远程主机之间所有的通讯信息。
SSH 由两部分组成。SSH服务器运行在远端主机上运行,在端口号22上监听将要到来的连接,而SSH客户端用在本地系统中,用来和远端服务器通信。
大多数Linux发行版自带一个提供SSH功能的App包,叫做OpenSSH.
用来与远端SSH服务器相连接的SSH客户端程序,顺理成章,叫做ssh。连接到远端名为remote-sys的主机,大家可以这样使用ssh客户端程序:

[me@linuxbox ~]$ ssh remote-sys
The authenticity of host 'remote-sys (192.168.1.4)' can't be
established.
RSA key fingerprint is
41:ed:7a:df:23:19:bf:3c:a5:17:bc:61:b3:7f:d9:bb.
Are you sure you want to continue connecting (yes/no)?

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

Warning: Permanently added 'remote-sys,192.168.1.4' (RSA) to the list of known hosts.
me@remote-sys's password:

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

Last login: Sat Aug 30 13:00:48 2008
[me@remote-sys ~]$

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

也有可能使用不同的用户名连接到远程系统。例如,如果本地用户“me”,在远端系统中有一个帐号名 “bob”,则用户me能够用 bob 帐号登录到远端系统,如下所示:

[me@linuxbox ~]$ ssh bob@remote-sys
bob@remote-sys's password:
Last login: Sat Aug 30 13:03:21 2008
[bob@remote-sys ~]$

SSH 通道

当你通过SSH协议与远端主机建立连接的时候,其中发生的事就是在本地与远端系统之间创建了一条加密通道。通常,这条通道被用来把在本地系统中输入的命令安全地传输到远端系统, 同样地,再把实行结果安全地发送回来。除了这个基本功能之外,SSH 协议允许大多数网络流量类型通过这条加密通道来被传送,在本地与远端系统之间创建某种 VPN(虚拟专用网络)。

scp 和 sftp

这个 OpenSSH App包也包含两个程序,它们可以利用 SSH 加密通道在网络间复制文件。
第一个,scp(安全复制)被用来复制文件,与熟悉的 cp 程序非常相似。最显著的区别就是 源或者目标路径名要以远端主机的名字,后跟一个冒号字符开头。
例如,如果大家想要 从远端系统,remote-sys,的家目录下复制文档 document.txt,到大家本地系统的当前工作目录下, 可以这样操作:

[me@linuxbox ~]$ scp remote-sys:document.txt .
me@remote-sys's password:
document.txt
100%        5581        5.5KB/s         00:00
[me@linuxbox ~]$

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

[me@linuxbox ~]$ scp bob@remote-sys:document.txt .

第二个SSH文件复制命令是sftp,正如其名字所示,它是ftp程序的安全替代品。sftp 工作起来与大家之前使用的ftp程序很相似;然而,它不用明码形式来传递数据,它使用加密的SSH通道。sftp有一个重要特性强于传统的ftp命令,就是sftp不需要远端系统中运行FTP服务器。它仅仅要求SSH服务器。 这意味着任何一台能用SSH客户端连接的远端机器,也可当作类似于FTP的服务器来使用。 这里是一个样本会话:

[me@linuxbox ~]$ sftp remote-sys
Connecting to remote-sys...
me@remote-sys's password:
sftp> ls
ubuntu-8.04-desktop-i386.iso
sftp> lcd Desktop
sftp> get ubuntu-8.04-desktop-i386.iso
Fetching /home/me/ubuntu-8.04-desktop-i386.iso to ubuntu-8.04-
desktop-i386.iso
/home/me/ubuntu-8.04-desktop-i386.iso 100% 699MB 7.4MB/s 01:35
sftp> bye

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 103,703评论 13赞 125
  • 部分内容转载自搜狗百科 cmd是command的缩写.即命令提示符(CMD),是在OS / 2 , Windows...
    青冥之上阅读 1,294评论 0赞 23
  • 本文最初发表于我的个人站点 1. netstat (show network status) 显示网络状态 使用:...
    foxchao阅读 744评论 0赞 2
  • win7 cmd管理员权限设置 net localgroup administrators 用户名 /add 把“...
    御坂网络阅读 2,503评论 0赞 11
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    O感悟人生O阅读 8,545评论 2赞 29