netstat

netstat命令用于显示Linux系统网路链接状态。

netstat命令用于显示与IP、TCP、UDP和ICMP合同相关的统计数据,通常用于检验本机各端口的网路联接情况。

netstat是在内核中访问网路及相关信息的程序,它可以显示路由表、实际的网路联接以及每一个网路插口设备的状态信息。

句型

netstat[-acCeFghilMnNoprstuvVwx][-A][--ip]

参数说明:

-a或--all显示所有连线中的Socket。

-A或--列举该网路类型连线中的相关地址。

-c或--continuous持续列举网路状态。

-C或--cache显示路由器配置的快取信息。

-e或--extend显示网路其他相关信息。

-F或--fib显示FIB。

-g或--groups显示多重广播功能群组班委名单。

-h或--help在线帮助。

-i或--interfaces显示网路界面信息表单。

-l或--listening显示监控中的服务器的Socket。

-M或--masquerade显示伪装的网路连线。

-n或--numeric直接使用IP地址,而不通过域名服务器。

-N或--netlink或--symbolic显示网路硬件外围设备的符号联接名称。

-o或--timers显示计时器。

-p或--programs显示正在使用Socket的程序辨识码和程序名称。

-r或--route显示RoutingTable。

-s或--statistics显示网路工作信息统计表。

-t或--tcp显示TCP传输合同的连线状况。

-u或--udp显示UDP传输合同的连线状况。

-v或--verbose显示指令执行过程。

-V或--version显示版本信息。

-w或--raw显示RAW传输合同的连线状况。

-x或--unix此参数的疗效和指定”-Aunix”参数相同。

--ip或--inet此参数的疗效和指定”-Ainet”参数相同。

帮助菜单:

调用疗效:

netstat的输出结果可以分为两个部份

1、ActiveInternetconnections有源网路联接,其中”Recv-Q”和”Send-Q”指接收队列和发送队列。这种数字通常都应当是0。倘若不是则表示数据包正在队列中堆积。此类情况只能在特别少的情况看见。

2、ActiveUNIXdomainsockets有源Unix域套插口(和网路套接字一样,而且只能用于本机通讯LINUX 删除目录,性能可以提升一倍)。

列名解释:

Proto:显示联接使用的合同。

RefCnt:表示联接到本套插口上的进程号。

Types:显示套插口的类型。

State:显示套插口当前的状态。

Path:表示联接到套插口的其它进程使用的路径名。

Linux服务器上11种网路联接状态:

状态说明:

LISTEN:侦听来自远方的TCP端口的联接恳求

SYN-SENT:再发送联接恳求后等待匹配的联接恳求(假如有大量这样的状态包,检测是否中招了)

SYN-RECEIVED:再收到和发送一个联接恳求后等待对方对联接恳求的确认(如有大量此状态linux 网络状态命令linux培训学校,恐怕被flood功击了)

ESTABLISHED:代表一个打开的联接

FIN-WAIT-1:等待远程TCP联接中断恳求,或以前的联接中断恳求的确认

FIN-WAIT-2:从远程TCP等待联接中断恳求

CLOSE-WAIT:等待从本地用户发来的联接中断恳求

CLOSING:等待远程TCP对联接中断的确认

LAST-ACK:等待原先的发向远程TCP的联接中断恳求的确认(不是哪些好东西,此项出现,检测是否被功击)

TIME-WAIT:等待足够的时间以确保远程TCP接收到联接中断恳求的确认

CLOSED:没有任何联接状态

ifconfig

ifconfig命令用于显示或设置网路设备。

拿来配置或查看网卡插口

帮助菜单:

参数说明:

add设置网路设备IPv6的IP地址。

del删掉网路设备IPv6的IP地址。

down关掉指定的网路设备。

设置网路设备的类型与硬件地址。

io_addr设置网路设备的I/O地址。

irq设置网路设备的IRQ。

media设置网路设备的媒介类型。

mem_start设置网路设备在主显存所占用的起始地址。

metric指定在估算数据包的转赠次数时,所要加上的数量。

mtu设置网路设备的MTU。

netmask设置网路设备的子网网段。

tunnel构建IPv4与IPv6之间的隧洞通讯地址。

up启动指定的网路设备。

