计算机网络的主要优点是能够实现资源和信息的共享,并且用户可以远程访问信息。Linux提供了一组强有力的网络命令来为用户服务,这些工具能够帮助用户登录到远程计算机上、传输文件和执行远程命令等。 本章介绍下列几个常用的有关网络操作的命令:
ftp 传输文件
telnet 登录到远程计算机上
r - 使用各种远程命令
netstat 查看网络的状况
nslookup 查询域名和IP地址的对应
finger 查询某个使用者的信息
ping 查询某个机器是否在工作
使用ftp命令进行远程文件传输
ftp命令是标准的文件传输协议的用户接口。ftp是在TCP/IP网络上的计算机之间传输文件的简单有效的方法。它允许用户传输ASCII文件和二进制文件。 在ftp会话过程中,用户可以通过使用ftp客户程序连接到另一台计算机上。从此,用户可以在目录中上下移动、列出目录内容、把文件从远程机拷贝到本地机上、把文件从本地机传输到远程系统中。
需要注意的是,如果用户没有那个文件的存取权限,就不能从远程系统中获得文件或向远程系统传输文件。 为了使用ftp来传输文件,用户必须知道远程计算机上的合法用户名和口令。这个用户名/口令的组合用来确认ftp 会话,并用来确定用户对要传输的文件可以进行什么样的访问。另外,用户显然需要知道对其进行ftp 会话的计算机的名字或IP地址。
Ftp命令的功能是在本地机和远程机之间传送文件。该命令的一般格式如下:
$ ftp 主机名/IP
其中“主机名/IP”是所要连接的远程机的主机名或IP地址。在命令行中,主机名属于选项,如果指定主机名,ftp将试图与远程机的ftp服务程序进行连接;如果没有指定主机名,ftp将给出提示符,等待用户输入命令: $ ftp ftp > 此时在ftp>提示符后面输入open命令加主机名或IP地址,将试图连接指定的主机。 不管使用哪一种方法,如果连接成功,需要在远程机上登录。用户如果在远程机上有帐号,就可以通过ftp使用这一帐号并需要提供口令。
在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和将上载文件放到哪个目录中。 如果没有远程机的专用登录帐号,许多ftp站点设有可以使用的特殊帐号。这个帐号的登录名为anonymous(也称为匿名ftp),当使用这一帐号时,要求输入email地址作为口令。 如果远程系统提供匿名ftp服务,用户使用这项服务可以登录到特殊的,供公开使用的目录。
一般专门提供两个目录:pub目录和incoming目录。pub目录包含该站点供公众使用的所有文件,incoming目录存放上载到该站点的文件。 一旦用户使用ftp在远程站点上登录成功,将得到“ftp>”提示符。现在可以自由使用ftp提供的命令,可以用 help命令取得可供使用的命令清单,也可以在 help命令后面指定具体的命令名称,获得这条命令的说明。
最常用的命令有:
ls 列出远程机的当前目录
cd 在远程机上改变工作目录
lcd 在本地机上改变工作目录
ascii 设置文件传输方式为ASCII模式
binary 设置文件传输方式为二进制模式
close终止当前的ftp会话
hash 每次传输完数据缓冲区中的数据后就显示一个#号
get(mget) 从远程机传送指定文件到本地机
put(mput) 从本地机传送指定文件到远程机
open 连接远程ftp站点
quit断开与远程机的连接并退出ftp
? 显示本地帮助信息
! 转到Shell中
下面简单将ftp常用命令作一简介。
启动ftp会话 open命令用于打开一个与远程主机的会话。该命令的一般格式是: open 主机名/IP 如果在ftp 会话期间要与一个以上的站点连接,通常只用不带参数的ftp命令。如果在会话期间只想与一台计算机连接,那么在命令行上指定远程主机名或IP地址作为ftp命令的参数。 终止ftp会话 close、disconnect、quit和bye命令用于终止与远程机的会话。close和disronnect命令关闭与远程机的连接,但是使用户留在本地计算机的ftp程序中。quit和bye命令都关闭用户与远程机的连接,然后退出用户机上的ftp 程序。 改变目录 “cd [目录]”命令用于在ftp会话期间改变远程机上的目录,lcd命令改变本地目录,使用户能指定查找或放置本地文件的位置。 远程目录列表 ls命令列出远程目录的内容,就像使用一个交互shell中的ls命令一样。ls命令的一般格式是: ls [目录] [本地文件] 如果指定了目录作为参数,那么ls就列出该目录的内容。如果给出一个本地文件的名字,那么这个目录列表被放入本地机上您指定的这个文件中。 从远程系统获取文件 get和mget命令用于从远程机上获取文件。get命令的一般格式为: get 文件名 您还可以给出本地文件名,这个文件名是这个要获取的文件在您的本地机上创建时的文件名。如果您不给出一个本地文件名,那么就使用远程文件原来的名字。 mget命令一次获取多个远程文件。mget命令的一般格式为: mget 文件名列表 使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。 向远程系统发送文件 put和mput命令用于向远程机发送文件。Put命令的一般格式为: put 文件名 mput命令一次发送多个本地文件,mput命令的一般格式为: mput 文件名列表 使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。对其中的每个文件都要求用户确认是否发送。 改变文件传输模式 默认情况下,ftp按ASCII模式传输文件,用户也可以指定其他模式。ascii和brinary命令的功能是设置传输的模式。用ASCII模式传输文件对纯文本是非常好的,但为避免对二进制文件的破坏,用户可以以二进制模式传输文件。 检查传输状态 传输大型文件时,可能会发现让ftp提供关于传输情况的反馈信息是非常有用的。hash命令使ftp在每次传输完数据缓冲区中的数据后,就在屏幕上打印一个#字符。本命令在发送和接收文件时都可以使用。 ftp中的本地命令 当您使用ftp时,字符“!”用于向本地机上的命令shell传送一个命令。如果用户处在ftp会话中,需要shell做某些事,就很有用。例如用户要建立一个目录来保存接收到的文件。如果输入!mkdir new_dir,那么Linux就在用户当前的本地目录中创建一个名为new_dir 的目录。
从远程机grunthos下载二进制数据文件的典型对话过程如下:
$ ftp grunthos Connected to grunthos 220 grunthos ftp server Name (grunthos:pc): anonymous 33l Guest login ok, send your complete e-mail address as password. Password: 230 Guest 1ogin ok, access restrictions apply. Remote system type is UNIX. ftp > cd pub 250 CWD command successful. ftp > ls 200 PORT command successful. l50 opening ASCII mode data connection for /bin/1s. total ll4 rog1 rog2 226 Transfer comp1ete . ftp > binary 200 type set to I. ftp > hash Hash mark printing on (1024 bytes/hash mark). ftp > get rog1 200 PORT command successfu1. 150 opening BINARY mode data connection for rogl (l4684 bytes). # # # # # # # # # # # # # 226 Transfer complete. 14684 bytes received in 0.0473 secs (3e + 02 Kbytes/sec) ftp > quit 22l Goodbye.
使用telnet命令访问远程计算机
用户使用telnet命令进行远程登录。该命令允许用户使用telnet协议在远程计算机之间进行通信,用户可以通过网络在远程计算机上登录,就像登录到本地机上执行命令一样。 为了通过telnet登录到远程计算机上,必须知道远程机上的合法用户名和口令。虽然有些系统确实为远程用户提供登录功能,但出于对安全的考虑,要限制来宾的操作权限,因此,这种情况下能使用的功能是很少的。当允许远程用户登录时,系统通常把这些用户放在一个受限制的shell中,以防系统被怀有恶意的或不小心的用户破坏。 用户还可以使用telnet从远程站点登录到自己的计算机上,检查电子邮件、编辑文件和运行程序,就像在本地登录一样。
但是,用户只能使用基于终端的环境而不是X Wndows环境,telnet只为普通终端提供终端仿真,而不支持 X Wndow等图形环境。 telnet命令的一般形式为: telnet 主机名/IP 其中“主机名/IP”是要连接的远程机的主机名或IP地址。如果这一命令执行成功,将从远程机上得到login:提示符。 使用telnet命令登录的过程如下: $ telnet 主机名/IP 启动telnet会话。 一旦telnet成功地连接到远程系统上,就显示登录信息并提示用户输人用户名和口令。如果用户名和口令输入正确,就能成功登录并在远程系统上工作。 在telnet提示符后面可以输入很多命令,用来控制telnet会话过程,在telnet联机帮助手册中对这些命令有详细的说明。
下面是一台Linux计算机上的telnet会话举例:
$ telnet server. somewhere. com Trying 127.0.0.1… Connected to serve. somewhere. com. Escape character is \'?]\'. “TurboLinux release 4. 0 (Colgate) kernel 2.0.18 on an I486 login: bubba password: Last login:Mon Nov l5 20:50:43 for localhost Linux 2. 0.6. (Posix). server: ~$ server: ~$ logout Connection closed by foreign host $
用户结束了远程会话后,一定要确保使用logout命令退出远程系统。然后telnet报告远程会话被关闭,并返回到用户的本地机的Shell提示符下。 r-系列命令 除ftp和telnet以外,还可以使用r-系列命令访问远程计算机和在网络上交换文件。 使用r-系列命令需要特别注意,因为如果用户不小心,就会造成严重的安全漏洞。用户发出一个r-系列命令后,远程系统检查名为/etc/hosts.equiv的文件,以查看用户的主机是否列在这个文件中。如果它没有找到用户的主机,就检查远程机上同名用户的主目录中名为.rhosts的文件,看是否包括该用户的主机。如果该用户的主机包括在这两个文件中的任何一个之中,该用户执行r-系列命令就不用提供口令。
虽然用户每次访问远程机时不用键入口令可能是非常方便的,但是它也可能会带来严重的安全问题。我们建议用户在建立/etc/hosts.equiv和.rhosts文件之前,仔细考虑r-命令隐含的安全问题。
rlogin命令
rlogin 是“remote login”(远程登录)的缩写。该命令与telnet命令很相似,允许用户启动远程系统上的交互命令会话。rlogin 的一般格式是:
rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host
一般最常用的格式是: rlogin host 该命令中各选项的含义为:
-8 此选项始终允许8位输入数据通道。该选项允许发送格式化的ANSI字符和其他的特殊代码。如果不用这个选项,除非远端的终止和启动字符不是或,否则就去掉奇偶校验位。
-E 停止把任何字符当作转义字符。当和-8选项一起使用时,它提供一个完全的透明连接。
-K 关闭所有的Kerberos确认。只有与使用Kerberos 确认协议的主机连接时才使用这个选项。
-L 允许rlogin会话在litout模式中运行。要了解更多信息,请查阅tty联机帮助。
-d 打开与远程主机进行通信的TCP sockets的socket调试。要了解更多信息,请查阅setsockopt的联机帮助。
-e 为rlogin会话设置转义字符,默认的转义字符是“~”,用户可以指定一个文字字符或一个\\nnn形式的八进制数。
-k 请求rlogin获得在指定区域内的远程主机的Kerberos许可,而不是获得由krb_realmofhost(3)确定的远程主机区域内的远程主机的Kerberos 许可。
-x 为所有通过rlogin会话传送的数据打开DES加密。这会影响响应时间和CPU利用率,但是可以提高安全性。
rsh命令
rsh是“remote shell”(远程 shell)的缩写。 该命令在指定的远程主机上启动一个shell并执行用户在rsh命令行中指定的命令。如果用户没有给出要执行的命令,rsh就用rlogin命令使用户登录到远程机上。
rsh命令的一般格式是:
rsh [-Kdnx] [-k realm] [-l username] host [command]
一般常用的格式是:
rsh host [command ]
command可以是从shell提示符下键人的任何Linux命令。
rsh命令中各选项的含义如下:
-K 关闭所有的Kerbero确认。该选项只在与使用Kerbero确认的主机连接时才使用。
-d 打开与远程主机进行通信的TCP sockets的socket调试。要了解更多的信息,请查阅setsockopt的联机帮助。
-k 请求rsh获得在指定区域内的远程主机的Kerberos许可,而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。
-l 缺省情况下,远程用户名与本地用户名相同。本选项允许指定远程用户名,如果指定了远程用户名,则使用Kerberos 确认,与在rlogin命令中一样。
-n 重定向来自特殊设备/dev/null的输入。
-x 为传送的所有数据打开DES加密。这会影响响应时间和CPU利用率,但是可以提高安全性。 Linux把标准输入放入rsh命令中,并把它拷贝到要远程执行的命令的标准输入中。它把远程命令的标准输出拷贝到rsh的标准输出中。它还把远程标准错误拷贝到本地标准错误文件中。任何退出、中止和中断信号都被送到远程命令中。当远程命令终止了,rsh也就终止了。
rcp命令
rcp代表“remote file copy”(远程文件拷贝)。该命令用于在计算机之间拷贝文件。
rcp命令有两种格式。第一种格式用于文件到文件的拷贝;第二种格式用于把文件或目录拷贝到另一个目录中。
rcp命令的一般格式是:
rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file
directory 每个文件或目录参数既可以是远程文件名也可以是本地文件名。远程文件名具有如下形式:rname@rhost:path,其中rname是远程用户名,rhost是远程计算机名,path是这个文件的路径。
rcp命令的各选项含义如下:
-r 递归地把源目录中的所有内容拷贝到目的目录中。要使用这个选项,目的必须是一个目录。
-p 试图保留源文件的修改时间和模式,忽略umask。
-k 请求rcp获得在指定区域内的远程主机的Kerberos 许可,而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。
-x 为传送的所有数据打开DES加密。这会影响响应时间和CPU利用率,但是可以提高安全性。 如果在文件名中指定的路径不是完整的路径名,那么这个路径被解释为相对远程机上同名用户的主目录。如果没有给出远程用户名,就使用当前用户名。如果远程机上的路径包含特殊shell字符,需要用反斜线(\\)、双引号(”)或单引号(’)括起来,使所有的shell元字符都能被远程地解释。 需要说明的是,rcp不提示输入口令,它通过rsh命令来执行拷贝。 - Turbolinux 提供稿件
以下罗列一些非常有用的网络命令(不止11个)
连通性
• ping <host>:发送 ICMP echo 消息(一个包)到主机。这可能会不停地发送直到你按下 Control-C,Ping 的通意味着一个包从你的机器通过 ICMP 发送出去,并在 IP 层回显。Ping 告诉你另一个主机是否在运行。
• telnet [port]:与主机在指定的端口通信。默认的 telnet 端口是 23。按 Control-] 以退出 telnet。其它一些常用的端口是:
7 —— echo 端口
25 —— SMTP,用于发送邮件
79 —— Finger (LCTT 译注:维基百科 - Finger protocal,不过举例 Finger 恐怕不合时宜,倒不如试试 80?),提供该网络下其它用户的信息。
ARP
ARP 用于将 IP 地址转换为以太网地址。root 用户可以添加和删除 ARP 记录。当 ARP
记录被污染或者错误时,删除它们会有用。root 显式添加的 ARP 记录是永久的 —— 代理设置的也是。ARP
表保存在内核中,动态地被操作。ARP 记录会被缓存,通常在 20 分钟后失效并被删除。
• arp -a:打印 ARP 表。
• arp -s [pub]:添加一条记录到表中。
• arp -a -d:删除 ARP 表中的所有记录。
路由
• netstat -r:打印路由表。路由表保存在内核中,用于 IP 层把包路由到非本地网络。
• route add:route: 用于向路由表添加静态(手动指定而非动态)路由路径。所有从该 PC 到那个 IP/子网的流量都会经由指定的网关 IP。它也可以用来设置一个默认路由。
例如,在 IP/子网处使用 0.0.0.0,就可以发送所有包到特定的网关。
• routed:控制动态路由的 BSD 守护程序。开机时启动。它运行 RIP 路由协议。只有 root 用户可用。没有 root 权限你不能运行它。
• gated:gated 是另一个使用 RIP 协议的路由守护进程。它同时支持 OSPF、EGP 和 RIP 协议。只有 root 用户可用。
• traceroute:用于跟踪 IP 包的路由。它每次发送包时都把跳数加 1,从而使得从源地址到目的地之间的所有网关都会返回消息。
• netstat -rnf inet:显示 IPv4 的路由表。
• sysctl net.inet.ip.forwarding=1:启用包转发(把主机变为路由器)。
• route add|delete [-net|-host] :(如 route add 192.168.20.0/24 192.168.30.4)添加一条路由。
• route flush:删除所有路由。
• route add -net 0.0.0.0 192.168.10.2:添加一条默认路由。
• routed -Pripv2 -Pno_rdisc -d [-s|-q]:运行 routed 守护进程,使用 RIPv2 协议,不启用 ICMP 自动发现,在前台运行,供给模式或安静模式。
• route add 224.0.0.0/4 127.0.0.1:为本地地址定义多播路由。(LCTT 译注:原文存疑)
• rtquery -n (LCTT 译注:增加了 host 参数):查询指定主机上的 RIP 守护进程(手动更新路由表)。
其它
• nslookup:向 DNS 服务器查询,将 IP 转为名称,或反之。例如,nslookup facebook.com 会给出 facebook.com 的 IP。
• ftp [port](LCTT 译注:原文中 water 应是笔误):传输文件到指定主机。通常可以使用 登录名 "anonymous" , 密码 "guest" 来登录。
• rlogin -l (LCTT 译注:添加了 host 参数):使用类似 telnet 的虚拟终端登录到主机。
重要文件
• /etc/hosts:域名到 IP 地址的映射。
• /etc/networks:网络名称到 IP 地址的映射。
• /etc/protocols:协议名称到协议编号的映射。
• /etc/services:TCP/UDP 服务名称到端口号的映射。
工具和网络性能分析
• ifconfig [up]:启动接口。
• ifconfig [down|delete]:停止接口。
• ethereal & ;:在后台打开 ethereal 而非前台。
• tcpdump -i -vvv :抓取和分析包的工具。
• netstat -w [seconds] -I [interface]:显示网络设置和统计信息。
• udpmt -p [port] -s [bytes] target_host :发送 UDP 流量。
• udptarget -p [port]:接收 UDP 流量。
• tcpmt -p [port] -s [bytes] target_host :发送 TCP 流量。
• tcptarget -p [port]:接收 TCP 流量。
交换机
• ifconfig sl0 srcIP dstIP ifconfig sl0 srcIP dstIP:配置一个串行接口(在此前先执行 slattach -l /dev/ttyd0,此后执行 sysctl net.inet.ip.forwarding=1)
• telnet 192.168.0.254:从子网中的一台主机访问交换机。
• sh ru 或 show running-configuration :查看当前配置。
• configure terminal :进入配置模式。
• exit :退出当前模式。(LCTT 译注:原文存疑)
VLAN
• vlan n :创建一个 ID 为 n 的 VLAN。
• no vlan N :删除 ID 为 n 的 VLAN。
• untagged Y :添加端口 Y 到 VLAN n。
• ifconfig vlan0 create :创建 vlan0 接口。
• ifconfig vlan0 vlan_ID vlandev em0:把 em0 加入到 vlan0 接口(LCTT 译注:原文存疑),并设置标记为 ID。
• ifconfig vlan0 [up]:启用虚拟接口。
• tagged Y :为当前 VLAN 的端口 Y 添加标记帧支持。
UDP/TCP
• A socklab udp :使用 UDP 协议运行 socklab。
• sock :创建一个 UDP 套接字,等效于输入 sock udp 和 bind 。
• sendto :发送数据包。
• recvfrom :从套接字接收数据。
• socklab tcp :使用 TCP 协议运行 socklab。
• passive passive:创建一个被动模式的套接字,等效于 socklab ,sock tcp ,bind ,listen 。
• accept :接受进来的连接(可以在发起进来的连接之前或之后执行)。
• connect :等效于 socklab ,sock tcp ,bind ,connect 。
• close :关闭连接。
• read :从套接字中读取 n 字节。
• write :(例如write ciao、write #10)向套接字写入 "ciao" 或 10 个字节。
NAT/防火墙
• rm /etc/resolv.conf :禁止地址解析,保证你的过滤和防火墙规则正确工作。
• ipnat -f file_name :将过滤规则写入文件。
• ipnat -l :显示活动的规则列表。
• ipnat -C -F :重新初始化规则表。
• map em0 192.168.1.0/24 -> 195.221.227.57/32 em0:将 IP 地址映射到接口。
• map em0 192.168.1.0/24 -> 195.221.227.57/32 portmap tcp/udp 20000:50000:带端口号的映射。
• ipf -f file_name :将过滤规则写入文件。
• ipf -F -a :重置规则表。
• ipfstat -I :当与 -s 选项合用时列出活动的状态条目
内容来源:http;//www.linuxprobe.com/linux-network-command.html
设置:
1 飞行模式:
睡觉手机不要关机,调飞行模式即可,关机开机耗电不底,飞行模式待机10小时一般掉电2%-4%。
2 WI-FI:
不用的时候一定要关闭,因为它会自动不间断搜索附近热点。
3 通知:
只开、电话、短信、日历、提醒事项、QQ、微信、微博、QQ空间、墨迹天气、随手记专业版、Game Center。
根据需要来,不需要的一定都关闭!
4 定位:
只开、Siri、WeFinder(防盗软件)、大众点评、地图、微信(摇摇用-)。
拉到最下面看到系统服务:蜂窝网络搜索、交通状况、指南针校准,只开这三个、其他关闭。
5 运营商:
选择手动:多等待一会,之后选择你自己的运营商点返回即可。
6 声音:
锁定声和按键音都关闭。
7 亮度:
中间偏右一些,自动亮度调节一定打开!绝对比关闭省电!而且多眼睛好。
8 壁纸:
尽可能找偏暗一些的壁纸(这个方案有待何时但是在WP7手机效果非常明显背景纯黑比纯白省电百分之30)。
通用:
1 用量:
这块可以把电量百分比打开,电量清晰可见。
2 Siri:
不用时请关闭。
3 网络:
蜂窝数据不用请关闭,如果是3G卡待机也比较费电,不上网可以关闭3G待机。
4 蓝牙:
果断关闭。
5 Spotlighr 搜索:
如果你用不上请取消全部对号。
6 自动锁屏:
设置5分钟,大家根据自己情况而定。
7 密码锁定:
要配合防盗软件。
8 访问限制:
启用! 在里面取消不常用的ITunes这个连同Ping一起关闭掉,下面还有个应用程序内购买,可以关闭防止,老出购买窗口。
9 日期与时间:
自动设置关闭,手动设置时区和日期时间。
iCloud:不用请关闭。
信息:里面请把收发彩信关闭掉,用时再开(很多说这个开着很费电)。
音乐:把均衡器关闭了。
照片:里面的照片流一定记得关闭。
Store:使用蜂窝数据 一定关闭。