分享页面
已经找到“” 的记录2547条
Centos如何强行踢掉某登录用户
 

1.在系统中我们可以用w或者who来查看用户:

[root@linuxidc ~]# who

2.看看那个是自己登录的用户:

[root@linuxidc ~]# who am i

3.接下来使用 pkill 踢掉用户 pts/1

[root@linuxidc ~]# pkill -kill -t pts/1

4.接着用w或者who查看:

Centos使用traceroute排查网络问题
 

本配置适用于centos67版本

通过traceroute命令可以用来排查一些网络的基础问题。

首先yum安装traceroute

yum install traceroute -y

1.命令格式:

traceroute[参数][主机]

2.命令功能:

traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。

具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]

3.命令参数:

-d 使用Socket层级的排错功能。

-f 设置第一个检测数据包的存活数值TTL的大小。

-F 设置勿离断位。

-g 设置来源路由网关,最多可设置8个。

-i 使用指定的网络界面送出数据包。

-I 使用ICMP回应取代UDP资料信息。

-m 设置检测数据包的最大存活数值TTL的大小。

-n 直接使用IP地址而非主机名称。

-p 设置UDP传输协议的通信端口。

-r 忽略普通的Routing Table,直接将数据包送到远端主机上。

-s 设置本地主机送出数据包的IP地址。

-t 设置检测数据包的TOS数值。

-v 详细显示指令的执行过程。

-w 设置等待远端主机回报的时间。

-x 开启或关闭数据包的正确性检验。

4.使用实例:

实例1traceroute 用法简单、最常用的用法

命令:traceroute www.baidu.com

5.说明:

记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.baidu.com ,表示向每个网关发送4个数据包。

有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。

6.Traceroute的工作原理:

Traceroute最简单的基本用法是:traceroute hostname

Traceroute程序的设计是利用ICMPIP headerTTLTime To Live)栏位(field)。首先,traceroute送出一个TTL1IP datagram(其实,每次送出的为340字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTLdatagram,发现第个路由器...... traceroute 每次将送出的datagramTTL 1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?

Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute 收到这个消息时,便知道目的地已经到达了。所以traceroute Server端也是没有所谓的Daemon 程式。

Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。

Centos系统上下文切换的检查思路
 

1.什么是上下文切换(Context Switch)?

上下文切换,有时也称做进程切换或任务切换,是指CPU从一个进程或线程切换到另一个进程或线程。

操作系统可以同时运行多个进程, 然而一颗CPU同时只能执行一项任务,操作系统利用时间片轮转的方式,让用户感觉这些任务正在同时进行。 CPU给每个任务都服务一定的时间, 然后把当前任务的状态保存下来, 在加载下一任务的状态后, 继续服务下一任务。任务的状态保存及再加载, 这段过程就叫做上下文切换。

当一个进程在执行时,CPU的所有寄存器中的值、进程的状态以及堆栈中的内容被称 为该进程的上下文。当内核需要切换到另一个进程时,它需要保存当前进程的 所有状态,即保存当前进程的上下文,以便在再次执行该进程时,能够必得到切换时的状态执行下去。在LINUX中,当前进程上下文均保存在进程的任务数据结 构中。在发生中断时,内核就在被中断进程的上下文中,在内核态下执行中断服务例程。但同时会保留所有需要用到的资源,以便中继服务结束时能恢复被中断进程 的执行。

 

2.上下文切换的消耗?

直接消耗包括: CPU寄存器需要保存和加载,系统调度器的代码需要执行,TLB实例需要重新加载,CPU pipeline需要刷掉。

间接消耗:多核的cache之间得共享数据,间接消耗对于程序的影响要看线程工作区操作数据的大小。

上下文切换通常是计算密集型的。也就是说,它需要相当可观的处理器时间,在每秒几十上百次的切换中,每次切换都需要纳秒量级的时间。所以,上下文切换对系统来说意味着消耗大量的 CPU 时间,事实上,可能是操作系统中时间消耗最大的操作。

 

3.如何检查上下文切换是否频繁?

1)确认CPU使用率

CPU是否处于空闲状态。

2vmstat 1

vmstat的输出可以看到,io项的block_inblock_out是否频繁,system项的每秒中断数(in)和每秒的上下文切换(cs)是否频繁。

3

pidstat -w 1

pidstat上可以看到,每个进程对应的cswch(自愿上下文切换)和nvcswch(非自愿上下文切换)是否频繁。

cswch/s: 每秒任务主动(自愿的)切换上下文的次数,当某一任务处于阻塞等待时,将主动让出自己的CPU资源。
nvcswch/s:
每秒任务被动(不自愿的)切换上下文的次数,CPU分配给某一任务的时间片已经用完,因此将强迫该进程让出CPU的执行权。

4/proc/stat