-broadcast即将送往指定地址的数据包当作广播数据包来处理。

-pointopoint与指定地址的网路设备完善直接连线,此模式具有保密功能。

-promisc关掉或启动指定网路设备的promiscuous模式。

[IP地址]指定网路设备的IP地址。

[网路设备]指定网路设备的名称。

常用指令:

启动关掉指定网卡

#ifconfigeth0down

#ifconfigeth0up

为网卡配置和删掉IPv6地址

#ifconfigeth0add33ffe:3240:800:1005::2/64//为网卡设置IPv6地址

#ifconfigeth0del33ffe:3240:800:1005::2/64//为网卡删掉IPv6地址

用ifconfig更改MAC地址

#ifconfigeth0down//关掉网卡

#ifconfigeth0hwether00:AA:BB:CC:DD:EE//更改MAC地址

#ifconfigeth0up//启动网卡

#ifconfigeth1hwether00:1D:1C:1D:1E//关掉网卡并更改MAC地址

#ifconfigeth1up//启动网卡

配置IP地址

#ifconfigeth0192.168.1.56

//给eth0网卡配置IP地址

#ifconfigeth0192.168.1.56netmask255.255.255.0

//给eth0网卡配置IP地址,并加上子网段

#ifconfigeth0192.168.1.56netmask255.255.255.0broadcast192.168.1.255

//给eth0网卡配置IP地址,加上子网段,加上个广播地址

启用和关掉ARP合同

#ifconfigeth0arp//开启

#ifconfigeth0-arp//关掉

设置最大传输单元

#ifconfigeth0mtu1500

//设置能通过的最大数据包大小为1500bytes

调用疗效:

#eth0:网卡名称

#Linkencap:网卡的插口类型,这儿是以太网

#HWaddr:网卡的硬件地址,也称的MAC地址

#inetaddr:IPv4地址,倘若是IPv6会写成inet6addr

#Bcast:广播地址

#Mask:子网网段

#UP:表示网卡是开启状态

#BROADCAST:表示网卡支持广播

#RUNNING:表示网卡的网线早已被接上

#MULTICAST:表示网卡支持组播

linux网络命令详解_linux 网络状态命令_linux命令行网络设置

#MTU:网路最大传输单元

#Metric:抵达网段的测度值,测度值供个别操作系统所用,用于估算一条路由的成本。该选项可用于为插口创建的路由表分配测度值。路由信息合同(RIP)借助测度值来建立网路路由表。ifconfig所用的默认测度值是0。倘若不运行RIP程序,就没必要采用这个选项。假如要运行RIP程序,就尽量不要改变这个默认的测度值。

#RXpackets:网路从启动到现今为止接收的数据包大小,单位是字节,error发生错误的数据包,dropped被遗弃的数据包

#TXpackets:网路从启动到现今为止发送的数据包大小,单位是字节,error发生错误的数据包,dropped被遗弃的数据包

#collisions:发生碰撞的数据包,倘若发生太多次,表明网路状况不太好

#txqueuelen:传输数据的缓冲区的存储宽度

#RXbytes:总接收字节总数

#TXbytes:总发送字节总数

#Memory:网卡硬件的显存地址

假如你的网卡早已完成配置却还是未能与其它设备通讯,这么从RX和TX的显示数据上可以简单地剖析一下故障缘由。在这些情况下,假如你看见接收和传送的包的计数(packets)降低,那有可能是系统的IP地址出现了混乱;假如你看见大量的错误(errors)和冲突(Collisions),这么这很有可能是网路的传输介质出了问题,比如网线不通或hub毁坏。

为单个网卡配置多个IP地址

有时须要为某个设备插口配置多个IP地址,办法是使用设备别称linux 网络状态命令,比如,eth0设备可以有eth0,eth0:0,eth0:1….多某些名,每位都可以有一个独立的IP地址:

ifconfigeth0210.34.6.89netmask255.255.255.128broadcast210.34.6.127

ifconfigeth0:0210.34.6.88netmask255.255.255.128broadcast210.34.6.127

这样,210.34.6.89和210.34.6.88就会被绑定在eth0设备上,使用同样的网路设备,不同的IP地址。

Iptables

防火墙分类

