Linux网络管理(ifconfig,route,netstat,ip,ss,网卡配置文件,nmcli,nmtui,hostnamectl等命令)(第11天)
Linux网络属性管理
MAC:Media Access Control 介质访问控制
MAC地址:48位组成,前24位表示厂商,后24位厂商设定
局域网:以太网,令牌环网
局域网里的各个计算机之间的通信机制:
Ethernet: CSMA/CD 载波监听多路访问/碰撞检测机制。
局域网和局域网之间如何通信?就是两个网络之间通信?
可以通过网桥,网桥里有MAC表。一般网桥有多个接口,网桥的每个接口对应一个网络(局域网),网桥有MAC表,MAC表记录了每个接口对应的局域网络里的主机。MAC表通过某种学习机制建立起来。局域网的A主机 要跟局域网的B主机通信的时候,A并不知道B在本地网络里还是另外的局域网里,所以A主机还是要发送广播报文的。并且这个广播报文会被网桥的连接了A主机所在的网络的接口转发到网桥的所有其他接口上。这样一来,B主机才有可能收到A主机的这个广播报文。然后,B主机接收到这个广播报文,就发送报文回应。但是如果是局域网A主机和局域网C主机通信,网桥的连接A主机所在局域网的接口是不会把这个报文广播给其他的接口的,因为网桥的目的就是为了隔离一部分的冲突域。
交换机:交换机有多个接口,一个接口接入一台计算机,各台计算机之间的通信需要通过广播,通过广播才能建立MAC表。如果机器过多,可能造成广播风暴。所以为了隔离广播域,引入了路由器。交换机工作在数据链路层。
路由器:
路由器(英语:Router,又称路径器)是一种电讯网络设备,提供路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。路由工作在OSI模型的第三层——即网络层,例如网际协议(IP)。
局域网A里的1号机器和局域网B里的2号机器如何通信?
比如1号机器要发送数据到B.2来表示向局域网B里的2号机器,那么这里的B.2就可以理解为IP地址。所以,IP地址标识了网络段号和那个指定的机器。
局域网A里的1号机器如果发送了报文给局域网A的2号机器,那么必须知道这个A.2是否是本局域网的机器,还是其他网络里的机器?
通过子网掩码和IP地址做与运算可以算出ip地址的网络号。假如:A.1的IP地址192.168.1.188,A.2的IP地址为192.168.1.100。它们通信之前192.168.1.188 & 255.255.255.0等于192.168.1.0并且192.168.1.100 & 255.255.255.0等于192.168.1.0,所以他们是同一个网络的。就不需要把报文发送个路由器,而是直接基于MAC地址就可以在同网络里通信;如果计算出来的网络号不一样,就表示不在同一个网络号里,就必须求助路由器。
网关的意义,当局域网里的机器发送的报文的目的地址不是本地局域网的时候,这些数据包就发送给网关,也就是路由器,交由路由器处理该报文。
全世界各地有许许多多的局域网和广域网等等,这些网络里的主机要互相通信,就必须接入许多的路由器。所以,某两个主机之间的通信,可能要通过多个路由器转发,才能成功。如此一来,就有多条路由路径可以连通连个主机。至于选择哪条路径的代价小,就有了路由协议,路由算法等。
端口号:
两台主机之间可以通过ip地址相互连通,但是要真正通信,必须落实到两台主机的进程,就是A主机的某某进程和B主机的某某进程通信,而端口号就用来表示这两个进程。
套接字:一个主机可以有多个IP地址(可能是有多个网卡设备或者是一个网卡设备配置多个IP地址也是可以的),每一个IP地址都有自己的0-65535号的端口。所以,IP地址和端口号就表示一个套接字。
OSI七层模型如下:
应用层 应用层
表示层 表示层
会话层 会话层
传输层(端口) 传输层(端口)
网络层(ip地址) 网络层(ip地址)
链路层(MAC地址) 链路层(MAC地址)
物理层 物理层
左边是源地址处, 右边是目标地址处
左边每往下一层封包一次,通过路由之后右边收到报文,从最下层的物理层开始一直解包。
传输层协议:
TCP
UDP
SCTP
ICMP
网络层协议:
ip
IP报文详解:
IP version:表示IP的版本号,4或者6
Header Length:首部长度,包括Options的可选段(最长40字节),所以必须标记整个IP头部的长度。其中Header Length只有4bit,这个数字要乘以4,才是真实的长度。
Type of Service:表示服务的类型。
TOtal Length:报文的总长,包括IP头部加上数据。
Identification (Fragment ID):表示片ID,一个大报文在传输过程中可能因为传输过程中某些路由器支持的报文长度比较小,所以需要将报文分片,分成多个片。所以,需要在报文里标记每一个片的片ID。
Fragment Offset:表示片偏移。意思是说这个片在整个报文中的位置。
MF位:表示这个报文属于有分片的,必须整合其他的分片才能组合成完整报文。
DF位:表示这个报文未分片的。
Time To Live(TTL):报文在路由中跳转的次数。
Protocol:表示上层协议,封装在Data段中的上层的协议,一般有TCP,UDP,SAMP等。
Header CheckSum:头部校验和
Source IP Address:源IP地址
Destination IP Addres:目标IP地址
Options:可选头部,如果有,最大40字节。
TCP报文详解:
Source Port Number:源端口
Destination Port Number:目标端口
Sequence Number(SN): 序列号
Acknowledgement Number(AN):确认号
Header Length:TCP首部长度,也要乘以4才是真实的TCP首部长度
Reserved:保留位,6位
URG:紧急位,为1表示Urgetn Pointer有效,反之无效
ACK:确认位,为1表示Acknowledgement Number有效,反之无效
PSH:推送位,表示数据报文不放入内核缓冲区中,而是优先让网卡发送接收。
RST:重置位,
SYN:SYN位
FIN:FIN位
Windows Size:窗口大小,发送缓冲区大小和接收缓冲区大小的协商
TCP Checksum:
Urgetn Pointer:紧急指针
Options:可选段
Data:
TCP的3次握手和4次断开:
TCP的3次握手的过程:
TCP请求方发送报文,报文中的SYN位置为1,并且Sequence Number(SN)给一个随机数,假设SN=100。
TCP响应方发送响应报文,报文中的SYN位置为1,ACK位置为1,Acknowledgement Number(AN)=101,也就是请求方的SN+1,并且Sequence Number(SN)给一个随机数,假设SN=300。
TCP请求方接到确认报文后,再发送一个报文,报文中ACK位置为1,SN=101,AN=301 。
这3步骤之后,双方的连接就建立起来了,这种连接的状态称之为ESTABLISHED状态。
TCP的4次断开的过程:
IPv4地址分为5大类:
IP地址使用点分十进制表示:比如192.167.2.22,每个数字是由8位的二进制表示,所以每个数字的范围是0到255。
IP地址由网络号和主机号组成,其中如果主机位全0,表示网络地址,如果主机位全1,表示广播地址。
A类地址:如上,每个ip地址有4个十进制表示。第1个十进制数的二进制表示的第1位为0。所以第1个数字的表示范围是00000000到01111111也就是0到127,但是0通常没有用,所以该类ip地址的第一个十进制数的范围就是1到127。这第1个十进制数表示网络号,后面的3个十进制数表示主机号。127.0.0.1是特殊的表示本机地址。所以综上:该类地址的网络数只有1到126种变化,每个网络号可以容纳2的24次方个主机。该类地址的默认掩码是255.0.0.0。该类的私网地址为10.0.0.0/8(8表示8个二进制1)到10.255.255.255/8。
如果A类地址为A.B.C.D ,则A表示网络号,B,C,D表示主机号。
B类地址:第1个十进制数的二进制表示的前2位为10。所以第1个数字的表示范围是
10 000000到10 111111,也就是128到191。但是B类ip地址的前2个十进制数表示网络号,后2个十进制数表示主机号。该类地址的网络数有2的14次方个,每个网络号容纳的主机数有2的16次方个。默认子网掩码255.255.0.0。该类的私网地址为172.16.0.0/16到172.31.255.255/16
C类地址:第1个十进制数的二进制表示的前3为为110,所以第1个数字的表示范围是
110 00000到110 11111,也就是192到223。但是C类ip地址的前3个十进制数表示网络号,后1个十进制数表示主机号。该类地址的网络数有2的21次方个,每个网络号容纳的主机数有2的8次方个。默认子网掩码是255.255.255.0。该类的私网地址为192.168.0.0/24到192.168.255.255/24。
D类地址:第1个十进制数的二进制表示的前4位为1110,所以第1个数字的表示范围是
1110 0000到1110 1111,也就是224到239。该类地址用于做组播。
E类地址:第1个十进制数的范围为240到255
子网掩码:
172.16.1.100/16 表示172.16.1.100的子网掩码是255.255.0.0。
172.16.1.100与255.255.0.0进行与运算的结果是172.16.0.0,所以这个ip地址的网络号就是172.16,这是B类地址。
跨网络通信,必须用路由。
路由条目的类型有有主机路由,网络路由,默认路由。
主机路由:目标地址是一个主机
网络路由:目标地址是一个网络
默认路由:目标地址是0.0.0.0的,表示任意主机。
route -n 可以查看路由条目信息:如下
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.62.2 0.0.0.0 UG 100 0 0 eth0
192.168.62.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
将Linux主机接入到网络中:必须配置如下的信息
IP/mask
路由:默认网关
DNS服务器:主DNS服务器,次DNS服务器,第三DNS服务器
配置方式:
静态指定:
ifcfg家族的命令: ifconfig, route, netstat
ip家族的命令: object {link, addr, route}, ss, tc
配置文件 system-config-network-tui (setup)
CentOS 7: nmcli, nmtui
动态分配:
DHCP: Dynamic Host Configuration Protocol 动态主机配置协议。
配置网络接口:
接口命名方式:
CentOS 6:
以太网:eth[0,1,2,...]
ppp:ppp[0,1,2,...]
ifconfig命令详解
ifconfig [interface]
# ifconfig -a 显示所有的网络接口的信息
# ifconfig IFACE [up|down] 启用或关闭某个网络接口
# ifup
# ifdown
ifconfig interface [aftype] options | address ...
# ifconfig IFACE IP/mask [up|down] 例如 ifconfig eth0 192.168.62.110/24
# ifconfig IFACE IP netmask MASK 例如ifconfig eht0 192.168.62.110 netmask 255.255.255.0
添加:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
-net表示网络路由
-host表示主机路由
目标:192.168.1.3 网关:172.16.0.1 通过网关172.16.0.1到达目标192.168.1.3
~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
目标:192.168.0.0 网关:172.16.0.1
~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
默认路由,网关:172.16.0.1
~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
~]# route add default gw 172.16.0.1
删除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
目标:192.168.1.3 网关:172.16.0.1
~]# route del -host 192.168.1.3
目标:192.168.0.0 网关:172.16.0.1
~]# route del -net 192.168.0.0 netmask 255.255.255.0
DNS服务器指定:一般编辑配置文件/etc/resolv.conf,写入如下内容
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
FQDN是什么?
www.magedu.com.就表示一个FQDN
正解:FQDN-->IP
# dig -t A FQDN
# host -t A FQDN
反解:IP-->FQDN
# dig -x IP
# host -t PTR IP
netstat命令详解:
netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
显示网络连接:
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态(listening)
-a: 所有状态
-n: 以数字显示IP和端口;
-e:扩展格式
-p: 显示相关进程及PID
常用组合 -tan, -uan, -tnl, -unl
例如 netstat -tnpl 查看处于监听状态,基于tcp的网络连接
显示路由表:
netstat {--route|-r} [--numeric|-n]
-r: 显示内核路由表
-n: 数字格式
例如 netstat -nr
显示接口统计数据:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
# netstat -i 显示所有网络接口的的统计数据
# netstat -I IFACE 例如 netstat -Iens33 其中ens33表示网络接口
总结:ifcfg家庭命令配置
ifconfig/route/netstat
ifup/ifdown
ip命令详解:
ip命令由iproute包提供
ip - show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help } ip命令的格式
OBJECT { link | addr | route } OBJECT有多个,本文仅介绍link,addr,route
link表示网络设备,有set和show等子命令
ip link show 显示所有的网络设备
ip link show dev eth0 显示eth0这个网路设备的信息
ip link show up 显示所有启用的网络设备的信息
ip link set dev eth0 up 启用网络设备
ip link set dev eth0 down 关闭网络设备
ip link set dev eth0 multicast on 启用网络设备eth0的多播功能
ip link set dev eth0 multicast off 关闭网络设备eht0的多播功能
addr表示网络设备上地址,有add和del,show,flush等子命令
ip addr show dev eth0 显示eth0的ip地址信息
ip addr show dev eth0 lable "eth0:0" 显示标签为eth0:0的地址
ip addr show dev eth0 primary
ip addr show dev eth0 secondary
ip addr add 192.168.62.188/24 dev eth0 添加ip地址
ip addr del 192.168.62.188/24 dev eth0 删除ip地址
ip addr add 192.168.62.188/24 dev eth0 label eth0:0 添加ip地址,并设置标签
ip addr del 192.168.62.188/24 dev eth0 label eth0:0 删除ip地址
ip addr add 192.168.62.188/24 dev eth0 scope global 添加ip地址,并设置作用域区域(global表示全局可用,link表示连接可用,host表示仅本机可用)
ip addr flush dev eth0 清空eth0的所有地址,用法同show
ip addr flush dev eth0 lable "eth0:0"
route表示管理路由,有add,show,delete,flush,get子命令
ip route add 192.168.1.3 via 192.168.62.2 dev eth0 通过172.16.0.1到达192.68.1.3
ip route add 192.168.0.0/24 via 192.168.62.2 dev eth0
ip route delete 192.168.1.3 删除路由
ip route delete 192.168.0.0/24
ip route add default via 192.168.62.2 添加默认路由
ip route delete default 删除默认路由
ip route show dev eth0 显示路由
ip route flush dev eth0 清空路由
ss命令的详解 类似于netstat
格式:ss [OPTION]... [FILTER]
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关,基于socket文件通信
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
例如 ss -tan state established
TCP的常见状态:
tcp finite state machine:
listening: 监听
established:已建立的连接
fin-wait-1
fin-wait-2
syn-sent
syn-recv
closed
EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’
常用组合:
-tan, -tanl, -tanlp, -uan
Linux网络属性配置(3): 修改配置文件
IP、MASK(掩码)、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE 该文件默认不存在
/etc/sysconfig/network-scripts/ifcfg-IFACE:可以配置如下的内容
DEVICE:此配置文件应用到的设备;
HWADDR:硬件地址,也就是对应的设备的MAC地址;
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”;
ONBOOT:在系统引导时是否激活此设备;
TYPE:接口类型;常见有的Ethernet, Bridge;
UUID:设备的惟一标识;
IPADDR:指明IP地址;
NETMASK:子网掩码;
GATEWAY: 默认网关;
DNS1:第一个DNS服务器指向;
DNS2:第二个DNS服务器指向;
USERCTL:普通用户是否可控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;
修改配置文件之后不会立即生效,可以执行如下的任一命令使之生效:
service network restart
/etc/rc.d/init.d/network restart
/etc/sysconfig/network-scripts/route-IFACE
该文件的定义有如下两种风格:
(1)每行一条路由
TARGET via GW 表示要到达TARGET,要通过GW
(2) 每三行定义一条路由,#表示数字
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
给网卡配置多地址:3种方式,ifconfig命令,ip命令,配置文件
ifconfig eth0:0 192.168.62.188/24 up
ip addr add 192.168.62.188/24 dev eth0 label "eth0:0"
配置文件:
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS
注意:网关别名不能使用dhcp协议引导;
Linux网络属性配置的tui(text user interface):
system-config-network-tui 命令也可以配置网络属性
也可以使用setup命令
注意:记得重启网络服务方能生效;
配置当前主机的主机名:
hostname [HOSTNAME]
例如 hostname mylaptop 把主机名配置为mylaptop
编辑配置文件/etc/sysconfig/network 也可以配置主机名
在配置文件中写入如下内容:
HOSTNAME="hp-laptop"
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules
卸载网卡驱动模块e1000
modprobe -r e1000
装载网卡驱动:
modprobe e1000
CentOS 7网络属性配置
传统命名:以太网eth[0,1,2,...], wlan[0,1,2,...]
CentOS 7 使用可预测功能,udev支持多种不同的命名方案:包括Firmware和拓扑结构
(1) CentOS 7的网卡命名机制
systemd对网络设备的命名方式:
(a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1;
(b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1;
(c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0;
(d) 如果用户显式启用,也可根据MAC地址进行命名,enx2387a1dc56;
(e) 上述均不可用时,则使用传统命名机制;
上述命名机制中,有的需要biosdevname这个程序的参与;
(2) 名称组成格式:
net.ifnames的命名规范为: 设备类型+设备位置+数字
en: ethernet 以太网
wl: wlan 无线局域网
ww: wwan 无线广域网,例如4G移动网络
名称类型:
o<index>: 集成设备的设备索引号;
s<slot>: 扩展槽的索引号; 笔者的设备被识别为ens33
x<MAC>: 基于MAC地址的命名;
p<bus>s<slot>: enp2s1
网卡设备的命名过程:systemd中的实际执行顺序
第一步: /usr/lib/udev/rules.d/60-net.rules规则
udev, 辅助工具程序/lib/udev/rename_device根据/usr/lib/udev/rules.d/60-net.rules
使用/lib/udev/rename_device这个程序,去查询/etc/sysconfig/network-scripts/下所有以ifcfg-开头的文件如果在ifcfg-xx中匹配到HWADDR=xx:xx:xx:xx:xx:xx参数的网卡接口则选取DEVICE=yyyy中设置的名字作为网卡名称。
第二步:/usr/lib/udev/rules.d/71-biosdevname.rules规则
biosdevname 会根据/usr/lib/udev/rules.d/71-biosdevname.rules
如果系统中安装了biosdevname,且内核参数未指定biosdevname=0,且上一步没有重命名网卡,则按照biosdevname的命名规范,从BIOS中取相关信息来命名网卡。 主要是取SMBIOS中的type 9 (System Slot) 和 type 41 (Onboard Devices Extended Information) 不过要求SMBIOS的版本要高于2.6,且系统中要安装biosdevname程序。
第三步:/usr/lib/udev/rules.d/75-net-description.rules规则
通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description.rules
ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH
udev通过检查网卡信息,填写如下这些udev的属性值 ID_NET_NAME_ONBOARD ID_NET_NAME_SLOT ID_NET_NAME_PATH ID_NET_NAME_MAC
第四步:/usr/lib/udev/rules.d/80-net-name-slot.rules
如果在60-net.rules ,71-biosdevname.rules这两条规则中没有重命名网卡,且内核未指定net.ifnames=0参数 则udev依次尝试使用以下属性值来命名网卡,如果这些属性值都没有,则网卡不会被重命名。 ID_NET_NAME_ONBOARD ID_NET_NAME_SLOT ID_NET_NAME_PATH
参考:
http://blog.sina.com.cn/s/blog_704836f40102w36n.html
回归传统命名方式:
(1) 编辑/etc/default/grub配置文件,传递net.ifnames=0 表示不重名
GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"
(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
(3) 重启系统
地址配置工具:nmcli
nmcli是控制NetworkManager的命令行工具
此命令类似于ip命令,有多个OBJECT,OBJECT里有子命令,格式如下:
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
这里主要介绍device和connection这2个OBJECT,其他的OBJECT请参看文档
device 表示显示和管理网络接口,有status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp这些子命令
例子 nmcli device status 查看所有网络接口的状态
nmcli device show eth0 查看eth0这个网络接口的信息
connection 启用,停止,管理网络连接,有show | up | down | add | modify | clone | edit | delete | monitor | reload | load | import | export这些子命令
如何修改IP地址等属性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method 可以设置为 manual
例子:
nmcli connection show 显示系统上的连接,比如有线连接,无线连接,4G连接等等
nmcli connection up eth0 表示启用eth0
nmcli connection down eth0 表示禁用eth0
nmcli connection modify eth0 +ipv4.addresses 192.168.62.188/24 给eth0添加ip地址(切记:必须先执行上面例子的第3条和第2条命令,先让设备禁用再启用,才能生效,除法了addresses,gateway,dns1,method等都可以设置)
nmcli connection modify eth0 +ipv4.dns 8.8.8.8 添加dns服务器
网络接口配置tui工具:nmtui
主机名称配置工具:hostnamectl
hostnamectl status 显示
hostnamectl set-hostname "hp-laptop" 设置主机名为hp-laptop
该命令其实是修改配置文件 /etc/hostname的内容
博客作业:上述所有内容;
ifcfg, ip/ss, 配置文件, nmcli
参考资料:http://www.redhat.com/hdocs
课外作业:nmap, ncat, tcpdump工具
网络客户端工具:
lftp, ftp, lftpget, wget
lftp的格式如下:
# lftp [-p port] [-u user[,password]] SERVER
get FILENAME 下载文件
mget 下载多个文件
ls
help 显示帮助信息
lftpget 命令表示 get a file with lftp
lftpget URL
ftp
wget 下载工具
wget [option]... [URL]...
-q: 静默模式
-c: 续传
-O: 保存位置
--limit-rates=: 指定传输速率
MAC:Media Access Control 介质访问控制
MAC地址:48位组成,前24位表示厂商,后24位厂商设定
局域网:以太网,令牌环网
局域网里的各个计算机之间的通信机制:
Ethernet: CSMA/CD 载波监听多路访问/碰撞检测机制。
局域网和局域网之间如何通信?就是两个网络之间通信?
可以通过网桥,网桥里有MAC表。一般网桥有多个接口,网桥的每个接口对应一个网络(局域网),网桥有MAC表,MAC表记录了每个接口对应的局域网络里的主机。MAC表通过某种学习机制建立起来。局域网的A主机 要跟局域网的B主机通信的时候,A并不知道B在本地网络里还是另外的局域网里,所以A主机还是要发送广播报文的。并且这个广播报文会被网桥的连接了A主机所在的网络的接口转发到网桥的所有其他接口上。这样一来,B主机才有可能收到A主机的这个广播报文。然后,B主机接收到这个广播报文,就发送报文回应。但是如果是局域网A主机和局域网C主机通信,网桥的连接A主机所在局域网的接口是不会把这个报文广播给其他的接口的,因为网桥的目的就是为了隔离一部分的冲突域。
交换机:交换机有多个接口,一个接口接入一台计算机,各台计算机之间的通信需要通过广播,通过广播才能建立MAC表。如果机器过多,可能造成广播风暴。所以为了隔离广播域,引入了路由器。交换机工作在数据链路层。
路由器:
路由器(英语:Router,又称路径器)是一种电讯网络设备,提供路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。路由工作在OSI模型的第三层——即网络层,例如网际协议(IP)。
局域网A里的1号机器和局域网B里的2号机器如何通信?
比如1号机器要发送数据到B.2来表示向局域网B里的2号机器,那么这里的B.2就可以理解为IP地址。所以,IP地址标识了网络段号和那个指定的机器。
局域网A里的1号机器如果发送了报文给局域网A的2号机器,那么必须知道这个A.2是否是本局域网的机器,还是其他网络里的机器?
通过子网掩码和IP地址做与运算可以算出ip地址的网络号。假如:A.1的IP地址192.168.1.188,A.2的IP地址为192.168.1.100。它们通信之前192.168.1.188 & 255.255.255.0等于192.168.1.0并且192.168.1.100 & 255.255.255.0等于192.168.1.0,所以他们是同一个网络的。就不需要把报文发送个路由器,而是直接基于MAC地址就可以在同网络里通信;如果计算出来的网络号不一样,就表示不在同一个网络号里,就必须求助路由器。
网关的意义,当局域网里的机器发送的报文的目的地址不是本地局域网的时候,这些数据包就发送给网关,也就是路由器,交由路由器处理该报文。
全世界各地有许许多多的局域网和广域网等等,这些网络里的主机要互相通信,就必须接入许多的路由器。所以,某两个主机之间的通信,可能要通过多个路由器转发,才能成功。如此一来,就有多条路由路径可以连通连个主机。至于选择哪条路径的代价小,就有了路由协议,路由算法等。
端口号:
两台主机之间可以通过ip地址相互连通,但是要真正通信,必须落实到两台主机的进程,就是A主机的某某进程和B主机的某某进程通信,而端口号就用来表示这两个进程。
套接字:一个主机可以有多个IP地址(可能是有多个网卡设备或者是一个网卡设备配置多个IP地址也是可以的),每一个IP地址都有自己的0-65535号的端口。所以,IP地址和端口号就表示一个套接字。
OSI七层模型如下:
应用层 应用层
表示层 表示层
会话层 会话层
传输层(端口) 传输层(端口)
网络层(ip地址) 网络层(ip地址)
链路层(MAC地址) 链路层(MAC地址)
物理层 物理层
左边是源地址处, 右边是目标地址处
左边每往下一层封包一次,通过路由之后右边收到报文,从最下层的物理层开始一直解包。
传输层协议:
TCP
UDP
SCTP
ICMP
网络层协议:
ip
IP报文详解:
IP version:表示IP的版本号,4或者6
Header Length:首部长度,包括Options的可选段(最长40字节),所以必须标记整个IP头部的长度。其中Header Length只有4bit,这个数字要乘以4,才是真实的长度。
Type of Service:表示服务的类型。
TOtal Length:报文的总长,包括IP头部加上数据。
Identification (Fragment ID):表示片ID,一个大报文在传输过程中可能因为传输过程中某些路由器支持的报文长度比较小,所以需要将报文分片,分成多个片。所以,需要在报文里标记每一个片的片ID。
Fragment Offset:表示片偏移。意思是说这个片在整个报文中的位置。
MF位:表示这个报文属于有分片的,必须整合其他的分片才能组合成完整报文。
DF位:表示这个报文未分片的。
Time To Live(TTL):报文在路由中跳转的次数。
Protocol:表示上层协议,封装在Data段中的上层的协议,一般有TCP,UDP,SAMP等。
Header CheckSum:头部校验和
Source IP Address:源IP地址
Destination IP Addres:目标IP地址
Options:可选头部,如果有,最大40字节。
TCP报文详解:
Source Port Number:源端口
Destination Port Number:目标端口
Sequence Number(SN): 序列号
Acknowledgement Number(AN):确认号
Header Length:TCP首部长度,也要乘以4才是真实的TCP首部长度
Reserved:保留位,6位
URG:紧急位,为1表示Urgetn Pointer有效,反之无效
ACK:确认位,为1表示Acknowledgement Number有效,反之无效
PSH:推送位,表示数据报文不放入内核缓冲区中,而是优先让网卡发送接收。
RST:重置位,
SYN:SYN位
FIN:FIN位
Windows Size:窗口大小,发送缓冲区大小和接收缓冲区大小的协商
TCP Checksum:
Urgetn Pointer:紧急指针
Options:可选段
Data:
TCP的3次握手和4次断开:
TCP的3次握手的过程:
TCP请求方发送报文,报文中的SYN位置为1,并且Sequence Number(SN)给一个随机数,假设SN=100。
TCP响应方发送响应报文,报文中的SYN位置为1,ACK位置为1,Acknowledgement Number(AN)=101,也就是请求方的SN+1,并且Sequence Number(SN)给一个随机数,假设SN=300。
TCP请求方接到确认报文后,再发送一个报文,报文中ACK位置为1,SN=101,AN=301 。
这3步骤之后,双方的连接就建立起来了,这种连接的状态称之为ESTABLISHED状态。
TCP的4次断开的过程:
IPv4地址分为5大类:
IP地址使用点分十进制表示:比如192.167.2.22,每个数字是由8位的二进制表示,所以每个数字的范围是0到255。
IP地址由网络号和主机号组成,其中如果主机位全0,表示网络地址,如果主机位全1,表示广播地址。
A类地址:如上,每个ip地址有4个十进制表示。第1个十进制数的二进制表示的第1位为0。所以第1个数字的表示范围是00000000到01111111也就是0到127,但是0通常没有用,所以该类ip地址的第一个十进制数的范围就是1到127。这第1个十进制数表示网络号,后面的3个十进制数表示主机号。127.0.0.1是特殊的表示本机地址。所以综上:该类地址的网络数只有1到126种变化,每个网络号可以容纳2的24次方个主机。该类地址的默认掩码是255.0.0.0。该类的私网地址为10.0.0.0/8(8表示8个二进制1)到10.255.255.255/8。
如果A类地址为A.B.C.D ,则A表示网络号,B,C,D表示主机号。
B类地址:第1个十进制数的二进制表示的前2位为10。所以第1个数字的表示范围是
10 000000到10 111111,也就是128到191。但是B类ip地址的前2个十进制数表示网络号,后2个十进制数表示主机号。该类地址的网络数有2的14次方个,每个网络号容纳的主机数有2的16次方个。默认子网掩码255.255.0.0。该类的私网地址为172.16.0.0/16到172.31.255.255/16
C类地址:第1个十进制数的二进制表示的前3为为110,所以第1个数字的表示范围是
110 00000到110 11111,也就是192到223。但是C类ip地址的前3个十进制数表示网络号,后1个十进制数表示主机号。该类地址的网络数有2的21次方个,每个网络号容纳的主机数有2的8次方个。默认子网掩码是255.255.255.0。该类的私网地址为192.168.0.0/24到192.168.255.255/24。
D类地址:第1个十进制数的二进制表示的前4位为1110,所以第1个数字的表示范围是
1110 0000到1110 1111,也就是224到239。该类地址用于做组播。
E类地址:第1个十进制数的范围为240到255
子网掩码:
172.16.1.100/16 表示172.16.1.100的子网掩码是255.255.0.0。
172.16.1.100与255.255.0.0进行与运算的结果是172.16.0.0,所以这个ip地址的网络号就是172.16,这是B类地址。
跨网络通信,必须用路由。
路由条目的类型有有主机路由,网络路由,默认路由。
主机路由:目标地址是一个主机
网络路由:目标地址是一个网络
默认路由:目标地址是0.0.0.0的,表示任意主机。
route -n 可以查看路由条目信息:如下
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.62.2 0.0.0.0 UG 100 0 0 eth0
192.168.62.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
将Linux主机接入到网络中:必须配置如下的信息
IP/mask
路由:默认网关
DNS服务器:主DNS服务器,次DNS服务器,第三DNS服务器
配置方式:
静态指定:
ifcfg家族的命令: ifconfig, route, netstat
ip家族的命令: object {link, addr, route}, ss, tc
配置文件 system-config-network-tui (setup)
CentOS 7: nmcli, nmtui
动态分配:
DHCP: Dynamic Host Configuration Protocol 动态主机配置协议。
配置网络接口:
接口命名方式:
CentOS 6:
以太网:eth[0,1,2,...]
ppp:ppp[0,1,2,...]
ifconfig命令详解
ifconfig [interface]
# ifconfig -a 显示所有的网络接口的信息
# ifconfig IFACE [up|down] 启用或关闭某个网络接口
# ifup
# ifdown
ifconfig interface [aftype] options | address ...
# ifconfig IFACE IP/mask [up|down] 例如 ifconfig eth0 192.168.62.110/24
# ifconfig IFACE IP netmask MASK 例如ifconfig eht0 192.168.62.110 netmask 255.255.255.0
ifconfig IFACE [-]promisc 启用或关闭网卡的混杂模式,混杂模式用于抓取同一网络里的流量。
通过ifconfig命令配置的地址可以立即生效,系统重启之后无效。
route命令详解:配置路由信息
查看:route -n通过ifconfig命令配置的地址可以立即生效,系统重启之后无效。
route命令详解:配置路由信息
添加:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
-net表示网络路由
-host表示主机路由
目标:192.168.1.3 网关:172.16.0.1 通过网关172.16.0.1到达目标192.168.1.3
~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
目标:192.168.0.0 网关:172.16.0.1
~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
默认路由,网关:172.16.0.1
~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
~]# route add default gw 172.16.0.1
删除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
目标:192.168.1.3 网关:172.16.0.1
~]# route del -host 192.168.1.3
目标:192.168.0.0 网关:172.16.0.1
~]# route del -net 192.168.0.0 netmask 255.255.255.0
DNS服务器指定:一般编辑配置文件/etc/resolv.conf,写入如下内容
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
FQDN是什么?
www.magedu.com.就表示一个FQDN
正解:FQDN-->IP
# dig -t A FQDN
# host -t A FQDN
反解:IP-->FQDN
# dig -x IP
# host -t PTR IP
netstat命令详解:
netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
显示网络连接:
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态(listening)
-a: 所有状态
-n: 以数字显示IP和端口;
-e:扩展格式
-p: 显示相关进程及PID
常用组合 -tan, -uan, -tnl, -unl
例如 netstat -tnpl 查看处于监听状态,基于tcp的网络连接
显示路由表:
netstat {--route|-r} [--numeric|-n]
-r: 显示内核路由表
-n: 数字格式
例如 netstat -nr
显示接口统计数据:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
# netstat -i 显示所有网络接口的的统计数据
# netstat -I IFACE 例如 netstat -Iens33 其中ens33表示网络接口
总结:ifcfg家庭命令配置
ifconfig/route/netstat
ifup/ifdown
ip命令详解:
ip命令由iproute包提供
ip - show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help } ip命令的格式
OBJECT { link | addr | route } OBJECT有多个,本文仅介绍link,addr,route
link表示网络设备,有set和show等子命令
ip link show 显示所有的网络设备
ip link show dev eth0 显示eth0这个网路设备的信息
ip link show up 显示所有启用的网络设备的信息
ip link set dev eth0 up 启用网络设备
ip link set dev eth0 down 关闭网络设备
ip link set dev eth0 multicast on 启用网络设备eth0的多播功能
ip link set dev eth0 multicast off 关闭网络设备eht0的多播功能
addr表示网络设备上地址,有add和del,show,flush等子命令
ip addr show dev eth0 显示eth0的ip地址信息
ip addr show dev eth0 lable "eth0:0" 显示标签为eth0:0的地址
ip addr show dev eth0 primary
ip addr show dev eth0 secondary
ip addr add 192.168.62.188/24 dev eth0 添加ip地址
ip addr del 192.168.62.188/24 dev eth0 删除ip地址
ip addr add 192.168.62.188/24 dev eth0 label eth0:0 添加ip地址,并设置标签
ip addr del 192.168.62.188/24 dev eth0 label eth0:0 删除ip地址
ip addr add 192.168.62.188/24 dev eth0 scope global 添加ip地址,并设置作用域区域(global表示全局可用,link表示连接可用,host表示仅本机可用)
ip addr flush dev eth0 清空eth0的所有地址,用法同show
ip addr flush dev eth0 lable "eth0:0"
route表示管理路由,有add,show,delete,flush,get子命令
ip route add 192.168.1.3 via 192.168.62.2 dev eth0 通过172.16.0.1到达192.68.1.3
ip route add 192.168.0.0/24 via 192.168.62.2 dev eth0
ip route delete 192.168.1.3 删除路由
ip route delete 192.168.0.0/24
ip route add default via 192.168.62.2 添加默认路由
ip route delete default 删除默认路由
ip route show dev eth0 显示路由
ip route flush dev eth0 清空路由
ss命令的详解 类似于netstat
格式:ss [OPTION]... [FILTER]
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关,基于socket文件通信
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
例如 ss -tan state established
TCP的常见状态:
tcp finite state machine:
listening: 监听
established:已建立的连接
fin-wait-1
fin-wait-2
syn-sent
syn-recv
closed
EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’
常用组合:
-tan, -tanl, -tanlp, -uan
Linux网络属性配置(3): 修改配置文件
IP、MASK(掩码)、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE 该文件默认不存在
/etc/sysconfig/network-scripts/ifcfg-IFACE:可以配置如下的内容
DEVICE:此配置文件应用到的设备;
HWADDR:硬件地址,也就是对应的设备的MAC地址;
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”;
ONBOOT:在系统引导时是否激活此设备;
TYPE:接口类型;常见有的Ethernet, Bridge;
UUID:设备的惟一标识;
IPADDR:指明IP地址;
NETMASK:子网掩码;
GATEWAY: 默认网关;
DNS1:第一个DNS服务器指向;
DNS2:第二个DNS服务器指向;
USERCTL:普通用户是否可控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;
修改配置文件之后不会立即生效,可以执行如下的任一命令使之生效:
service network restart
/etc/rc.d/init.d/network restart
/etc/sysconfig/network-scripts/route-IFACE
该文件的定义有如下两种风格:
(1)每行一条路由
TARGET via GW 表示要到达TARGET,要通过GW
(2) 每三行定义一条路由,#表示数字
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
给网卡配置多地址:3种方式,ifconfig命令,ip命令,配置文件
ifconfig eth0:0 192.168.62.188/24 up
ip addr add 192.168.62.188/24 dev eth0 label "eth0:0"
配置文件:
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS
注意:网关别名不能使用dhcp协议引导;
Linux网络属性配置的tui(text user interface):
system-config-network-tui 命令也可以配置网络属性
也可以使用setup命令
注意:记得重启网络服务方能生效;
配置当前主机的主机名:
hostname [HOSTNAME]
例如 hostname mylaptop 把主机名配置为mylaptop
编辑配置文件/etc/sysconfig/network 也可以配置主机名
在配置文件中写入如下内容:
HOSTNAME="hp-laptop"
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules
卸载网卡驱动模块e1000
modprobe -r e1000
装载网卡驱动:
modprobe e1000
CentOS 7网络属性配置
传统命名:以太网eth[0,1,2,...], wlan[0,1,2,...]
CentOS 7 使用可预测功能,udev支持多种不同的命名方案:包括Firmware和拓扑结构
(1) CentOS 7的网卡命名机制
systemd对网络设备的命名方式:
(a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1;
(b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1;
(c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0;
(d) 如果用户显式启用,也可根据MAC地址进行命名,enx2387a1dc56;
(e) 上述均不可用时,则使用传统命名机制;
上述命名机制中,有的需要biosdevname这个程序的参与;
(2) 名称组成格式:
net.ifnames的命名规范为: 设备类型+设备位置+数字
en: ethernet 以太网
wl: wlan 无线局域网
ww: wwan 无线广域网,例如4G移动网络
名称类型:
o<index>: 集成设备的设备索引号;
s<slot>: 扩展槽的索引号; 笔者的设备被识别为ens33
x<MAC>: 基于MAC地址的命名;
p<bus>s<slot>: enp2s1
网卡设备的命名过程:systemd中的实际执行顺序
第一步: /usr/lib/udev/rules.d/60-net.rules规则
udev, 辅助工具程序/lib/udev/rename_device根据/usr/lib/udev/rules.d/60-net.rules
使用/lib/udev/rename_device这个程序,去查询/etc/sysconfig/network-scripts/下所有以ifcfg-开头的文件如果在ifcfg-xx中匹配到HWADDR=xx:xx:xx:xx:xx:xx参数的网卡接口则选取DEVICE=yyyy中设置的名字作为网卡名称。
第二步:/usr/lib/udev/rules.d/71-biosdevname.rules规则
biosdevname 会根据/usr/lib/udev/rules.d/71-biosdevname.rules
如果系统中安装了biosdevname,且内核参数未指定biosdevname=0,且上一步没有重命名网卡,则按照biosdevname的命名规范,从BIOS中取相关信息来命名网卡。 主要是取SMBIOS中的type 9 (System Slot) 和 type 41 (Onboard Devices Extended Information) 不过要求SMBIOS的版本要高于2.6,且系统中要安装biosdevname程序。
第三步:/usr/lib/udev/rules.d/75-net-description.rules规则
通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description.rules
ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH
udev通过检查网卡信息,填写如下这些udev的属性值 ID_NET_NAME_ONBOARD ID_NET_NAME_SLOT ID_NET_NAME_PATH ID_NET_NAME_MAC
第四步:/usr/lib/udev/rules.d/80-net-name-slot.rules
如果在60-net.rules ,71-biosdevname.rules这两条规则中没有重命名网卡,且内核未指定net.ifnames=0参数 则udev依次尝试使用以下属性值来命名网卡,如果这些属性值都没有,则网卡不会被重命名。 ID_NET_NAME_ONBOARD ID_NET_NAME_SLOT ID_NET_NAME_PATH
参考:
http://blog.sina.com.cn/s/blog_704836f40102w36n.html
回归传统命名方式:
(1) 编辑/etc/default/grub配置文件,传递net.ifnames=0 表示不重名
GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"
(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
(3) 重启系统
地址配置工具:nmcli
nmcli是控制NetworkManager的命令行工具
此命令类似于ip命令,有多个OBJECT,OBJECT里有子命令,格式如下:
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
这里主要介绍device和connection这2个OBJECT,其他的OBJECT请参看文档
device 表示显示和管理网络接口,有status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp这些子命令
例子 nmcli device status 查看所有网络接口的状态
nmcli device show eth0 查看eth0这个网络接口的信息
connection 启用,停止,管理网络连接,有show | up | down | add | modify | clone | edit | delete | monitor | reload | load | import | export这些子命令
如何修改IP地址等属性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method 可以设置为 manual
例子:
nmcli connection show 显示系统上的连接,比如有线连接,无线连接,4G连接等等
nmcli connection up eth0 表示启用eth0
nmcli connection down eth0 表示禁用eth0
nmcli connection modify eth0 +ipv4.addresses 192.168.62.188/24 给eth0添加ip地址(切记:必须先执行上面例子的第3条和第2条命令,先让设备禁用再启用,才能生效,除法了addresses,gateway,dns1,method等都可以设置)
nmcli connection modify eth0 +ipv4.dns 8.8.8.8 添加dns服务器
网络接口配置tui工具:nmtui
主机名称配置工具:hostnamectl
hostnamectl status 显示
hostnamectl set-hostname "hp-laptop" 设置主机名为hp-laptop
该命令其实是修改配置文件 /etc/hostname的内容
博客作业:上述所有内容;
ifcfg, ip/ss, 配置文件, nmcli
参考资料:http://www.redhat.com/hdocs
课外作业:nmap, ncat, tcpdump工具
网络客户端工具:
lftp, ftp, lftpget, wget
lftp的格式如下:
# lftp [-p port] [-u user[,password]] SERVER
get FILENAME 下载文件
mget 下载多个文件
ls
help 显示帮助信息
lftpget 命令表示 get a file with lftp
lftpget URL
ftp
wget 下载工具
wget [option]... [URL]...
-q: 静默模式
-c: 续传
-O: 保存位置
--limit-rates=: 指定传输速率
评论
发表评论