Linux如何查询哪些端口被占用

Linux如何查询哪些端口被占用,第1张

前言

如何确定端口是否在Linux或类unix系统下占用怎么检查哪些端口正在Linux服务器上被占用Linux系统如何使用命令行检查端口是否已经在占用

查询哪些端口正在服务器的网络接口上被占用是非常重要的工作。您需要查询打开端口以检测入侵。除了入侵之外,出于故障排除的目的,可能有必要检查服务器上的其他应用程序是否已经使用了某个端口。例如,您可以在同一系统上安装Apache和Nginx服务器。因此,有必要了解Apache或Nginx是否使用TCP端口80或443。本教程提供了使用netstat、nmap和lsof命令查询正在使用的端口并查看正在使用该端口的应用程序的步骤。

如何查询端口是否在使用中:

检查Linux上被占用的端口和应用程序:

Step1: 打开终端

Step2: 执行以下任意一条命令查看被占用的端口

查看端口22是否被占用:

较新版本的Linux使用以下查询命令:

方法1: 使用lsof命令查询占用端口

先安装lsof命令

RHEL/CentOS系统:

Debian/Ubuntu系统安装lsof命令

使用语法如下

OpenBSD

看到类似这样的输出结果:

sshd是进程名字

TCP 22表示sshd进程占用了TCP 22端口,正在监听中(LISTEN)

1243表示sshd进程号

方法二:使用netstat查询被占用的端口号

较新的Linux发行版已经不再默认集成netstat命令,而是使用新命令ss取代了。

如果要使用netstat命令,需要手动安装net-tools套件:

RHEL/CentOS系统安装net-tools套件,执行以下命令:

Debian/Ubuntu系统执行以下命令:

您可以使用netstat查询被占用的端口和应用程序,如下所示。

执行以下命令查询:

在Linux上,netstat命令已经废弃了一段时间。因此,你需要使用ss命令如下:

或者:

其中ss命令选项如下:

-t : 只显示Linux上的TCP套接字

-u : 在Linux上只显示UDP套接字

-l : 监听套接字。例如,TCP端口22由SSHD服务器打开。

-p : 列出打开套接字的进程名

-n : 不要解析服务名称,即不要使用DNS

FreeBSD/MacOS X netstat 语法

FreeBSD/MacOS X查询被占用的端口

或者

OpenBSD netstat 语法

OpenBSD查询被占用的端口

或者

方法三:使用`nmap`命令查询Linux被占用的端口

默认情况下,Linux发行版并没有默认安装nmap命令,

CentOS系统安装nmap

Ubuntu系统安装nmap

使用nmap查询本机被占用的端口

查询Linux系统被占用的UDP端口

查询Linux系统被占用的TCP端口

你可以同时查询被占用的TCP和UDP端口

结论:

本教程解释了如何在Linux系统上使用命令行查询TCP或者UDP端口是否被占用。有关更多信息,请参见nmap命令和lsof命令页面

Linux内核下进程切换

Linux切换并没有使用X86CPU的切换方法,Linux切换的实质就是cr3切换(内存空间切换,在switch_mm函数中)+ 寄存器切换(包括EIP,ESP等,均在switch_to函数中)。这里我们讲述下switch_to主流程:

1、 在switch_mm函数中将new_task-pgd设置到cr3寄存器中,实现页表切换,由于每个进程3-4G的页表映射机制完全一样(从内核页表中直接复制过来的),故这里虽然切换了pgd,但是并无影响,只是在任务回到用户空 间中时,才会发生变化,因为每个任务在0-3G中的页表映射都是各自独立的;

2、 压入esi edi ebp到cur_task堆栈中;

3、 将esp寄存器中的值保存到cur_tasktask_structthreadesp中,也就是将cur_task切换时的堆栈指针保存起来;

4、 将new_tasktask_structthreadesp中的值设置到esp寄存器中,这里的new_tasktask_structthreadesp中的值就是new_task上一次被换出时的堆栈指针,现在被恢复了,2和3结合实现了从cur_task到new_task的堆栈切换;

5、 将1f地址设置到cur_tasktask_structthreadeip中,当下次cur_task恢复运行时,将会从1f处开始运行,下面阐述了这种原理;

6、 将new_tasktask_structthreadeip压入到new_task的堆栈中,这里new_tasktask_structthreadeip的值就是1f,因为从4中可知,new_task上一次被换出时,其也是和现在的cur_task类似,1f地址被设置到new_tasktask_structthreadeip中;

7、 随后CPU跳转到__switch_to函数中开始执行,注意这里使用的是jmp,不是call,call会pusheip,而jmp不会,由于__switch_to是函数,当CPU执行完该函数后,最后一条指令必然为iret,该指令会popeip,从5中可以知道,此时new_task堆栈中的镜像为[, esi,edi,ebp,eip(1f)],故popeip将值eip(1f)设置到eip寄存器中,这样当iret执行完毕后,CPU将从eip处继续执行,也就是从1f处继续执行;

8、 此时已经在new_task的执行环境中了,pop ebp, pop edi, popesi,回到schedule函数中,当返回用户空间中时,由于new_task用户空间的eip,ss,esp等均被从new_task的堆栈中弹出到对应寄存器中,从而new_task得以顺利执行。