①包过滤防火墙(packfiltering)在网路层对数据包进行选择过滤,采用访问控制列表(Accesscontroltable-ACL)检测数据流的源地址,目的地址,源和目的端口,IP等信息。

②代理服务器型防火墙

iptables(以下简称iptables)是nuix/linux系统自带的基于包过滤的防火墙工具、它的功能非常强悍、使用特别灵活、可以对流入、流出及流经服务器的数据包进行精细的控制。可以在低配置服务器下流畅运行。

Iptables是linux2.4及2.6内核中集成的服务、其功能与安全性比老一辈ipvfwadm、ipchanins强悍的多、一般觉得iptables工作在OSI七层的、二、三层、四层。

iptables虽然不是真正的防火墙,我们可以把它理解成一个顾客端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架”中,这个”安全框架”才是真正的防火墙,这个框架的名子叫netfilter

netfilter才是防火墙真正的安全框架(framework),netfilter坐落内核空间。

iptables虽然是一个命令行工具,坐落用户空间,我们用这个工具操作真正的框架。

netfilter/iptables(下文中简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以取代高昂的商业防火墙解决方案,完成封包过滤、封包重定向和网路地址转换(NAT)等功能。

Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:

网路地址转换(NetworkAddressTranslate)数据包内容更改以及数据包过滤的防火墙功能

iptables名词和术语

Netfileter/iptables是表(tables)的容器,表(tables)是链的容器,链(chains)是规则(Policys)的容器,规则是iptables一系列过滤信息和具体操作方式。

①规则(rules):网路管理员预定义的条件

②链(chains):是数据包传播的路径

③表(tables):外置3个表filter表,nat表,mangle表分别用于实现包过滤网路地址转换和包构建的功能

Iptables是采取数据包过滤机制工作的,所以它会对恳求的数据包的鄂尔多斯数据进行剖析、并按照我们预先设定的规则进行匹配来决定是否可以步入、流出、流经主机

linux命令行网络设置_linux 网络状态命令_linux网络命令详解

iptables步入主机进行过滤的流程图

防火墙规则的执行次序觉得从前到后依次执行、遇到匹配的规则就不在继续向上检测、

假如遇见不匹配的规则则会继续向上进行。重点:匹配上了拒接规则也是匹配。

iptables,按照功能和表的定义界定、最常用的有三个表,分别是filter,natmangle.其中每位表又有各自包含不同的操作链(chains),见右图。

linux命令行网络设置_linux网络命令详解_linux 网络状态命令

filter表

linux网络命令详解_linux 网络状态命令_linux命令行网络设置

和主机自身相关、负责防火墙(过滤本机流入、流出数据包)。

是iptables默认使用的表、这个表定义了三个链(chains)说明如下

INPUT

负责过滤所有目标地址是主机(防火墙)地址的数据包、通俗的讲、就是过滤步入主机的数据包。

FORWARD

负责转发流经主机但不步入本机的数据包、起转发作用、和NAT表关系很大、后面会详尽介绍

OUTPUT

处理所有原地址是本机地址的数据包、通俗的讲就是处理从主机发出去的数据包。

对于filter表的控制是我们实现本机防火墙功能的重要手段。

nat表

是网路地址转换的意思。即负责来源与目的IP地址和port的转换、和主机本身无关。通常用于局域网多人共享上网或则外网IP映射内网IP及不同端口转换服务等功能。Nat表的功能很重要、这个表定义了三个链(chains)

OUTPUT

主机发出去的数据包有关、在数据包路由之前改变主机形成的数据包的目的地址等。

PREROUTING

在数据包刚抵达防火墙时、进行路由判定之前执行的规则、改变包的目的地址(DNAT功能)、端口等(浅显比喻,就是收信时、根据规则重画寄件人的地址、这看起来不地道啊、)把公司IP映射到局域网的机器上、此链多用于把外部IP地址端口的服务、映射为内部IP地址及端口

POSTROUTING

在数据包离开防火墙时进行路由判定以后执行的规则、改变包的源地址(SNAT)、端口等(浅显比喻、就是写信时写好发件人的地址、要让人家回信是能否有地址可回)刺链多用于局域网共享上网,把所有局域网的地址、转换为网段地址上

mangle表

主要负责更改数据包中特殊的路由标记,如TTL、TOS、MARK等、这个表定义了5个链(chains)

因为这个表与特殊路由标记有关、一般在生产运维工作中、我们极少用到这个mangle表。我们就不做详尽介绍了

帮助菜单:

linux 网络状态命令_linux网络命令详解_linux命令行网络设置

调用疗效(未配置防火墙):

常用配置命令:

(1)查看本机关于IPTABLES的设置情况

iptables-L-n

(2)消除原有规则

iptables–F###消除所有规则

iptables–X####删掉用户自定义的链

iptables–Z####链的计数器清零

提示:默认情况下,我们消除规则是对filter表的操作、如果是nat表、我们须要iptables–tnat–F

(3)保存配置

这种配置如同用命令配置IP一样,重起都会丧失作用,可通过以下指令保存.

/etc/rc.d/init.d/iptablessave

这样就可以讲到/etc/sysconfig/iptables文件里了.写入杂记得把防火墙重起一下,能够起作用.

serviceiptablesrestart

(4)设定预设规则

[root@tp~]#iptables-PINPUTDROP

[root@tp~]#iptables-POUTPUTACCEPT

[root@tp~]#iptables-PFORWARDDROP

里面的意思是,当超出了IPTABLES里filter表里的两个链规则(INPUT,FORWARD)时,不在这两个规则里的数据包如何处理呢,那就是DROP(舍弃).应当说这样配置是很安全的.我们要控制流入数据包

而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在着个规则里的包如何办呢,那就是通过.

(5)添加规则.

首先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写须要ACCETP(通过)的链

为了能采用远程SSH登入,我们要开启22端口.

[root@tp~]#iptables-AINPUT-ptcp--dport22-jACCEPT

[root@tp~]#iptables-AOUTPUT-ptcp--sport22-jACCEPT(注:这个规则,假如你把OUTPUT设置成DROP的就要写上这一部,很多人都是望了写这一部规则造成,一直未能SSH.在远程一下,是不是好了.

其他的端口也一样,倘若开启了web服务器,OUTPUT设置成DROP的话,同样也要添加一条链:

[root@tp~]#iptables-AOUTPUT-ptcp--sport80-jACCEPT,其他同理.)

假如做了WEB服务器,开启80端口.

[root@tp~]#iptables-AINPUT-ptcp--dport80-jACCEPT

假如做了电邮服务器,开启25,110端口.

[root@tp~]#iptables-AINPUT-ptcp--dport110-jACCEPT

[root@tp~]#iptables-AINPUT-ptcp--dport25-jACCEPT

假如做了FTP服务器,开启21端口

[root@tp~]#iptables-AINPUT-ptcp--dport21-jACCEPT

[root@tp~]#iptables-AINPUT-ptcp--dport20-jACCEPT

假如做了DNS服务器,开启53端口

[root@tp~]#iptables-AINPUT-ptcp--dport53-jACCEPT

假如你还做了其他的服务器,须要开启那个端口,照写就行了.

里面主要写的都是INPUT链,但凡不在里面的规则里的,都DROP

容许icmp包通过,也就是容许ping,

[root@tp~]#iptables-AOUTPUT-picmp-jACCEPT(OUTPUT设置成DROP的话)

[root@tp~]#iptables-AINPUT-picmp-jACCEPT(INPUT设置成DROP的话)

只容许192.168.0.3的机器进行SSH联接

[root@tp~]#iptables-AINPUT-s192.168.0.3-ptcp--dport22-jACCEPT

假如要容许,或限制一段IP地址可用192.168.0.0/24表示192.168.0.1-255端的所有IP.

24表示子网网段数.但要记得把/etc/sysconfig/iptables里的这一行删了.

-AINPUT-ptcp-mtcp--dport22-jACCEPT由于它表示所有地址都可以登录.

或采用命令形式,删掉规则:

[root@tp~]#iptables-DINPUT-ptcp--dport22-jACCEPT

之后保存,我再说一边,反是采用命令的形式,只在当时生效,倘若想要重起后也起作用,那就要保存.写入到/etc/sysconfig/iptables文件里.

[root@tp~]#/etc/rc.d/init.d/iptablessave

这样写!192.168.0.3表示不仅192.168.0.3的ip地址

其他的规则联接也一样那么设置.

参考:

netstat

ifconfig

iptables

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复