1.查看某一端口的连接客户端IP,比如80端口:
2.简述/etc/fstab里面个字段的含义
因为 mount 挂载在重启服务器后会失效,所以需要将分区信息写到 /etc/fstab 文件中让它永久挂载:
磁盘分区 挂载目录 文件格式
3.查看当前连接IP地址:
netstat -nat
4.查看80端口连接数
netstat -nat|grep -i '80'|wc -l
5.查看当前连接状态数量如LISTEN/ESTABLISHED/tcp
netstat -na|grep LISTEN|wc -l
6.查看连接IP
netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'
7.在Linux系统中有时候需要统计某个地址的链接数,我们就可以用下面的组合命令来查看和统计某个服务器上所有连接按照IP分类统计结果
netstat -tun|awk '{print $5}'|cut -d : -f1|sort|uniq -c|sort -n
7.1 命令解释
netstat命令功能是显示网络连接、和网络接口信息,可以得到服务器有哪些网络连接正在运作;
-t显示tcp传输协议的连线状况,-u显示udp传输协议的连线状况,-n直接用ip地址显示,而不是通过域名服务器。
cut -d : -f1:cut是一个选取命令,-d指定为分隔符,这里指定":"为分隔符,-f数字是取第几列,这里-f1显示分隔符后的第一个列。
8.修改内核参数
vi /etc/sysctl.conf 这里修改参数
sysctl -p 刷新后可用
ps -aux中的VSZ代表什么意思,Rss代表什么意思
VSZ:虚拟内存集,进程占用的虚拟内存空间
RSS:物理内存集,进程战用实际物理内存空间
实时抓取并显示当前系统中tcp80端口的网络数据信息
tcpdump -n tcp port 80(tcpdump -i ens33 'tcp port 80')
查看/var/log目录下的文件数
ls /var/log/ -R | grep “-” | wc -l
让history命令显示具体时间
HISTTIMEFORMAT=“%Y-%m-%d %H:%M:%S”
export HISTTIMEFORMAT
使用Linux系统命令统计出establish状态的连接数有多少
netstat -an |grep 80 |grep ESTABLISHED |wc -l
进程的查看和调度分别使用什么命令
进程查看的命令是 ps 和 top。
进程调度的命令有 at,crontab,batch,kill。
Linux常用端口对应的服务
端口:20(数据端口) 21(控制端口)
服务:FTP
说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。
---------
端口:22
服务:ssh
说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。
---------
端口:23
服务:Telnet
说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。
---------
端口:25
服务:SMTP
说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。
---------
端口:53
服务:Domain Name
Server(DNS)
说明:DNS服务器所开放的端口,入侵者可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。
-------------
端口:67
服务:Bootstrap
Protocol Server
说明:通过DSL和Cable
modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址。HACKER常进入它们,分配一个地址把自己作为局部路由器而发起大量中间人(man-in-middle)攻击。客户端向68端口广播请求配置,服务器向67端口广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。
DHCP (UDP ports 67 and 68)
---------
端口:80
服务:HTTP
说明:用于网页浏览。木马Executor开放此端口。
---------
端口:113
服务:Authentication
Service
说明:这是一个许多计算机上运行的协议,用于鉴别TCP连接的用户。使用标准的这种服务可以获得许多计算机的信息。但是它可作为许多服务的记录器,尤其是FTP、POP、IMAP、SMTP和IRC等服务。通常如果有许多客户通过防火墙访问这些服务,将会看到许多这个端口的连接请求。记住,如果阻断这个端口客户端会感觉到在防火墙另一边与E-MAIL服务器的缓慢连接。许多防火墙支持TCP连接的阻断过程中发回RST。这将会停止缓慢的连接。
---------
端口:119
服务:Network
News Transfer
Protocol
说明:NEWS新闻组传输协议,承载USENET通信。这个端口的连接通常是人们在寻找USENET服务器。多数ISP限制,只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送SPAM。
---------
端口:143
服务:Interim Mail Access Protocol
说明:和POP3的安全问题一样,许多IMAP服务器存在有缓冲区溢出漏洞。记住:一种Linux蠕虫(admv0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后,这些漏洞变的很流行。这一端口还被用于IMAP2,但并不流行。
---------
端口:443
服务:Https
说明:网页浏览端口,能提供加密和通过安全端口传输的另一种HTTP。
---------
端口:500
说明:Internet Key
Exchange(IKE)(Internet密钥交换)
---------
端口:555
服务:DSF
说明:木马PhAse1.0、Stealth Spy、IniKiller开放此端口。
---------
端口:635
服务:mountd
说明:Linux的mountd
Bug。这是扫描的一个流行BUG。大多数对这个端口的扫描是基于UDP的,但是基于TCP的mountd有所增加(mountd同时运行于两个端口)。记住mountd可运行于任何端口(到底是哪个端口,需要在端口111做portmap查询),只是Linux默认端口是635,就像NFS通常运行于2049端口
---------
端口:666
服务:Doom Id Software
说明:木马Attack FTP、Satanz Backdoor开放此端口
---------
端口:1433
服务:SQL
说明:Microsoft的SQL服务开放的端口
---------
端口:1524
服务:ingress
说明:许多攻击脚本将安装一个后门SHELL于这个端口,尤其是针对SUN系统中Sendmail和RPC服务漏洞的脚本。如果刚安装了防火墙就看到在这个端口上的连接企图,很可能是上述原因。可以试试Telnet到用户的计算机上的这个端口,看看它是否会给你一个SHELL。连接到600/pcserver也存在这个问题。
---------
端口:3128
服务:squid
说明:这是squid
HTTP代理服务器的默认端口。攻击者扫描这个端口是为了搜寻一个代理服务器而匿名访问Internet。也会看到搜索其他代理服务器的端口8000、8001、8080、8888。扫描这个端口的另一个原因是用户正在进入聊天室。其他用户也会检验这个端口以确定用户的机器是否支持代理。
---------
端口:8080
服务:代理端口
说明:WWW代理开放此端口。
---------
端口:3306
说明:MySQL
想在Linux命令行下访问某个网站,并且该网站域名还没有解析
在 /etc/hosts 文件中增加一条从该网站域名到其 IP 的解析记录即可,或者使用 curl -x。
如果有一天突然发现网站访问速度变得很慢很慢
可以从两个方面入手分析:
分析系统负载,使用 w 令或者 uptime 命令查看系统负载,如果负载很高,则使用 top 命令查看 CPU,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够,
如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
内存使用
FTP服务器在传输层使用的协议,默认端口,FTP主目录绝对路径
FTP服务器在传输层使用的协议是tcp;
默认端口是:21端口;
FTP主目录绝对路径:/var/ftp
公司机房的服务器接近254台了,设计一个方案,划分网段,并实现业务平滑迁移
方案一:变长子网掩码的方法,加大IP地址的可使用范围,全网分发 /etc/hosts 文件;
方案二:增加核心交换机,在核心交换机划分 VLAN,将新增的服务器加入新的 VLAN 中,全网分发 /etc/hosts 文件。
实时查看网卡流量工具
需要epel环境$ yum install -y epel-release
yum install -y iftop
相关参数解释
1.界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
2.中间的<= =>这两个左右箭头,表示的是流量的方向。
3.TX:发送流量
4.RX:接收流量
5.TOTAL:总流量
6.Cumm:运行iftop到目前时间的总流量
7.peak:流量峰值8.rates:分别表示过去 2s 10s 40s 的平均流量
查看历史网卡流量
安装sysstat包,使用sar命令查看。
yum install -y sysstat#安装sysstat包,获得sar命令
sar -n DEV#查看网卡流量,默认10分钟更新一次
sar -n DEV 1 10#一秒显示一次,一共显示10次
sar -n DEV -f /var/log/sa/sa22#查看指定日期的流量日志
Suid,Sgid,sticky bit的作用
Suid:以属主的身份运行程序
Sgid:在目录中创建的文件继承所在目录的属主
Stricky bit:用户只能修改,删除自己的文件
如何搭建局域网
方案一:
小型局域网(50人以内)选择一个二层交换机和一个企业级路由器就可以啦。
中大型局域网(50人以上)选择三层交换机接入和三层核心交换机。
注意事项:按部门划分VLAN,IP地址最好设置成静态的,交换机设置静态路由。
方案二:
小型局域网,可以采用单臂路由的拓扑结构。一台交换机和一台路由器就可以完成一个小型的网络搭建。
大型的局域网就要考虑采用何种动态路由,nat方式,DHCP做在哪里,用户网关在哪里。冗余策略选择等等
网络瘫痪
网络环路,通过生成树协议解决,物理上继续排查有没有人在交换机上接了一个无线路由
win7可以连上的WiFi,而重装上win10却搜索不到的原因(解决)
1. 首先排除是网络的问题 可以用另外的一台电脑或者用手机先连 Wifi 如果另外的设备可以连接 说明就是你电脑的问题 如果其他设备也连不上 可以先从路由器入手排查故障(路由器的纯汉字名称有些设备可能不识别)
2. 如果确定是电脑问题而且之前连接过 重装系统以后连接不上基本就可以确定是无线网卡驱动程序出现问题 这个时候需要重新安装驱动或者重装系统
3. 首先鼠标右击计算机(我的电脑)选择属性-打开设备管理器-找到网卡驱动-尝试卸载驱动(不要勾选删除驱动)-然后重新扫描驱动 会自动重装驱动 到这里应该就差不多好了 如果还是无法连接 wifi 建议重装驱动 去电脑的官网寻找电脑型号匹配的驱动(网卡驱动 for win10)下载后覆盖安装即可 如果找不到 可以用第三方驱动管理软件 例如驱动精灵 驱动大师等等 此法可以解决大多数问题
如果实在不行建议重装系统 重装系统之前做好备份 重装完就解决了
如果企业网络意外瘫痪了,如何开展救助工作
先从自己的工作电脑 ping 内网电脑,
①能 ping 通→内网、交换机、路由 ok;
②部分网段能 ping 通,部分 ping 不通(要修改 ip 地址)检查不通这部分的网络及设备;
③都 ping 不通,检查机房路由,交换机及第一层网线、光纤的连接。
网络异常报错原因
1xx:表示临时响应
100:(继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分
101:(切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换
2xx:成功处理状态码
200 OK
请求已成功。响应返回的信息取决于请求中使用的方法,例如:在响应中发送GET对应于所请求资源的实体;HEAD对应于所请求资源的实体头字段信息只存在于响应报文首部,因为它不会返回报文实体,只返回报文首部;POST返回实体;
201 Created
请求已完成,并导致创建新资源。新创建的资源可以由响应实体中返回的URI引用,具有Location头字段给出的资源的最特定URI。响应应该包括一个实体,其中包含资源特征和位置的列表,用户或用户代理可以从中选择最合适的资源特征和位置。实体格式由Content-Type头字段中给出的媒体类型指定。原始服务器必须在返回201状态代码之前创建资源。如果无法立即执行操作,服务器应该响应202(已接受)响应。
202 Accepted
该请求已被接受处理,但处理尚未完成。该请求最终可能会或可能不会被执行,因为在实际处理时可能不允许该请求。没有用于从诸如此类的异步操作重新发送状态代码的工具。
202回复是故意不承诺的。其目的是允许服务器接受对某些其他进程的请求(可能是每天只运行一次的面向批处理的进程),而不要求用户代理与服务器的连接一直持续到进程完成为止。使用此响应返回的实体应该包括请求的当前状态的指示,以及指*向状态监视器的指针或用户可以期望满足请求的某些估计。
204 No Content*
表示请求已成功处理,但是没有内容返回(就应该没有内容返回的状况)
也就是返回的响应报文中没有报文实体(其实是没有报文实体的主体部分)
浏览器向服务器发送请求后收到了204,那么浏览器页面不会发生更新
一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况
206 Reset Content
表示服务器已经完成了部分GET请求(客户端进行了范围请求)
响应报文中包含Content-Range指定范围的实体内容
3xx:重定向
3XX:表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向
301 永久性转移
浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B),旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址
302短暂性转移
临时重定向,表示请求的资源临时搬到了其他位置
表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。
303 See Other
表示请求资源存在另一个URI,应使用GET定向获取请求资源
303功能与302一样,区别只是303明确客户端应该使用GET访问
303 表示请求的资源路径发生改变,使用GET方法请求新url。她与302的功能一样,但是明确指出使用GET方法请求新url(第一次请求返回的location)。
304(未修改)
自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
如果网页自请求者上次请求后再也没有更改过,您应将服务器配置为返回此响应(称为 If-Modified-Since HTTP 标头)。服务器可以告诉 Googlebot 自从上次抓取后网页没有变更,进而节省带宽和开销。
305(使用代理)
请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。
4xx:请求错误
4XX:这些状态代码表示请求可能出错,妨碍了服务器的处理
400 Bad Request
表示请求报文存在语法错误或参数错误,服务器不理解,服务器不应该重复提交这个请求,需要修改请求内容后再次发送。
原因以及解决思路: 1:前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装;最常见的可能就是后端使用@RequestBody 接收,先仔细排查一遍,不行的话,使用@RequestParam再逐一看一下是否可以封装进去
2:前端提交的到后台的数据应该是json字符串类型,而前端没有将对象转化为字符串类型;这个比较简单,使用JSON.stringify(param) 转换成json字符串
401 Unauthorized
表示发送的请求需要有HTTP认证信息或者是认证失败了
返回401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部以质询用户信息
浏览器初次接受401时,会弹出认证窗口
403 Forbidden
返回403状态码就是,拒绝或者禁止访问。但是,服务器虽然拒绝或者禁止访问,但是它已经理解了你的请求。
具体原因有以下多种:
错误代码:403.1
HTTP 403.1 禁止访问:禁止可执行访问 Internet 信息服务 原因是执行权限不够,解决的方法是: 打开“管理工具”的“Internet 信息服务”,右键选择“WEB站点属性”的“主目录”选项卡,把“执行许可”的选项从“无”改为“纯脚本”就好了。
错误代码:403.2
403.2错误是由于”读取”访问被禁止而造成的。导致此错误是由于没有可用的默认网页并且没有对目录启用目录浏览,或者要显示的 HTML 网页所驻留的目录仅标记为”可执行”或”脚本”权限。
错误代码:403.3
403.3错误是由于”写入”访问被禁止而造成的,当试图将文件上载到目录或在目录中修改文件,但该目录不允许”写”访问时就会出现此种错误。
错误代码:403.4
403.4错误是由于要求SSL而造成的,您必须在要查看的网页的地址中使用”https”。
错误代码:403.5
403.5错误是由于要求使用 128 位加密算法的 Web 浏览器而造成的,如果您的浏览器不支持128位加密算法就会出现这个错误,您可以连接微软网站进行浏览器升级。
错误代码:403.6
403.6错误是由于IP 地址被拒绝而造成的。如果服务器中有不能访问该站点的 IP 地址列表,并且您使用的 IP 地址在该列表中时您就会返回这条错误信息。
错误代码:403.7
403.7错误是因为要求客户证书,当需要访问的资源要求浏览器拥有服务器能够识别的安全套接字层 (SSL) 客户证书时会返回此种错误。
404 Not Found
表示服务器找不到你请求的资源。
405 Method Not Allowed
请求行中指定的方法不允许由Request-URI标识的资源。响应必须包含一个Allow标头,其中包含所请求资源的有效方法列表。
413 Request Entity Too Large
服务器拒绝处理请求,因为请求实体大于服务器愿意或能够处理的请求实体。服务器可以关闭连接以防止客户端继续请求。
如果条件是临时的,服务器应该包括一个Retry-After头字段,以指示它是临时的,并且在客户端可以再次尝试之后。
414 Request-URI Too Long
服务器拒绝为请求提供服务,因为Request-URI比服务器愿意解释的长。这种罕见的情况是只可能当客户端已经不正确地将POST请求转换到具有长查询信息的GET请求中,当客户端已陷入URI重定向“黑洞”发生(例如,一个重定向的URI指向前缀它本身的后缀,或者当服务器受到试图利用固定长度缓冲区来读取或操作Request-URI的某些服务器中存在的安全漏洞的客户端的攻击时。
415 Unsupported Media Type
服务器拒绝为请求提供服务,因为请求的实体采用所请求方法的请求资源不支持的格式。
416(请求范围不符合要求)如果页面无法提供请求的范围,则服务器会返回此状态码
428 Precondition Required (要求先决条件)
先决条件是客户端发送 HTTP 请求时,如果想要请求能成功必须满足一些预设的条件。
一个好的例子就是 If-None-Match 头,经常在 GET 请求中使用,如果指定了 If-None-Match ,那么客户端只在响应中的 ETag 改变后才会重新接收回应。
先决条件的另外一个例子就是 If-Match 头,这个一般用在 PUT 请求上用于指示只更新没被改变的资源,这在多个客户端使用 HTTP 服务时用来防止彼此间不会覆盖相同内容。
当服务器端使用 428 Precondition Required 状态码时,表示客户端必须发送上述的请求头才能执行请求,这个方法为服务器提供一种有效的方法来阻止 'lost update' 问题。
429 Too Many Requests (太多请求)
当你需要限制客户端请求某个服务数量时,该状态码就很有用,也就是请求速度限制。
在此之前,有一些类似的状态码,例如 '509 Bandwidth Limit Exceeded'. Twitter 使用 420 (这不是HTTP定义的状态码)
如果你希望限制客户端对服务的请求数,可使用 429 状态码,同时包含一个 Retry-After 响应头用于告诉客户端多长时间后可以再次请求服务。
431 Request Header Fields Too Large (请求头字段太大)
某些情况下,客户端发送 HTTP 请求头会变得很大,那么服务器可发送 431 Request Header Fields Too Large 来指明该问题。
我不太清楚为什么没有 430 状态码,而是直接从 429 跳到 431,我尝试搜索但没有结果。唯一的猜测是 430 Forbidden 跟 403 Forbidden 太像了,为了避免混淆才这么做的,天知道!
5xx:服务器错误
这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错
500 Internal Server Error
表示服务器执行请求的时候出错了,可能是服务器端的bug,但是也可能是前端的问题,比如后台报了序列化错误,可能就是因为你的前端没有设置content-type=application/json
502 Bad Gateway
服务器在充当网关或代理时,在尝试完成请求时从其访问的上游服务器收到无效响应。
503 Bad Gateway
由于服务器的临时过载或维护,服务器当前无法处理请求。这意味着这是一个暂时的条件,经过一段时间的延迟后会得到缓解。如果已知,延迟的长度可以在Retry-After报头中指示。如果没有给出Retry-After,客户端应该像处理500响应一样处理响应。
注意:503状态代码的存在并不意味着a
服务器必须在变得过载时使用它。有些服务器可能希望
简单地拒绝连接。
504(网关超时)服务器作为网关或者代理,但是没有及时从上游服务器收到请求
505(HTTP版本不受支持)服务器不支持请求中所用的HTTP协议版本
511 Network Authentication Required (要求网络认证)
对我来说这个状态码很有趣,如果你在开发一个 HTTP 服务器,你不一定需要处理该状态码,但如果你在编写 HTTP 客户端,那这个状态码就非常重要。
如果你频繁使用笔记本和智能手机,你可能会注意到大量的公用 WIFI 服务要求你必须接受一些协议或者必须登录后才能使用。
这是通过拦截HTTP流量,当用户试图访问网络返回一个重定向和登录,这很讨厌,但是实际情况就是这样的。
使用这些“拦截”客户端,会有一些讨厌的副作用。在 RFC 中有提到这两个的例子:
如果你在登录WIFI前访问某个网站,网络设备将会拦截首个请求,这些设备往往也有自己的网站图标 ‘favicon.ico'。登录后您会发现,有一段时间内你访问的网站图标一直是WIFI登录网站的图标。
如果客户端使用HTTP请求来查找文档(可能是JSON),网络将会响应一个登录页,这样你的客户端就会解析错误并导致客户端运行异常,在现实中这种问题非常常见。
因此 511 状态码的提出就是为了解决这个问题。
如果你正在编写 HTTP 的客户端,你最好还是检查 511 状态码以确认是否需要认证后才能访问。
网络吞吐量和PPS
这儿输出的指标比较多,我们来看一下它们的含义:
rxpck/s 和 txpck/s 分别是接收和发送的 PPS,单位为包 / 秒。
rxkB/s 和 txkB/s 分别是接收和发送的吞吐量,单位是 KB/ 秒。
rxcmp/s 和 txcmp/s 分别是接收和发送的压缩数据包数,单位是包 / 秒。
%ifutil 是网络接口的使用率,即半双工模式下为 (rxkB/s+txkB/s)/Bandwidth,而全双 工模式下为 max(rxkB/s, txkB/s)/Bandwidth。