Linux 前后台进程切换

当你用shell启动一个程序时,往往他是在前台工作的。 例如经常用PUTTY连接到远程服务器执行脚本的时候,如果本地网络中断后,这个时候前台进程就结束了,比较的懊恼,必须重新执行。因此有必要进行前后台进程的切换。

例如直接在终端里输入firefox,那么会打开firefox,但当你关闭此终端或者ctrl+c强制终止时,firefox也随机关闭了。

你可以在执行时后面加一个,这样就在后台工作了。Shell支持作用控制,有以下命令:

(1) command 让进程在后台运行

(2) jobs –l 查看后台运行的进程

(3) fg %n 让后台运行的进程n到前台来

(4) bg %n 让进程n到后台去;

PS:"n"为jobs查看到的进程编号。

1、执行命令切换至后台

在Linux终端运行命令的时候,在命令末尾加上符号,就可以让程序在后台运行

代码如下:

root@Ubuntu$ /tcpserv01

2、切换正在运行的程序到后台

如果程序正在前台运行,可以使用Ctrl+z 选项把程序暂停,然后用 bg %[number]命令把这个程序放到后台运行,这个步骤分为3步,如下:

21暂停程序运行CTRL+Z

ctrl + z跟系统任务有关的,ctrl + z可以将一个正在前台执行的命令放到后台,并且暂停。

代码如下:

[Oracle@linuxidc ~]$ sh inssh

[1]+Stopped inssh

22查看暂停的程序

察看jobs使用jobs或ps命令可以察看正在执行的jobs。

代码如下:

[oracle@linuxidc ~]$ jobs -l

[1]+ 4524Stopped inssh

jobs命令执行的结果,+表示是一个当前的作业,减号表是是当前作业之后的一个作业。

jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped,Terminated

23切换程序至后台

bg将一个在后台暂停的命令,变成继续执行如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出

代码如下:

[oracle@linuxidc ~]$ bg %1

[oracle@linuxidc ~]$ jobs -l

[1]+ 4524Running inssh

24切换程序至前台

也可以用 fg %[number]指令把一个程序掉到前台运行

代码如下:

[oracle@linuxidc ~]$ fg %1

/tcpserv01

25终止后台程序

也可以直接终止后台运行的程序,使用 kill 命令

代码如下:

[oracle@linuxidc ~]$ kill %1

但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息。

linux系统因其优秀的稳定性和安全性,被越来越多的企业服务器应用。随之而来的越来越多的人学习使用linux,而做为linux系统的基础linux命令更是必学无疑的,小编今天跟大家分享一篇小编精心编辑的文章“linux命令-文件管理命令”,希望能帮到大部分的linux初学者。

cat 功能:有从磁盘创建文件的功能(但不具备编辑功能),但主要功能还是2个或者以上文件的合并。 常配合使用参数: -n 或--number 由1 开始对所有输出的行数编号。 -b 或--number-nonblank 和-n 相似,只不过对于空白行不编号。 使用方法: Cat –n diannaob1diannaob2,把diannaob1里的内容加上行号以后并入diannaob2。 Cat –b diannaob1 diannaob2diannaob3,对diannaob1和diannaob2里的内容加上行号(空白行不加)并入diannaob3。

chattr 功能:给指定文件添加,去掉,赋予属性。 常配合使用参数: -R 递归处理,将指定目录下的所有文件及子目录一并处理。 -v版本编号 设置文件或目录版本。 -V 显示指令执行过程。 +属性 开启文件或目录的该项属性。 -属性 关闭文件或目录的该项属性。 =属性 指定文件或目录的该项属性。 a:让文件或目录仅供附加用途。 b:不更新文件或目录的最后存取时间。 c:将文件或目录压缩后存放。 d:将文件或目录排除在倾倒操作之外。 i:不得任意更动文件或目录。 s:保密性删除文件或目录。 S:即时更新文件或目录。 u:预防以外删除。 使用方法: 比如diannaob1这个文件为了方式被其他linux用户删除,可以给其添加预防以外删除属性。 Chattr +u diannaob1

chgrp 功能:更改目录或者文件所属的群组。 使用方法: 比如把diannaob1文件移动到diannaob组里:Chgrp diannaob diannaob1

cmp 功能:用来比较文件之间的不同,如果相同不返回任何信息,不同的地方列出字符和列数编号。 常配合使用参数: -c或--print-chars除了标明差异处的十进制字码之外,一并显示该字符所对应字符。 -i字符数目或--ignore-initial=字符数目指定一个数目。 -l或--verbose标示出所有不一样的地方。 -s或--quiet或--silent不显示错误信息。 -v或--version显示版本信息。 --help在线帮助。 使用方法: 比如比较文件diannaob1和diannaob2有什么同 Cmp diannaob1 diannaob2配合使用的参数加在cmp和文件之间。

file 功能:辨识文件类型。 常配合使用参数: -b列出辨识结果时,不显示文件名称。 -c详细显示指令执行过程,便于排错或分析程序执行的情形。 -f名称文件指定名称文件,其内容有一个或多个文件名称呢感,让file依序辨识这些文件,格式为每列一个文件名称。 -L直接显示符号连接所指向的文件的类别。 -m魔法数字文件指定魔法数字文件。 -v显示版本信息。 -z尝试去解读压缩文件的内容。 使用方法: 比如要辨别diannaob1的文件类型 File diannaob1 文件位置