/proc/stat包含了CPU的活动信息,上下文切换就是其中一项,以ctxt开头,它表示系统开机到目前为止的上下文切换总数。

cat /proc/stat | grep ctxt && sleep 30 && cat /proc/stat | grep ctxt

通过上面的命令,可以计算出每秒上下文切换次数=两者差值/30

通过以上命令即可以定位那个进程上下文切换频繁。

 

4.造成上下文切换频繁的原因?

当前执行任务的时间片用完之后, 系统CPU正常调度下一个任务

当前执行任务碰到IO阻塞, 调度器将挂起此任务, 继续下一任务

多个任务抢占锁资源, 当前任务没有抢到,被调度器挂起, 继续下一任务

用户代码挂起当前任务, 让出CPU时间

硬件中断

Centos系统iftop的安装以及使用
 

Iftop工具主要用来显示本机网络流量情况及各相互通信的流量集合,如单独同哪台机器间的流量大小,非常适合于代理服务器和iptables服务器使用,这样可以方便的查看各客户端流量情况。iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,详细的将会在后面的使用参数中说明。

1.安装iftop-编译安装

如果采用编译安装可以到iftop官网下载最新的源码包。
安装前需要已经安装好基本的编译所需的环境,比如makegccautoconf等。安装iftop还需要安装libpcaplibcurse

安装所需要的依赖包

yum -y install flex byacc libpcap ncurses ncurses-devel libpcap-devel

2.安装步骤

wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz #下载安装包

tar zxvf iftop-0.17.tar.gz #解压

cd iftop-0.17 切换到目录

./configure --prefix=/usr/local/iftop #配置安装目录

make && make install #编译、安装

3.运行iftop,必须以root身份运行效果图如下

监控某网卡:iftop -i eth0 -n

同时显示是什么服务:iftop -i eth0 -n -P

4.iftop相关参数

常用的参数

-i  设定监测的网卡,如:# iftop -i eth1

-B  以bytes为单位显示流量(默认是bits),如:# iftop -B

-n  使host信息默认直接都显示IP,如:# iftop -n

-N  使端口信息默认直接都显示端口号,如: # iftop -N

-F  显示特定网段的进出流量,如# iftop -F 10.10.1.0/24# iftop -F 10.10.1.0/255.255.255.0

-h  (display this message),帮助,显示参数信息

-p  使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;

-b  使流量图形条默认就显示;

-f  这个暂时还不太会用,过滤计算包用的;

-P  使host信息及端口信息默认就都显示;

-m  设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M

进入iftop画面后的一些操作命令(注意大小写)

h切换是否显示帮助;

n切换显示本机的IP或主机名;

s切换是否显示本机的host信息;

d切换是否显示远端目标主机的host信息;

t切换显示格式为2/1/只显示发送流量/只显示接收流量;

N切换显示端口号或端口服务名称;

S切换是否显示本机的端口信息;

D切换是否显示远端目标主机的端口信息;

p切换是否显示端口信息;

P切换暂停/继续显示;

b切换是否显示平均流量图形条;

B切换计算2秒或10秒或40秒内的平均流量;

T切换是否显示每个连接的总流量;

l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;

L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;

j或按k可以向上或向下滚动屏幕显示的连接记录;

123可以根据右侧显示的三列流量数据进行排序;

< 根据左边的本机名或IP排序; >根据远端目标主机的主机名或IP排序;

o切换是否固定只显示当前的连接;

f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!

!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!

q退出监控。

Centos系统安装SpeedTest实现网络测速
 

1.安装pip

wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate

2.执行安装:

python get-pip.py

3.下载speedtest

wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py

增加执行权限

chmod  x speedtest-cli

4.安装SpeedTestpip install speedtest-cli

5.使用测速,

查询安装位置 

which speedtest-cli

以图片方式共享测速结果

/usr/bin/speedtest-cli --share

Centos系统搭建NFS文件共享服务器
 

NFS(Network File System)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享彼此的文件。简单的讲就是可以挂载远程主机的共享目录到本地,就像操作本地磁盘一样,非常方便的操作远程文件。

准备:我们需要两台CentOS7机器,分别做NFS服务器和客户端,配置如下:

NFS服务器ip192.168.10.235

客户端ip192.168.10.202

我们要实现的目标是:在NFS服务器上共享一个目录,在客户端上可以直接操作NFS服务器上的这个共享目录下的文件。

 

1.NFS服务器配置:首先使用yum安装nfs服务

yum -y install rpcbind nfs-utils

2.创建共享目录

在服务器上创建共享目录,并设置权限。

mkdir /data/share/

chmod 755 -R /data/share/

3.配置NFS

nfs的配置文件是 /etc/exports vi /etc/exports在配置文件中加入一行:

/data/share/ 192.168.10.202(rw,no_root_squash,no_all_squash,sync)

