Linux--NiaoGe-Service-05
1.设置网络参数的命令
命令名称 | 作用 |
ifconfig | 查询、设置网卡与IP网络等相关参数 |
ifup、ifdown | 启动、关闭网络接口 |
route | 查看配置路由表(route table) |
ip | 整合式的命令,可以直接修改上述提到的功能 |
ifconfig、ifup、ifdown
[root@www ~]# ifconfig {interface} {up|down} //查看与启动接口
[root@www ~]# ifconfig interface {options} //设置与修改接口
常用选项及参数说明:
interface:网络接口名称,包括eth0,eth1,ppp0等。
options:可以使用的参数。包括:
up,down:启动、关闭该接口(不涉及任何参数)
mtu:可以设置不同的MTU数值。
netmask:子网掩码
broadcast:广播地址
[root@www ~]# ifconfig
eth0 Link encap:Ethernet HWaddr :0C::6B:6E:1B
inet addr:192.168.30.12 Bcast:192.168.30.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe6b:6e1b/ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (642.8 KiB) TX bytes: (167.7 KiB) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::/ Scope:Host
UP LOOPBACK RUNNING MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (304.0 b) TX bytes: (304.0 b)
各项数据解释:
eth0:网卡的名称代号,(lo也是);
HWaddr:网卡硬件地址,俗称MAC地址;
inet addr:IPv4的IP地址,后续的Bcast、Mask分别代表的是Broadcast与Netmask;
inet6 addr:IPv6的IP地址;
MTU:网络接口的最大传输单元;
RX:代表网络由启动到目前为止的数据包接收情况,packets代表数据包数量,errors代表数据包发生错误的数量,dropped代表数据包由于有问题而被丢弃的数量;
TX:与RX相反,为网络有启动到目前为止的数据包发送情况;
collisions:代表数据包冲突的情况,如果发生冲突太多次,表示主机当前网络状况不太好;
txqueuelen:代表用来传输数据的缓冲区的存储长度;
RX bytes、TX bytes:接收、发送的字节总量。
设置临时IP、更改MTU
[root@www ~]# ifconfig eth0 192.168.30.120 \
> netmask 255.255.255.0 mtu
[root@www ~]# ifconfig
eth0 Link encap:Ethernet HWaddr :0C::6B:6E:1B
inet addr:192.168.30.120 Bcast:192.168.30.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe6b:6e1b/ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (688.5 KiB) TX bytes: (205.8 KiB)
至于ifup、ifdown命令,直接
[root@www ~]# ifup eth0
[root@www ~]# ifdown eth0
即可。
修改路由route
[root@www ~]# route [-nee]
[root@www ~]# route add [-net | -host] [网络或主机] netmask [mask] [gw | dev]
[root@www ~]# route del [-net | -host] [网络或主机] netmask [mask] [gw | dev]
常用参数:
-n:不是用通信协议,直接使用IP地址或者端口号;
-ee:显示更详细的信息
增加(add)删除(del)路由的相关参数
-net:后接的路由为一个网络;
-host:后接的为链接到单台主机的路由;
netmask:与网络有关,可以设置netmask决定网络的大小
gw:gateway的简写,后接IP的数值,与dev不同
dev:如果只是要指定由哪一块网卡连接出去,则使用这个设置,后接eth0等。
[root@www ~]# route -n //单纯查看路由状态
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.30.0 0.0.0.0 255.255.255.0 U eth0
169.254.0.0 0.0.0.0 255.255.0.0 U eth0
0.0.0.0 192.168.30.2 0.0.0.0 UG eth0
[root@www ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.30.0 * 255.255.255.0 U eth0
link-local * 255.255.0.0 U eth0
default 192.168.30.2 0.0.0.0 UG eth0
各项数据说明:
Destrination,Genmask:这两个参数就分别是network与netmsk,他们两个组合成了一个完整的网络。
Gateway:该网络是铜驼哪个Gateway链接出去的?如果显示0.0.0.0表示该路由是直接由本机传送,也就是可以通过局域网的MAC直接发送;如果显示的是具体IP的话,表示该路由需要经过路由器(网关)的帮忙才能呢个发送出去。
Flags:总共有多个标志,代表含义如下:
U(route is up) :该路由是启动的。
H(target is a host):目标是一台主机(IP)而非网络。
G(use gateway):需要通过外部主机来传递数据包。
R(reinstate route for dynamic routing):使用动态路由时,恢复路由信息的标志。
D(dynamically installed by daemon or redirect):动态路由。
M(modified from routing daemon or redirect):路由已经被修改了。
!(rejecr route):这个路由将不会被接受(用来阻止不安全的网络)
Iface:这个路由传送的数据包的接口。
此外,在查看的路由信息中,看排序,是由C类地址到B类地址,最后则是默认路由(0.0.0.0/0.0.0.0)
路由的增加、删除
[root@www ~]# route del -net 192.168.130.12 netmask 255.255.255.0 dev eth0
注意:删除路由时,必须将路由表上出现的信息都写入,包括netmask、dev等
[root@www ~]# route add -net 192.168.20.120 netmask 255.255.255.0 dev eth0
注意:增加的路由必须要与主机的当前网络可一通信
[root@www ~]# route add default gw 192.168.30.250
注意:增加默认路由的方法,只要有一个默认路由的IP即可,同样要求增加的路由必须可以与主机当前的LAN可以通信。
所有操作完毕后,重启网络服务即可生效!
网络参数综合命令:ip
[root@www ~]# ip [option] [动作] [命令]
选项与参数:
option:设置的参数,主要有:
-s:显示出设备的统计数据(statistics),如接收的数据包总数等;
操作:即针对哪些网络参数进行操作,包括:
link : 与设备(device)相关的设置,包括MTU、MAC之地等;
addr/address:关于额外的IP协议,如多IP的实现等;
route:与路由有关的相关设置
关于接口设备(device)的相关设置:ip link
[root@www ~]# ip [-s] link show //单纯的查看该设备的县官信息
[root@www ~]# ip link set [device] [动作参数]
选项与参数:
show:进现实出这个设备的相关属性,如果加上-s会显示更多统计数据。
set:可以开始设置项目,device值得是eth0,eth1等设备名称。
动作参数:
up | down : 启动或关闭摸个解扩,其他参数使用默认的以太网
address::如果这个设备可以更改MAC的话,用这个参数修改
name:给予这个设备一个特殊的名字
mtu:最大传输单元
显示本机所有接口信息
[root@www ~]# ip link show
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/loopback ::::: brd :::::
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c::6b:6e:1b brd ff:ff:ff:ff:ff:ff
[root@www ~]# ip -s link show eth0
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c::6b:6e:1b brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast TX: bytes packets errors dropped carrier collsns
启动、关闭eth0
[root@www ~]# ip link set eth0 up/down
[root@www ~]# ip link set eth0 mtu //设置MTU
修改网卡信息
[root@www ~]# ip link set eth0 name xueji
RTNETLINK answers: Device or resource busy
#上述提示很明确,所以修改之前先关闭eth0,然后在修改
[root@www ~]# ip link set eth0 down
[root@www ~]# ip link set eth0 name xueji
[root@www ~]# ip link show
[root@www ~]# ip link set eth0 address aa:bb:cc:dd:ee:ff //修改的MAC地址信息
关于额外的IP的相关设定
[root@www ~]# ip address show
[root@www ~]# ip address [add | del] [IP参数] [dev 设备名称] [相关参数]
选项与参数:
show:仅显示解扩的IP信息
add | del :进行相关参数的增加(add)或删除(del)设置,主要有:
IP参数:主要就是网络的设置
dev:这个IP参数所要设置的接口,如eth0,eth1等
相关参数主要有下面这些:
broadcast:设置广播地址,如果设置值是+表示“让系统自动计算”
label:也就是这个设备的别名,如eth0,eth1等
scope:这个选项的参数通常是如下内容:
global:允许来自所有来源的连接
site:仅支持IPv6,仅允许本主机的连接
link:仅允许本设备自我连接
host:仅允许本主机内部的连接
所以当然使用global了,默认也是global
实例1 显示出所有接口IP参数:
[root@www ~]# ip address show
实例2 添加一个接口,名称设为eth0:xueji
[root@www ~]# ip address add 192.168.30.120/ broadcast + dev eth0 label eth0:xueji
[root@www ~]# ifconfig
eth0 Link encap:Ethernet HWaddr :0C::6B:6E:1B
inet addr:192.168.30.12 Bcast:192.168.30.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe6b:6e1b/ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (854.8 KiB) TX bytes: (353.6 KiB) eth0:xueji Link encap:Ethernet HWaddr :0C::6B:6E:1B
inet addr:192.168.30.120 Bcast:192.168.30.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU: Metric:
.........
实例3 删除刚刚添加的eth0:xueji接口
[root@www ~]# ip address del 192.168.30.120/ dev eth0
关于路由的设置
[root@www ~]# ip route show //单纯显示路由设置
192.168.30.0/ dev eth0 proto kernel scope link src 192.168.30.12
169.254.0.0/ dev eth0 scope link metric
default via 192.168.30.2 dev eth0
[root@www ~]# ip route [add | del] [IP 或网络号] [via gateway] [dev 设备]
选项参数:
show:单纯显示出路由表,也可以使用list
add | del :添加(add)或删除(del)路由
IP或网络:可使用192.168.30./24之类的网络号或者单纯的IP地址
via:从那个gateway出去,不一定需要
dev:由哪个设备连出去,必须
mtu:可以额外的设置MTU的数值
实例1 显示当前的路由信息
[root@www ~]# ip route show
192.168.30.0/ dev eth0 proto kernel scope link src 192.168.30.12
169.254.0.0/ dev eth0 scope link metric
default via 192.168.30.2 dev eth0
说明:
proto:此路由的路由协议,主要有Redirect、Kernel、Boot、Static、Ra等,其中Kernel值的是直接由内核判断自动设置
scope:路由的范围,主要是link,也就是与本设备有关的直接连接
接下来查看路由的添加与删除
实例2 添加路由主要是本机直接可沟通的网络
[root@www ~]# ip route add 192.168.130.0/ dev eth0
[root@www ~]# ip route show
192.168.130.0/ dev eth0 scope link
192.168.30.0/ dev eth0 proto kernel scope link src 192.168.30.12
169.254.0.0/ dev eth0 scope link metric
default via 192.168.30.2 dev eth0
实例3 添加可以通往外部的路由,需要通过router
[root@www ~]# ip route add 192.168.31.0/ via 192.168.30.12 dev eth0
[root@www ~]# ip route show
192.168.130.0/ dev eth0 scope link
192.168.31.0/ via 192.168.30.12 dev eth0
192.168.30.0/ dev eth0 proto kernel scope link src 192.168.30.12
169.254.0.0/ dev eth0 scope link metric
default via 192.168.30.2 dev eth0
实例4 添加默认的路由
[root@www ~]# ip route add default via 192.168.20.12 dev eth0
(这里是不通的,因为我系统环境限制,方法是正确的)
实例5 删除上述添加的路由
[root@www ~]# ip route del 192.168.31.0/
[root@www ~]# ip route del 192.168.130.0/
网络排错及相关命令
[root@www ~]# ping [选项参数] IP
选项与参数:
-c 数值:执行ping的次数
-n:在输出数据时不进行IP与主机名的反查,直接使用IP输出(速度较快)
-s 数值:发送出去的ICMP数据包大小,默认为56bytes,不可以放大此数值
-t 数值:TTL的数值,默认是255,没经过一个节点就会少1
-w 数值:等待响应对方主机的秒数
-M[do | dont]:主要在检测网络的MTU数值大小,两个常见的选项是:
do:代表传送一个DF(Don't Fragment)标志,让数据包不能呢个重新拆包与打包
dont:代表不要传送DF标志,表示数据包可以在其他主机上拆包与打包
实例1 检测DNS主机223.5.5.5是否存活
[root@www ~]# ping -c 223.5.5.5
PING 223.5.5.5 (223.5.5.5) () bytes of data.
bytes from 223.5.5.5: icmp_seq= ttl= time=11.6 ms
bytes from 223.5.5.5: icmp_seq= ttl= time=11.6 ms
bytes from 223.5.5.5: icmp_seq= ttl= time=11.1 ms
--- 223.5.5.5 ping statistics ---
packets transmitted, received, % packet loss, time 2015ms
rtt min/avg/max/mdev = 11.117/11.479/11.664/0.255 ms
上述数据含义说明:
64bytes:表示这次发送的ICMP数据包大小为64bytes,这是默认值,在某些特殊场合中,如要搜索整个网络内最大的MTU时,可以使用-s 2000之类的数值来取代。
icmp_seq=:ICMP检测的次数,第一次编号为1.
ttl=:TTL与IP数据包内的TTL是相同的,没经过一个带有MAC的节点(node)时,如router、bridge时,TTL就会减少1,默认的TTL为255,你可以通过一个-t 150之类的方法来重新设置TTL数值。
time=.6ms:响应时间,单位有ms(.001s)及us(.000001s),一般来说,越小的响应时间,表示两部主机之间的网络连接越良好。
例题 编写脚本实现检测整个网络的主机是否有响应,每台主机进等待1s,也仅检测一次
[root@www ~]# cd bin/
[root@www bin]# vim ping.sh
#!/bin/bash/
for siteip in $(seq )
do
site = "192.168.30.$(siteip)"
ping -c -W $(site) & > /dev/null
if [ "$?" == "" ];then
echo "$site is up"
else
echo "$site is down"
fi
done
注意:如果被检测主机与当前主机处于同一网络内,则TTL默认是用64,反之,TTL默认255.
找出最大MTU值
[root@www ~]# ping -c -s -M do 223.5.5.5
PING 223.5.5.5 (223.5.5.5) () bytes of data.
bytes from 223.5.5.5: icmp_seq= ttl= time=14.1 ms
bytes from 223.5.5.5: icmp_seq= ttl= time=13.3 ms --- 223.5.5.5 ping statistics ---
packets transmitted, received, % packet loss, time 1015ms
rtt min/avg/max/mdev = 13.341/13.736/14.131/0.395 ms
有响应,表示可以接受这个数据包,反之,则说明MTU太大了
[root@www ~]# ping -c -s -M do 192.168.30.12
ping: packet size too large:
通常情况下,不要随意调整MTU值,需要调整的一般是以下情况:
因为全部的主机都是在内部的局域网,如集群架构(cluster)的环境下,由于内部的网络节点都是我们可以控制的,因此可以通过修改MTU来提高网络效率
因为操作系统默认的MTU与网络不符,导致某些网站可以顺利连接,某些网站则无法连接,以windows操作系统作为连接共享的主机时,在Client端容易出现这个问题。
常见接口及对应的MTU值
网络接口 | MTU |
Ethernet | 1500 |
PPPOE | 1492 |
Dial-up(Modem) | 576 |
两主机间各节点分析:traceroute
[root@www ~]# traceroute [选项与参数] IP
选项与参数:
-n:可以不必进行主机的名称解析,单纯用IP,速度快
-U:使用UDP的port 33434来进行检测,这是默认的检测协议
-I:使用ICMP的方式来进行检测
-T:使用TCP来进行检测,一般使用port 80测试
-w:若对方主机在几秒钟内没有回应就说明不通,默认5秒
-p 端口号:若不想使用UDP与TCP的默认端口来检测,可在此改变端口号
-i 设备:用在比较复杂的环境,如果网络接口很多很复杂时,才会用到此参数。
如当前主机有两条ADSL可以连接到外部,那么当前主机有两个ppp,此时就可以使用-i来选择是ppp0还是ppp1
-g 路由:与-i的参数相仿,只是-g后面接的是gateway的IP
检测本机至baidu的连接状态
[root@www ~]# traceroute -n www.baidu.com
traceroute to www.baidu.com (115.239.210.27), hops max, byte packets
192.168.30.2 0.128 ms 0.390 ms 0.402 ms
* * *
* * *
* * *
* * *
* * *
星号可能是防火墙设备等的情况导致
使用TCP来检测,等待时间1s
[root@www ~]# traceroute -w -n -T www.baidu.com
traceroute to www.baidu.com (115.239.210.27), hops max, byte packets
192.168.30.2 0.128 ms 0.102 ms 0.342 ms
115.239.210.27 13.163 ms 11.596 ms 12.818 ms
查看本机的网络连接与后门:netstat
[root@www ~]# netstat -[rn] //与路由相关的参数
[root@www ~]# netstat -[antulpc] //与网络接口有关的参数
选项与参数:
与路由相关的参数说明:
-r:列出路由表(router table)功能等同route命令
-n:不是用主机名与服务名称,使用IP与port number如同route -n
与网络接口有关的参数:
-a:列出所有的连接状态,包括tcp/udp/unix socket等
-t:仅列出TCP数据包的连接
-u:仅列出UDP数据包的连接
-l:仅列出已在Listen(监听)的服务的网络状态
-p:列出PID与Program的文件名
-c:可以设置几秒钟后自动更新一次,如-c 为每5s更新一次网络状态的显示
实例1 列出当前的路由表状态,且以IP及port number进行显示
[root@www ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.30.0 0.0.0.0 255.255.255.0 U eth0
169.254.0.0 0.0.0.0 255.255.0.0 U eth0
0.0.0.0 192.168.30.2 0.0.0.0 UG eth0
其实效果跟route -n一样
实例2 列出当前的所有网络连接状态,使用IP与port number
[root@www ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 127.0.0.1: 0.0.0.0:* LISTEN
tcp 127.0.0.1: 0.0.0.0:*
.....省略.....
上述数据说明:
Proto:该连接的数据包协议,主要为TCP/IP等数据包
Recv-Q:由非用户程序连接所复制而来的总bytes数
Send-Q:由远程主机发送而来,但不具有ACK标志的总bytes数,亦指主动连接SYN或其他标志的数据包所占的bytes数。
Local Address:本地端的地址,可以是IP(-n选项存在时),也可以是完整的主机名。使用的格式就是”IP:port“,只是IP的格式有IPv4及IPv6的差异。如上述代码所示,在port 22的接口中,使用”::“就是针对IPv6的现实,事实上,它就相当于0.0.0.:.至于port25仅针对lo接口开放,意指Internet基本上无法连接到本机的25端口的。
Foreign Address:远程主机的IP及port number
stat:状态栏,主要有以下几种状态
ESTABLISED:已建立的连接状态
SYN_SENT:发出主动连接(SYN标志)的连接数据包
SYN_RECV:接收到一个要求连接的主动连接数据包
FIN_WAIT1:该套接字服务(socket)已中断,该连接正在断线中
FIN_WAIT2:该连接已挂断,但正在等待对方主机响应断线确认的数据包
TIME_WAIT:该连接已挂断,但socket还在网络上等待结束。
LISTEN:通常用在服务的监听port,可使用”-l“参数查阅
实例 3显示当前已经启动的网络服务
[root@www ~]# netstat -tlnup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 127.0.0.1: 0.0.0.0:* LISTEN /cupsd
tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
tcp 0.0.0.0: 0.0.0.0:* LISTEN /rpc.statd
tcp 0.0.0.0: 0.0.0.0:* LISTEN /smbd
............省略.........
实例4 查看本机上所有的网络连接状态
[root@www ~]# netstat -anltup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 127.0.0.1: 0.0.0.0:* LISTEN /cupsd
tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
tcp 0.0.0.0: 0.0.0.0:* LISTEN /rpc.statd
...........省略.............
如果想要终止一个服务,将其对应的PID找出来,kill掉即可。
在Linux系统中服务名称与端口对应的信息存放在/etc/services文件中。
检测主机名与IP的对应
host命令
[root@www ~]# host [-a] hostname [server]
选项与参数:
-a:列出该主机详细的各项主机名设置数据
[server] :可以使用由/etc/resollv.conf文件定义的DNS服务器IP来查询
实例1 列出baidu.com的IP
[root@www ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 115.239.211.112
www.a.shifen.com has address 115.239.210.27
可以看出解析出来的IP是115.239.211.112和115.239.210.27,拿其中一个IP来说,115.239.211.112是由/etc/recolv.conf文件解析出来的,如果不想使用这个文件来解析,可以使用
[root@www ~]# host www.baidu.com 223.5.5.5
Using domain server:
Name: 223.5.5.5
Address: 223.5.5.5#
Aliases: www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 180.97.33.107
www.a.shifen.com has address 180.97.33.108
另外一个命令nslookup
[root@www ~]# nslookup [-query=[type]] [hostname[IP]]
选项与参数:
-query=type:查询的类型,除了传统的IP与主机名对应外,DNS还有很多信息,所以我们可以查询很多的信息,包括mx、cname等
如-query=mx的查询方法
实例1 找出www.sina.com.cn的IP
[root@www ~]# nslookup www.sina.com.cn
Server: 192.168.30.2
Address: 192.168.30.2# Non-authoritative answer:
www.sina.com.cn canonical name = spool.grid.sinaedge.com.
Name: spool.grid.sinaedge.com
Address: 202.102.94.124
实例2 找出223.5.5.5的主机名
[root@www ~]# nslookup 223.5.5.5
Server: 192.168.30.2
Address: 192.168.30.2# Non-authoritative answer:
5.5.5.223.in-addr.arpa name = public1.alidns.com. Authoritative answers can be found from:
远程连接命令与即时通信软件
telnet命令
因为默认没有安装telnet,所以需要安装telnet
[root@www ~]# yum install -y telnet
实例1 检测本地主机的21这个port是否正确
[root@www ~]# telnet localhost
Trying ::...
telnet: connect to address ::: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
#出现这样的信息,代表这个port没有启动或者是这个连接有问题,因为被refused了
[root@www ~]# telnet localhost
Trying ::...
Connected to localhost.
Escape character is '^]'.
www.xueji.com ESMTP Postfix
ehlo localhost
-www.xueji.com
-PIPELINING
-SIZE
-VRFY
-ETRN
-ENHANCEDSTATUSCODES
-8BITMIME
DSN
quit
2.0. Bye
Connection closed by foreign host
ftp连接
[root@www ~]# ftp [host | IP] [port]
实例1 连接到昆山科大去看一下
首先要安装ftp
[root@www ~]# yum install -y ftp
[root@www ~]# ftp ftp.ksu.edu.tw
Connected to ftp.ksu.edu.tw (120.114.150.21).
Welcome to Kun Shan University FTP service.
Name (ftp.ksu.edu.tw:root): anonymous
Please specify the password.
Password: //直接回车
Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> help
Commands may be abbreviated. Commands are: ! debug mdir sendport site
$ dir mget put size
account disconnect mkdir pwd status
append exit mls quit struct
ascii form mode quote system
bell get modtime recv sunique
binary glob mput reget tenex
bye hash newer rstatus tick
case help nmap rhelp trace
cd idle nlist rename type
cdup image ntrans reset user
chmod lcd open restart umask
close ls prompt rmdir verbose
cr macdef passive runique ?
delete mdelete proxy send
ftp> dir //显示远程服务器目录内容
ftp> cd //切换到目录
ftp> get //下载单一文件get后面直接跟文件名
ftp> put //上传单个文件
ftp> mget //下载多个文件
ftp> delete //删除多个文件
ftp> mkdir //创建目录
ftp> lcd //切换到本地主机的/home/目录
ftp> passive //启动或关闭passive
ftp> binary //数据传输模式设置为binary
ftp> bye //结束ftp
ftp> quit
Goodbye.
自动化脚本(lftp)
[root@www ~]# ltfp [-p port] [-u user[,pass]] [host|IP]
[root@www ~]# ltfp -f filename
[root@www ~]# ltfp -c "commands"
选项参数:
-p:后面可以直接上远程FTP主机提供的port
-u:后面则是接上账号与密码,就能够连接上远程主机了,如果没有加账号密码,lftp默认会使用anonymous尝试匿名登录
-f: 可以将命令写入脚本中,可以帮助进行shellshell script自动处理
-c:后面直接加上所需要的命令
[root@www ~]# yum install -y lftp
[root@www ~]# lftp ftp.ksu.edu.tw
lftp ftp.ksu.edu.tw:~> bye //看这里直接就登录上去
自动处理脚本
[root@www ~]# cd bin/
[root@www bin]# vim lftp.sh
#!/bin/bash
open ftp.ksu.edu.tw
cd /pub/CentOS
mget -c -d RPM-GPG*
bye
图形接口的即时通信软件Pidgin(gaim的延伸)这里不再演示。
文字浏览器links
[root@www ~]# links [options] [URL]
选项与参数:
-anonymous [|]:是否使用匿名登录的意思
-dump [|]:是否将网页的数据直接输出到standard out 而非links软件功能
-dump_charset:后面接想要通过dump输出到屏幕的语系编码,简体中文使用cp936
实例1 [root@www ~]# links http://www.kernel.org
文字接口下载器wget
如果要连接的网站有账号和密码保护,可以利用--http-user=username和--http-password=password两个参数,--quiet:不显示wget在捕获数据时的显示信息
除此之外,还可以在/etc/wgetrc文件中添加proxy
数据抓包
文字接口数据包捕获器tcpdump
[root@www ~]# tcpdump [-Aennqx] [-i 接口] [-w 存储文件名] [-c 次数] [-r 文件] [所要摘取的数据包数据格式]
选项与参数:
-A:数据包的内容以ASCII显示,通常用来抓取WWW网页数据包数据
-e:使用数据链路层(OSI第二层)的MAC数据包数据来显示
-nn:直接以IP及port number显示,而非主机名与服务名称
-q:仅列出较为简短的数据包信息,每一行的内容比较精简
-x:可以列出十六进制(hex)以及ASCII的数据包内容,对于监听数据包内容很有用
-i:后面接要监听的网络接口,如eth0、lo、ppp0等的界面
-w:如果你要将监听所得的数据包数据存储下来,用这个参数就对了,后面接文件名
-c: 监听数据包数,如果没有这个参数,tcpdump会持续不断的监听,直到用户输入Ctrl+c为止
-r:从后面接的文件将数据包数据读出来,这个文件是已经存在的文件,并且这个文件是由-w所制作出来的
所获取的数据包格式:我们可以专门针对某些通信协议或者是IP来源进行数据包捕获
那就可以简化输出的结果,并取得最有用的信息,常见的表示方法有:
'host foo'、'host 127.0.0.1':针对单台主机来进行数据包捕获
'net 192.168':针对某个网络来进行数据包的捕获
'src host 127.0.0.1' 'dst net 192.168':同时加上来源(src)或目标(dst)限制
'tcp port 21':还可以针对通信协议检测,如tcp、udp、arp、ether等
实例1 以IP与port number获取eth0这个网卡上的数据包,持续3s
[root@www ~]# tcpdump -i eth0 -nn
::25.502894 IP 192.168.30.12. > 192.168.30.1.: Flags [P.], seq :, ack , win , length
::25.503018 IP 192.168.30.12. > 192.168.30.1.: Flags [P.], seq :, ack , win , length ....中间省略
packets captured //获取到的数据包数量
packets received by filter //由过滤所得的总数据包数量
packets dropped by kernel //被内核所丢弃的数据包
上述数据解释:
::25.502894:这是该数据包捕获的时间,“时:分:秒”
IP:通过的通信协议是IP
192.168.30.12. >传送端是192.168.30.12这个IP,而传送的port number为22,大于(>)的符号指的是数据包的传输方向
192.168.30.1.:接收端的IP是192.168.30.,且该主机开启port 1937来接收。
[P.],seq ::这个数据包带有PUSH的数据传输标志,且传输的数据为整个数据的2275120~2275392byte。
ack :ACK的相关资料
只取出port 21的连接数据包
[root@www ~]# tcpdump -i eth0 -nn port
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size bytes
打开两个终端窗口
在第一个窗口
[root@www ~]# tcpdump -i lo -nn
在第二个窗口
[root@www ~]# ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is ::4b:c7::d2:bd:9a:4c:e8::c0:3e:f3:ac:2b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
root@localhost's password:
Last login: Fri Sep :: from 192.168.30.1
再回到第一个窗口查看
[root@www ~]# tcpdump -i lo -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size bytes
::37.171713 IP6 ::1.43812 > ::1.22: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::37.171730 IP6 ::1.22 > ::1.43812: Flags [S.], seq , ack , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::37.171742 IP6 ::1.43812 > ::1.22: Flags [.], ack , win , options [nop,nop,TS val ecr ], length
::37.199189 IP6 ::1.22 > ::1.43812: Flags [P.], seq :, ack , win , options [nop,nop,TS val ecr ], length
::37.199214 IP6 ::1.43812 > ::1.22: Flags [.], ack , win , options [nop,nop,TS val ecr ], length 0
.....省略
如何使用tcpdump来监听来自eth0网卡且通信协议为port22,目标数据包来源为192.168.30.12的数据包?
[root@www ~]# tcpdump -i eth0 -nn 'port 22 and src host 192.168.30.9'
在另一个主机上(192.168.30.9)上执行ping 192.168.30.12
再去第一个窗口查看
[root@www ~]# tcpdump -i eth0 -nn 'port 22 and src host 192.168.30.9'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size bytes
::33.731358 IP 192.168.30.9. > 192.168.30.1.: Flags [P.], seq :, ack , win , length
::34.731344 IP 192.168.30.9. > 192.168.30.1.: Flags [P.], seq :, ack , win , length
::35.731101 IP 192.168.30.9. > 192.168.30.1.: Flags [P.], seq :, ack , win , length
::36.731267 IP 192.168.30.9. > 192.168.30.1.: Flags [P.], seq :, ack , win , length
::37.731392 IP 192.168.30.9. > 192.168.30.1.: Flags [P.], seq :, ack , win , length
::38.731473 IP 192.168.30.9. > 192.168.30.1.: Flags [P.], seq :, ack , win , length
::39.731602 IP 192.168.30.9. > 192.168.30.1.: Flags [P.], seq :, ack , win , length
图形接口数据包捕获利器:wireshark
[root@www ~]# yum install -y wireshark wireshark-gnome
任意启动TCP/UDP数据包的端口连接:nc、netcat
[root@www ~]# nc [-u] [IP|host] [port]
[root@www ~]# nc -l [IP|host] [port]
选项与参数
-l:作为监听之用,也就是打开一个port来监听用户的连接
-u:不使用TCP而使用UDP作为连接数据包状态
实例1 与telenet类似,连接本地端port 25查阅相关信息
[root@www ~]# yum install -y nc
[root@www ~]# nc localhost
www.xueji.com ESMTP Postfix
实例2 激活一个port 来监听用户的连接要求
[root@www ~]# nc -l localhost &
[]
[root@www ~]# netstat -lntup | grep nc
tcp ::: :::* LISTEN /nc
打开另一个窗口,执行
[root@www ~]# nc localhost //回车之后,输入字符串
haha
回到第一个窗口查看
[root@www ~]# haha
Linux--NiaoGe-Service-05的更多相关文章
- 在 CentOS7 上将自定义的 jar 包注册为 linux 服务 service
在 CentOS7 上将自定义的 jar 包注册为 linux 服务 service 1.在 /etc/rc.d/init.d/ 目录下创建一个名字和服务名完全相同的 shell 脚本文件 joyup ...
- 将Apache加入到linux系统service
将Apache加入到linux系统service 将apache加入到linux系统服务,用service命令来控制apache的启动和停止. 本文由乌合之众瞎写http://www.cnblogs. ...
- 时隔两年最近再次折腾opensuse 的一些笔记 - opensuse linux java service shell
时隔两年最近再次折腾opensuse 的一些笔记 - opensuse linux java service shell opensuse 一些常用命令: service xxx start/s ...
- Linux: service network/Network/NetworkManager
Linux:service network/Network/NetworkManager start 这三种有什么不同? 1.network service的制御网络接口配置信息改动后,网络服务必须从 ...
- Linux中service命令和/etc/init.d/的关系
Linux中service命令和/etc/init.d/的关系 service xxx启动 /etc/init.d/ 目录下的xxx脚本 如一个脚本名为 mysvc保存在/etc/init.d/下 ...
- Linux命令service - 系统服务管理(转)
用途说明 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启(restart).查看状态(status)等.相关的命令还包括chkconfig.ntsysv等,c ...
- Azure的CentOS上安装LIS (Linux Integration Service)
Azure上虚拟化技术都是采用的Hyper-v,每台Linux虚拟机都安装了LIS(Linux Integration Service).LIS的功能是为VM提供各种虚拟设备的驱动.所以LIS直接影响 ...
- Creating a Linux Daemon (service) in Delphi
With the introduction of the Linux target for Delphi, a wide range of possibilities are opened up to ...
- linux 添加 service 服务并自动添加 chkconfig 启动级别
下面以添加一个叫做watchcat的服务为例进行说明: 1.写一个提供给service命令使用的脚本 service 命令的使用方法一般如下 启动: $ service watchcat start ...
- linux centos service 参数详解
Service文件 开门见山,直接来看两个实际的服务配置文件吧. 第一个配置是 CoreOS 系统中 Docker 服务的 Unit 文件,路径是 /usr/lib/systemd/system/do ...
随机推荐
- java连接oracle的几种方式
jdbc连接(驱动包ojdbc6.jar)String driver = "oracle.jdbc.OracleDriver"; //驱动标识符 String url = &quo ...
- Opencv— — Circle Filter
// define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...
- MongoDB复制集成员及架构介绍(一)
MongoDB复制集介绍 MongoDB支持在多个机器中通过异步复制达到提供了冗余,增加了数据的可用性.MongoDB有两种类型的复制,第一种是同于MySQL的主从复制模式(MongoDB已不再推荐此 ...
- Vue 变化检测问题
受现代Javascript的限制,Vue不能检测到对象属性的添加和删除,因为Vue在初始化时将属性转为getter/setter,所以属性必须在data对象上才能让Vue转换它,Vue不允许在已经创建 ...
- GC及其作用
Java GC 是垃圾回收机制,自动内存管理和垃圾清扫机制,释放内存中的资源和垃圾
- CF-805D
D. Minimum number of steps time limit per test 1 second memory limit per test 256 megabytes input st ...
- 微信小程序开发之页面注册
页面Page是object Page({ data:{ String1 }, onLoad:function(options){ // 生命周期函数--监听页面加载 一个页面只会调用 ...
- ASP.NET Core会议管理平台实战_汇总贴
ASP.NET Core会议管理平台实战 课程地址:https://ke.qq.com/course/389673?from=800004097#term_id=100464670 ASP.NET C ...
- 图数据库初探之Neo4j
图数据库初试之Neo4j 自从进入了移动互联网时代,各种新事物出现的速度都好像坐上了宇宙飞船,几乎隔几天一个新概念.就拿数据库而言,什么Oracle.DB2.SQL Server.MySQL,这些你都 ...
- console.log是异步么?
让我们来看一个例子: var a = {}; console.log(a); a.foo = 'foo'; 4 console.log(a); 但是问题来了:在chorme跟firfox一样么? 结果 ...