find 功能:根据各种需求(名称、类别、时间、大小、权限等)在指定的目录内寻找符合要求的文件。 常配合使用参数: -mount, -xdev : 只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案 -amin n : 在过去n 分钟内被读取过 -anewer file : 比档案file 更晚被读取过的档案 -atime n : 在过去n 天过读取过的档案 -cmin n : 在过去n 分钟内被修改过 -cnewer file :比档案file 更新的档案 -ctime n : 在过去n 天过修改过的档案 -empty : 空的档案-gid n or -group name : gid 是n 或是group 名称是name -ipath p, -path p : 路径名称符合p 的档案,ipath 会忽略大小写 -name name, -iname name : 档案名称符合name 的档案。iname 会忽略大小写 -size n : 档案大小是n 单位,b 代表512 位元组的区块,c 表示字元数,k 表示kilo bytes,w 是二个位元组。-type c : 档案类型是c 的档案。 d: 目录 c: 字型装置档案 b: 区块装置档案 p: 具名贮列 f: 一般档案 l: 符号连结 使用方法: 将目前目录及其子目录下所有延伸档名是c 的档案列出来。 find -name "c" 将目前目录其其下子目录中所有一般档案列出 find -ftype f 将目前目录及其子目录下所有最近20 分钟内更新过的档案列出find -ctime -20

git 功能:文字模式下的文件管理员,进入之后,可以进行各种文件的操作。 常配合使用参数:F1 :执行info指令,查询指令相关信息,会要求您输入欲查询的名称。 F2 :执行cat指令,列出文件内容。 F3 :执行gitview指令,观看文件内容。 F4 :执行vi指令,编辑文件内容。 F5 :执行cp指令,复制文件或目录,会要求您输入目标文件或目录。 F6 :执行mv指令,移动文件或目录,或是更改其名称,会要求您输入目标文件或目录。 F7 :执行mkdir指令,建立目录。 F8 :执行rm指令,删除文件或目录。 F9 :执行make指令,批处理执行指令或编译程序时,会要求您输入相关命令。 F10 :离开git文件管理员。

cut 功能:用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出。 配合使用参数: -b 字节(bytes) -c 字符(characters) -f 域(fields) 使用方法: 如日期:dc oct 10 21:15:54 PDT 2012 Date |cut –b 1-4  输出dc o,表示取前4个字节,其中空格也算一个字节。 Date |cut –c 1-4  输出dc o,看似跟-b没有区别,但是如果日期换成汉字就有区别了,因为一个汉字算3个字节。 多个定位之间用逗号隔开: Date |cut –b 1-4,6  输出前4个字节和第6个字节:dc ot 分割域: 如: service1:pts/0:Oct 9 20:27: (21195114235) service2:pts/1:Oct 9 21:06: (21880203242) service3:pts/2:Oct 9 14:35: (21880203242) service4:pts/3:Oct 9 21:07: (21880213242) service5:pts/4:Oct 9 21:07: (21880213242) service6:pts/5:Oct 9 21:45: (583120519) cut –d: -f1 ftxt 把ftxt这个文件按:分割成域,取域1 输出: service1 service2 service3 service4 service5 service6 linux学习:准信培训中心(trainingzhunxinnet) 2in 功能:创建连接(类似于window下创建超链接) 使用方法: 把将目录/usr/menggc/mub l下的文件m2c链接到目J/usr/1iu下的文件a2c In /usr/menggc/mub l/m2c J/usr/1iu/a2c  本来J/usr/1iu目录下没有a2c文件,当链接成功时就会出现a2c文件。 In 选项源文件目标文件

less 功能:查看文件 使用方法: Less 文件名 Less的作用和more差不多,不同的是less 允许使用者往回卷动,查看已经看过的部分。

名称:locate 使用权限:所有使用者 使用方式: locate [-q] [-d ] [--database=] locate [-r ] [--regexp=] locate [-qv] [-o ] [--output=] locate [-e ] [-f ] [-l ] [-c] [-U ] [-u] locate [-Vh] [--version] [--help] 说明: locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。在一般的distribution 之中,资料库的建立都被放在contab 中自动执行。 一般使用者在使用时只要用 # locate your_file_name 的型式就可以了。参数: -u -U 建立资料库,-u 会由根目录开始,-U 则可以指定开始的位置。 -e 将排除在寻找的范围之外。 -l 如果是1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为locate 必须至实际的档案系统中取得档案的权限资料。 -f 将特定的档案系统排除在外,例如我们没有到理要把proc 档案系统中的档案放在资料库中。 -q 安静模式,不会显示任何错误讯息。 -n 至多显示个输出。 -r 使用正规运算式做寻找的条件。 -o 指定资料库存的名称。 -d 指定资料库的路径 -h 显示辅助讯息 -v 显示更多的讯息 -V 显示程式的版本讯息范例: locate chdrv:寻找所有叫chdrv 的档案 locate -n 100 aout:寻找所有叫aout 的档案,但最多只显示100 个 locate -u:建立资料库