这行代码的意思是把共享目录/data/share/共享给192.168.10.202这个客户端ip,后面括号里的内容是权限参数,其中:

rw 表示设置目录可读写。

sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。

no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。

no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。

如果有多个共享目录配置,则使用多行,一行一个配置。保存好配置文件后,需要执行以下命令使配置立即生效:

exportfs -r

4.设置防火墙

如果你的系统没有开启防火墙,那么该步骤可以省略。

NFS的防火墙特别难搞,因为除了固定的port1112049外,还有其他服务如rpc.mounted等开启的不固定的端口,这样对防火墙来说就比较麻烦了。为了解决这个问题,我们可以设置NFS服务的端口配置文件。

修改vi /etc/sysconfig/nfs文件,将下列内容的注释去掉,如果没有则添加:

RQUOTAD_PORT=1001

LOCKD_TCPPORT=30001

LOCKD_UDPPORT=30002

MOUNTD_PORT=1002

保存好后,将端口加入到防火墙允许策略中。执行:

firewall-cmd --zone=public --add-port=111/tcp --add-port=111/udp --add-port=2049/tcp --add-port=2049/udp --add-port=1001/tcp --add-port=1001/udp --add-port=1002/tcp --add-port=1002/udp --add-port=30001/tcp --add-port=30002/udp --permanent

firewall-cmd --reload

5.启动服务

按顺序启动rpcbindnfs服务:

systemctl start rpcbind

systemctl start nfs

加入开机启动:

systemctl enable rpcbind

systemctl enable nfs

nfs服务启动后,可以使用命令 rpcinfo -p 查看端口是否生效。

服务器的后,我们可以使用 showmount 命令来查看服务端(本机)是否可连接:

出现上面结果表明NFS服务端配置正常。

6.客户端配置

客户端只需要安装rpcbind服务即可,无需安装nfs或开启nfs服务。

yum -y install rpcbind

7.客户端挂载远程nfs文件系统

查看服务端已共享的目录:

建立挂载目录,执行挂载命令:

mkdir -p /mnt/share

mount -t nfs 192.168.11.34:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3

如果不加 -onolock,nfsvers=3 则在挂载目录下的文件属主和组都是nobody,如果指定nfsvers=3则显示root

如果要解除挂载,可执行命令:umount /mnt/share

8.开机自动挂载

如果按本文上面的部分配置好,NFS即部署好了,但是如果你重启客户端系统,发现不能随机器一起挂载,需要再次手动操作挂载,这样操作比较麻烦,因此我们需要设置开机自动挂载。我们不要把挂载项写到/etc/fstab文件中,因为开机时先挂载本机磁盘再启动网络,而NFS是需要网络启动后才能挂载的,所以我们把挂载命令写入到/etc/rc.d/rc.local文件中即可。

vim /etc/rc.d/rc.local

在文件最后添加一行:

mount -t nfs 192.168.10.235:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3

保存并重启机器

9.测试验证

查看挂载结果,在客户端输入 df -h

Debian8如何修改静态IP
 

1.编辑文件

vim /etc/network/interfaces

2.修改静态IP

3.重启网卡服务

debian8:

systemctl restart network

debian9:

service networking restart

4.通过ip addr 或者 ifconfig 来查看网卡IP地址 检验是否配置成功

5.Ping www.baidu.com 测试网络连通性

Debian9如何解决ifconfig命令找不到问题
 

Debian 9系统下使用ifconfig命令出现如下图提示信息时,如何设置可以正常使用呢?

1.输入apt install net-tools按回车键安装工具包

2.安装完成后即可正常使用

Debian9如何设置拨号网卡
 

Debian 9系统下如何设置拨号网卡呢?(需先设置宽带账号,可参考教程《Debian 9如何设置宽带账号》)

1.输入vi /etc/ppp/peers/dsl-provider按回车键进入vi编辑

2.找到plugin rp-pppoe.so eth1eth1可以根据实际拨号网卡名称进行修改

3.按“ESC”键输入wq按回车键保存退出vi编辑即可

Debian9如何设置宽带账号
 

Debian 9系统下如何设置宽带账号呢?

1.输入pppoeconf按回车键,进入下一步

2.选择“Yes”按回车键,进入下一步

3.选择“Yes”按回车键,进入下一步

4.将“username”修改为宽带账号,然后按回车键,进入下一步

5.输入宽带密码,然后按回车键,进入下一步

6.选择“Yes”按回车键,进入下一步

7.选择“Yes”按回车键,进入下一步

8.此时提示是否需要在开机时启动连接,可根据需要进行设置,若需要则选择“yes”,选择完成后按回车键,进入下一步

9.询问是否需要立即建立连接,可根据需要进行设置,若需要则选择“yes”,选择完成后按回车键,进入下一步

10.设置完成,按回车键即可

 

扫码添加专属客服

扫码关注公众号