名称:more 使用权限:所有使用者 使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames] 说明:类似cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与vi 相似),使用中的说明文件,请按h 。 参数: -num 一次显示的行数 -d 提示使用者,在画面下方显示[Press space to continue, q to quit] ,如果使用者按错键,则会显示[Press h for instructions] 而不是哔声 -l 取消遇见特殊字元^L(送纸字元)时会暂停的功能 -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上) -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容 -c 跟-p 相似,不同的是先显示内容再清除其他旧资料 -s 当遇到有连续两行以上的空白行,就代换为一行的空白行 -u 不显示下引号(根据环境变数TERM 指定的terminal 而有所不同) +/ 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示 +num 从第num 行开始显示 fileNames 欲显示内容的档案,可为复数个数 范例: more -s testfile 逐页显示testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。 more +20 testfile 从第20 行开始显示testfile 之档案内容。

名称:mv 使用权限:所有使用者 使用方式: mv [options] source dest mv [options] source directory 说明:将一个档案移至另一档案,或将数个档案移至另一目录。 参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档。 范例: 将档案aaa 更名为bbb: mv aaa bbb 将所有的C语言程式移至Finished 子目录中: mv -i c

名称:rm 使用权限:所有使用者 使用方式:rm [options] name 说明:删除档案及目录。 把计: -i 删除前逐一询问确认。 -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。 -r 将目录及以下之档案亦逐一删除。 范例: 删除所有C语言程式档;删除前逐一询问确认: rm -i c 将Finished 子目录及子目录中所有档案删除: rm -r Finished

名称:split 使用权限:所有使用者 使用方式:split [OPTION] [INPUT [PREFIX]] 说明:将一个档案分割成数个。而从INPUT 分割输出成固定大小的档案,其档名依序为PREFIXaa, PREFIXab;PREFIX 预设值为`x。若没有INPUT 档或为`-,则从标准输入读进资料。 匡兜: -b, --bytes=SIZE SIZE 值为每一输出档案的大小,单位为byte。 -C, --line-bytes=SIZE 每一输出档中,单行的最大byte 数。 -l, --lines=NUMBER NUMBER 值为每一输出档的列数大小。 -NUMBER 与-l NUMBER 相同。 --verbose 于每个输出档被开启前,列印出侦错资讯到标准错误输出。 --help 显示辅助资讯然后离开。 --version 列出版本资讯然后离开。 SIZE 可加入单位: b 代表512, k 代表1K, m 代表1 Meg。 范例: PostgresSQL 大型资料库备份与回存: 因Postgres 允许表格大过你系统档案的最大容量,所以要将表格dump 到单一的档案可能会有问题,使用split进行档案分割。 % pg_dump dbname | split -b 1m - filenamedump 重新载入 % createdb dbname % cat filenamedump | pgsql dbname

名称:touch 使用权限:所有使用者 使用方式: touch [-acfm] [-r reference-file] [--file=reference-file] [-t MMDDhhmm[[CC]YY][ss]] [-d time] [--date=time] [--time={atime,access,use,mtime,modify}] [--no-create] [--help] [--version] file1 [file2 ] 说明: touch 指令改变档案的时间记录。ls -l 可以显示档案的时间记录。 参数: a 改变档案的读取时间记录。 m 改变档案的修改时间记录。 c 假如目的档案不存在,不会建立新的档案。与--no-create 的效果一样。 f 不使用,是为了与其他unix 系统的相容性而保留。 r 使用参考档的时间记录,与--file 的效果一样。 d 设定时间与日期,可以使用各种不同的格式。 t 设定档案的时间记录,格式与date 指令相同。 --no-create 不会建立新档案。 --help 列出指令格式。 --version 列出版本讯息。 范例: 最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。 touch file touch file1 file2 将file 的时间记录改为5 月6 日18 点3 分,公元两千年。时间的格式可以参考date 指令,至少需输入MMDDHHmm ,就是月日时与分。 touch -c -t 05061803 file touch -c -t 050618032000 file 将file 的时间记录改变成与referencefile 一样。 touch -r referencefile file 将file 的时间记录改成5 月6 日18 点3 分,公元两千年。时间可以使用am, pm 或是24 小时的格式,日期可以使用其他格式如6 May 2000 。 touch -d "6:03pm" file touch -d "05/06/2000" file touch -d "6:03pm 05/06/2000" file

名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source directory 说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。 把计: -a 尽可能将档案状态,权限等资料都照原状予以复制。 -r 若source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。 -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。 范例: 将档案aaa 复制(已存在),并命名为bbb: cp aaa bbb 将所有的C语言程式拷贝至Finished 子目录中: cp c Finished

指令名称:ln 使用权限:所有使用者 使用方式:ln [options] source dist,其中option 的格式为: [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}] [--help] [--version] [--] 说明:Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种:硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。 ln source dist 是产生一个连结(dist)到source,至于使用硬连结或软链结则由参数决定。 不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。 -f:链结时先将与dist 同档名的档案删除-d:允许系统管理者硬链结自己的目录-i:在删除与dist 同档名的档案时先进行询问-n:在进行软连结时,将dist 视为一般的档案-s:进行软链结(symbolic link)-v:在连结之前显示其档名-b:将在链结时会被覆写或删除的档案进行备份-S SUFFIX:将备份的档案都加上SUFFIX 的字尾-V METHOD:指定备份的方式--help:显示辅助说明--version:显示版本 范例: 将档案yy 产生一个symbolic link:zz ln -s yy zz 将档案yy 产生一个hard link:zz ln yy xx

一、获取源代码包并进行解压

从samba的官方网站可以下载最新的samba源代码包。下面我们以samba-359targz的源代码包作为案例进行解析。本例中,我们将源代码包放在目录/home/samba下,然后执行下面的命令进行解压缩。

代码如下:

# tar –xzvf samba-359targz

二、配置configure

对源代码包进行解压缩后,进入目录

代码如下:

# cd /home/samba/samba-359/source3

然后执行下面的命令进行配置。

代码如下:

# /configure

可能在刚开始时,该目录下没有configure文件,此时可先执行下面的命令

代码如下:

# /autogen-sh

此时要求系统安装了autoconf、automake等工具。

在运行上面的配置命令之前,我们可以通过命令

代码如下:

# /configure –-help

来查看配置命令的一些选项。

三、生成与安装make make install

在环境配置命令/configure成功执行后,可以运行命令

代码如下:

# make

来生成二进制可执行文件,这可能需要两到三分钟。成功生成可执行文件后,可以通过下面命令

代码如下:

#make install

来进行安装。系统默认的安装路径是/usr/local/samba

四、配置动态链接库路径

安装完成后,我们需要配置动态链接库路径,因为运行samba的进行smbd和nmbd需要到目录/usr/local/samba/lib下的动态链接库文件。但是该目录不是系统默认的动态链接库文件搜索路径,于是我们需要将该目录添加到文件ldsoconf中。执行下面的命令

代码如下:

# vi /etc/ldsoconf

打开ldsoconf文件,并在该文件中加入下面这一行内容。

代码如下:

/usr/local/samba/lib

然后执行命令

代码如下:

# ldconfig

来更新动态链接库缓冲。

五、samba配置文件smbconf

samba在运行过程中需要用到配置文件smbconf。smbconf配置文件是samba最重要的配置文件,该文件定义了samba的安全机制、文件共享和打印共享的目录和参数以及其他一些系统配置功能。

配置文件smbconf的默认路径是/usr/local/samba/lib/smbconf,我们可以在运行smbd进程时,通过-s选项来执行特定的smbconf文件(具体说明见下一节),一般不推荐使用-s选项,因为其配置工具,如smbclient、testparm等默认都是读取/usr/local/samba/lib/smbconf文件。下面我们以一个简单的配置文件进行说明,其路径为/etc/samba/smbconf。

代码如下:

[global]

workgroup = MYGROUP

server string = Samba Server %v

security = user

log file = /var/log/samba/%mlog

passdb backend = smbpasswd

smb passwd file = /etc/samba/smbpasswd

[root]

path = /

valid users = root

writeable = yes

[public]

path = /data

guest ok = yes

read only = yes

上面配置文件定义了root和public两个文件共享服务。关于上面这个配置文件的具体细节,我们这里不做详细的论述。这里主要说明的一点:在samba 3023版本以前验证用户密码的默认backend是smbpasswd,而3023版本之后的默认backend是tdbsam。我们可以通过参数passdb backend来选择特定的backend。在使用smbpasswd时默认读取的密码文件时/usr/local/samba/private/smbpasswd,我们可以通过smb passwd file来指定特定的密码文件。

在配置完smbconf文件后,我们可以运行testparm(目录/usr/local/samba/lib下)命令来对smbconf文件进行语法检查,其会检测出哪些参数名无法识别等问题。

六、启动samba

samba有两个主要的进程smbd和nmbd。smbd进程提供了文件和打印服务,而nmbd则提供了NetBIOS名称服务和浏览支持,帮助SMB客户定位服务器,处理所有基于UDP的协议。

配置smbconf文件后,在开始运行samba的服务进程之前。我们需要先做一些准备工作。运行smbpasswd命令(在目录/usr/local/samba/bin下)

代码如下:

# /smbpasswd –a root

向smbconf文件中指定的/etc/samba/smbpasswd文件中添加root用户以及密码信息。关于smbpasswd文件的详细内容介绍见相关文档。

然后运行命令

代码如下:

# service iptables stop

关闭防火墙,因为防火墙可能会阻止用户访问该机器。下面是运行samba的服务进程smbd和nmbd

代码如下:

# /usr/local/samba/sbin/smbd –D –s /etc/samba/smbconf

# /usr/local/samba/sbin/nmbd –D –s /etc/samba/smbconf

上面的-D选项指定smbd和nmbd以守护进程的方式启动,并且通过-s选项指定了特定的配置文件/etc/samba/smbconf。以守护进程方式启动smbd和nmbd的优势是响应速度快,但是要关闭的话只能kill掉。当然我们可以通过脚本来执行这些操作,这里就不提供脚本了。

七、smbclient进行测试检查

在启动samba之后,我们可以在本机使用smbclient(目录/usr/local/samba/bin下)来进行测试。下面命令

代码如下:

# cd /usr/local/samba/bin

# /smbclient –L //127001

可以列出本samba服务器所提供的服务列表,本例运行结果如下:

代码如下:

[root@localhost bin]# /smbclient –L //127001

Enter root’s password:

Domain=[MYGROUP] OS=[Unix] Server=[Samba 359]

p Sharename Type Comment

--------- ------- -------

IPC$ IPC IPC Service (Samba Server 359)

public Disk

root Disk

pDomain=[MYGROUP] OS=[Unix] Server=[Samba 359]

p Server Comment

----------- -------

LOCALHOST Samba Server 359

Workgroup Master

------------ -------

MYGROUP LOCALHOST

当然也可以通过smbclient来访问samba服务器提供的服务,其命令格式如下:

代码如下:

# /smbclient “//serverAdderss/aservice” –U username

其中serverAddress是要访问的samba服务器的IP地址,aservice指定samba服务器上提供的某个服务名称,选项-U username指定要以哪个用户名来访问samba服务器。例如

代码如下:

[root@localhost bin]# /smbclient “//127001/root” –U root

Enter root’s password: ; #这里输入samba用户root的密码

Domain=[MYGROUP] OS=[Unix] Server=[Samba 359]

smb: ; #访问成功,输入相关命令进行操作

上面个smb: 表明了访问成功,此时我们可以输入一些命令来在samba服务器上进行操作,比如ls、mkdir等。q或quit命令执行退出,并断开连接。

八、在Windows客户端访问samba服务器

在Windows客户端,可以在网上邻居中通过新建网上邻居来访问,或者在开始——运行中输入192168134root来访问samba服务器192168134上面提供的root服务。

九、重要选项说明

全局选项:

全局选项用于[global]的

   选项定义中,其用于说明samba服务器的一些基本属性。其有些选项可以被其他

   

中的选项定义覆盖。

workgroup = MYGROUP

定义samba服务器所在的工作组或者域(如果设置security = domain的话)。

server string = Samba server

设定samba服务器的描述,通过网络邻居访问时可在备注中查看到该描述信息。

hosts allow = host (subnet)

设定允许访问该samba服务器的主机IP或网络,该选项的值为列表类型,不同的项目之间使用空格或逗号隔开,例如hosts allow = 19216830, 19216811,该选项设置允许主机19216811以及子网19216830/24内的所有主机访问该samba服务器。

hosts deny = host (subnet)

设定不允许访问该samba服务器的主机IP或网络,其格式与hosts allow一样。

guest account = guest

设定了游客的账号,在游客访问guest ok = yes的共享服务时,samba服务器将设置客户端以该游客账号来访问共享。

log file = MYLOGFILE

设定记录文件的位置。

max log size = size

设定记录文件的大小,单位为KB,如果设置为0则表示无大小限制。

security =

设定samba服务器的安全级,其有四种安全级别:share、user、server和domain,默认为user。关于这四种安全级别的详细信息,请查看相关文档。

password server = ServerIP

设定了用户账号认证服务器IP,其在设定security = server时有效。

encrypt passwords = yes | no

设定是否对密码进行加密。如果不对密码进行加密的话,在认证会话期间,客户端与服务器传递的是明文密码。但有些Windows系统默认情况下,不支持明文密码传输。

passdb backend = smbpasswd | tdbsam | ldapsam

设定samba服务器访问和存储samba用户账号的后端,在samba-30。23之前的默认值为smbpasswd,而之后的默认值为tdbsam。

smb passwd file =

设定samba的用户账号文件。对于源代码安装的samba,在samba-3023之前,其默认值为/user/local/samba/private/smbpasswd;而samba-3023之后,其默认值为/usr/local/samba/private/passwdtdb。

include = smbconfFile

通过include选项可以包含其他配置文件,通过该选项和一些samba定义的变量可以设定与不同机器相关的配置。

local master = yes | no

设定该samba服务器是否试图成为本地主浏览器,默认值为yes。若设置为no,则该samba服务器永远不可能成为本地主浏览器,而设置为yes不代表其一定能成为本地主浏览器,只是让其能参与本地主浏览器的选举。

os level = N

N是一个整数,设定了该samba服务器参加本地主浏览器选举时的权重,其值越大,权重越大。os level = 0时,该服务器将失去选举的机会。

domain master = yes | no

设定samba服务器成为域浏览器。域浏览器从各个本地主浏览器处获取浏览列表,并将整个域的浏览列表传递给各个本地主浏览器。

preferred master = yes | no

设定该samba服务器是否为工作组里的首要主浏览器,如果设置为yes,则在nmbd启动时,将强制一个浏览选择。

局部选项:

局部选项为除了global外的各个

   中的参数。其定义了共享服务的属性。

comment =

设定共享服务的描述信息。

path =

设定共享服务的路径,其中可以结合samba预定义的变量来设置。

hosts allow = host(subnet)

hosts deny = host(subnet)

与全局的hosts allow和hosts deny含义相同,其会覆盖全局的设置。

read only = yes | no

设定该共享服务是否为只读,该选项有一个同义选项writeable。

user = user(@group)

设定所有可能使用该共享服务的用户,可以使用@group来设置群组group中的所有用户账号。该选项的值为列表,不同的项目之间使用空格或逗号隔开。在设置security = share时,客户端要访问某共享服务时提供的密码会与该选项指定的所有用户进行一一配对认证,若某用户认证通过,则以该用户权限进行共享服务访问,否则拒绝客户端的访问(设置security = share不是允许游客访问,只有guest ok = yes才是允许游客访问,切记!!!)。

valid users = user(@group)

设定能够使用该共享服务的用户和组,其值的格式与user选项一样。

invalid users = user(@group)

设定不能够使用该共享服务的用户和组,其值的格式与user选项一样。

read list = user(@group)

设定对该共享服务只有读取权限的用户和组,其值的格式与user选项一样。

write list = user(@group)

设定对该共享服务拥有读写权限的用户和组,其值的格式与user选项一样。

admin list = user(@group)

设定对该共享服务拥有管理权限的用户和组,其值的格式与user选项一样。

public = yes | no

设定该共享服务是否能够被游客访问,其同义选项有guest ok。

create mode = mode

mode为八进制值,如0755,其默认值为0744。该选项指定的值用于过滤新建文件的访问权限,新建文件的默认权限将与create mode指定的值进行按位与操作,将结果再与force create mode指定的值进行按位或操作,得到的结果即为新建文件的访问权限。

force create mode = mode

mode为八进制值,默认为0000。其作用参考选项create mode。

directory mode = mode

mode为八进制值,默认为0755。该选项指定的值用于过滤新建目录的访问权限,新建目录的默认权限将与directory mode指定的值进行按位与操作,将结果再与force directory mode指定的值进行按位或操作,得到的结果即为新建目录的访问权限。

force directory mode = mode

mode为八进制值,默认为0000。该选项的作用参考选项directory mode。

force user = user

强制设定新建文件的属性onwer。若存在一个目录,其允许guest可以写,则guest就可以删除。但设定force user为其他用户,并设置create mode = 0755,则gues用户不能够删除其新建文件。

上面只是简单的介绍了一些重要的选项,并且没有讨论有关[printers]的选项说明,更多选项请man smbconf进行查阅。

   

centosdm-0如何进入?

我的:centos中dm-0进入方法是:

cd/

我的分析:

可以cd/dev/mapper查看dm-0的映射关系,应该查看到是cl-root映射到了dm-0。

或者执行dmsetupls命令及dmsetupinfo命令查看到dm-0设备映射到的LV:cl-root

通过lsblk命令可以查看到cl-root的逻辑分区,对应的盘符是/。

所以dm-0对应的是Linux系统的根目录,执行cd/即可进入dm-0设备。

linux常用的系统工具?

Linux用户常用的10个工具,其中包括网络监控、系统审计或其它有用命令,这10个Linux工具可以帮助大家提高工作和使用效率,非常实用。分别如下:

1w

对,你没看错,就是w命令。使用该命令我们可以查看到当前登录系统的用户是谁,以及执行了哪些命令。

2nmon

Nmon是一个可以监控当前系统性能的小工具,使用之前需要先用如下命令进行安装:

sudoapt-getinstallnmon

安装好后执行nmon命令即可打开:

nmon

nmon可以查看网络、CPU、内存和磁盘的使用情况。

打开之后按c查看CPU信息:

打开之后按n查看网络信息:

磁盘空间监控(磁盘使用率)是IT运维管理中十分重要的监控项目之一,主要监控计算机的逻辑磁盘空间使用率,在一些较大增长率的系统(比如Oracle表空间的分区、访问日志记录分区等)中对磁盘空间的监控显得十分重要。

哲涛SUM服务器监控软件可以对Windows的磁盘空间、Linux的磁盘空间、AIX的磁盘空间、Solaris的磁盘空间、HP-UNIX的磁盘空间、FreeBSD的磁盘空间以及任何GNULinux版本的磁盘空间进行监控。SUM服务器监控软件中磁盘空间监控主要包括磁盘空间使用率指标、磁盘已用空间、磁盘剩余空间以及磁盘总空间等的监控项目。

磁盘空间使用率监控-SUM服务器监控软件

3ncdu

ncdu命令可以用来查看和分析Linux中各目录对磁盘空间占用情况的工具,请使用如下命令进行安装:

apt-getinstallncdu

安装好后执行如下命令即可从根目录开始分析:

ncdu/

注意:执行上述命令会占用大量磁盘I/O

分析完成后,会生成类似如下截图的输出:

我们可以在结果界面按n按名称进行排序或按s按大小进行排序。

SUM服务器监控软件对Linux的监控是SUM最基本的功能之一。

哲涛SUM服务器监控软件作为集中监控平台类软件,它对各种Linux操作系统可以进行集中、统一的监控,它主要对Linux的CPU使用率、内存使用率、磁盘空间使用、进程等进行统一的监控。在SUM服务器监控软件中,不仅可以对Linux系统基本性能进行监控,同时还可以对Linux一定的集中管理,比如执行Linux的命令、重启Linux服务器、重启某些进程等。

Linux监控、Linux服务器监控、LinuxCPU监控、Linux内存监控、Linux磁盘监控

4slurm

slurm是一个网卡带宽监控命令行实用程序,它会自动生成ASCII图形输出。使用之前先用如下命令进行安装:

apt-getinstallslurm

使用如下命令进行输出:

slurm-i

slurm界面中可以执行如下选项:

◆I:显示lx/tx状态

◆c:切换到经典界面

◆r:手动刷新界面

◆q:退出工具

5findmnt

Findmnt是一个Linux内置的命令行工具,它主要用于查找挂载的文件系统状态。Findmnt可以查看到当前系统中已挂载的设备,在必要时还可进行mount或unmount操作。

执行findmnt命令后会看到如下输入:

当然,还有如下参数可用:

◆findmnt-l:以列表方式进行输出

◆findmnt-s:输出fstab中挂载的设备

◆findmnt-text4:按文件系统类型进行输出

6dstat

dstat是一个可以非常灵活使用和进行组合使用的工具,它可用于监控内存、进行、网络及磁盘性能,可用于替代ifstat、iostat、dmstat等工具。使用之前需先执行如下命令进行安装:

apt-getinstalldstat

执行如下命令可以看到所有监控数据:

dstat

其可选参数非常多,常用的有:

◆dstat-c:监控CPU

◆dstat-cdl-Dsda1:监控CPU详细信息

◆dstat-d:监控磁盘

7saidar

saidar是另一个CLI系统数据监控和统计工具,可提供有关磁盘、网络、存储和SWAP的监控信息。使用之前需先使用如下命令进行安装:

sudoapt-getinstallsaidar

安装完成后可直接执行saidar进行输出,但我们通常使用带参数的命令生成带颜色输出:

saidar-c

8ss

ss全称socketstatistics,是一个可以替代netstat的网络连接查看工具。

直接执行ss即可进行查看:

常用参数有:

ss-Atcp:指定查看协议

ss-ltp:显示进程名称和PID

9ccze

ccze非常有用,它可以用不同颜色高亮日志,协助管理员进行区分和查看分析。使用之前需先使用如下命令进行安装:

apt-getinstallccze

我们可以使用类似如下方式进行使用:

tailf/var/log/syslog|ccze

而使用ccze-l参数可以查看其支持的日志类型。

10ranwhenpy

我们最后介绍的ranwhenpy是一个python工具,它可以以图形方式显示系统活动。

要使用该工具需要先安装python语言支持:

sudo

apt-add-repositoryppa:fkrull/deadsnakes

sudoapt-getupdate

sudoapt-getinstallpython32

然后下载ranwhenpy

wget

https://githubcom/p-e-w/ranwhen/archive/masterzip

unzipmasterzipcdranwhen-master

使用如下命令即可执行ranwhenpy

python32ranwhenpy

为什么要在小米手机上刷magisk?

在小米手机上刷magisk是为了手机root。

Magisk是一套用于定制Android的开源工具,支持高于Android42的设备。涵盖了Android定制的基本部分:root、引导脚本、SELInux修补、移除AVB20/dm-verity/强制加密等。

Magisk开发者加入谷歌后首次发声:将继续维护项目,但无法再隐藏root权限。MagiskHide将被取消,同时官方的Magisk模块仓库也将被放弃,除此之外,用户可以本地安装模块。

linux设置系统时间?

linux系统含两种时间,一种是系统时间,另一种是硬件时间。

date命令将日期设置为2018年8月07日

----date-s08/07/18

将时间设置为14点20分50秒

----date-s14:20:50

将时间设置为2014年6月18日14点16分30秒(MMDDhhmmYYYYss)

----date061814161430

hwclock/clock命令查看、设置硬件时间

设置硬件时间:hwclock--set--date="08/07/1814:55"(月/日/年时:分:秒)或者#clock--set--date="08/07/1814:55"(月/日/年时:分:秒)

接下来要做的就是同步系统时间与硬件时间:

hwclock--hctosys或者#clock--hctosyshc代表硬件时间,sys代表系统时间,即系统时间同步硬件时间

时区设置

设置北京时间:

tzselect:执行tzselect命令-->选择Asia-->选择China-->选择eastChina-Beijing,Guangdong,Shanghai,etc-->然后输入1

设置完成后执行:TZ='Asia/Shanghai';exportTZ并将这行命令添加到:profile

以上完成后,显示即为标准中国时间

以下有更简便的方法来修改时间

修改配置文件来修改时区:

1、修改vi/etc/sysconfig/clockZONE=‘Asia/Shanghai’

2、rm/etc/localtime

3、链接到上海时区文件:ln-sf/usr/share/zoneinfo/Asia/Shanghai/etc/localtime

linux可以修改进程时间片的长短吗?

明确,no不可能改某个进程的时间片长度,系统调度的时间片是既定的。具体在代码的什么地方,还没研究过,但是Linux的实现原理是这样的想要一个进程获得更多的运行时间只有提高它的优先级。

红帽子linux里什么修改系统时间?

date-s05/06/2013修改年月日为2013年5月6日,date-s09:30:00设置系统时间为09:30:00,clock显示的为CMOS记录的时间,如果你要以date的时间为准,那么设置完date之后,记得用clock-w命令写入CMOS,使两个时间一致。

服务器时间不对怎么从电脑上更改?

一、windows可以参考如下设置:

电脑时钟设置步骤如下:

1打开控制面板-点击时钟语言和区域按钮

2点击设置时间和日期按钮

3点击更改日期和时间按钮

4调整正确时间,点击确定按钮就可以

2、Linux上有相应的命令,比如date命令,下面是一些实例:

date-s"2012082715:04:00"

或者

date-s"2012-08-2715:04:00"

或者

date-s"15:04:002012-08-27"

或者

date-s"15:04:0020120827"

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Linux如何查询哪些端口被占用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情