
linux查看网络链接状况命令
netstat 参数如下:
-a 显示所有socket,包括正在监听的。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式同“ifconfig -e”。
-n 以网络IP地址代替名称,显示出网络连接情形。
-r 显示核心路由表,格式同“route -e”。
-t 显示TCP协议的连接情况。
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。
netstat -an | grep LISTEN
0.0.0.0的就是每个IP都有的服务,写明哪个IP的就是绑定那个IP的服务。
2. netstat -tln
用来查看linux的端口使用情况
3. /etc/init.d/vsftp start
是用来启动ftp端口~!
4. netstat
查看已经连接的服务端口(ESTABLISHED)
5. netstat -a
查看所有的服务端口(LISTEN,ESTABLISHED)
6. sudo netstat -ap
查看所有的服务端口并显示对应的服务程序名
7. nmap <扫描类型><扫描参数>
例如:
nmap localhost
nmap -p 1024-65535 localhost
nmap -PT 192.168.1.127-245
当我们使用 netstat -apn 查看网络连接的时候,会发现很多类似下面的内容:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 52 218.104.81.152:7710 211.100.39.250:29488 ESTABLISHED 6111/1
显示这台服务器开放了7710端口,那么这个端口属于哪个程序呢? 我们可以使用 lsof -i :7710 命令来查询:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 1990 root 3u IPv4 4836 TCP *:7710 (LISTEN) 54com.cn
这样,我们就知道了7710端口是属于sshd程序的。
=================================================
下面这个语句是一个非常好的查看TCP连接状态的语句:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
返回结果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
以下是各种状态的描述
CLOSED:无连接是活动的或正在进行
ESTABLISED:已建立连线的状态;
SYN_SENT:发出主动连线 (SYN 标志) 的连线封包;
SYN_RECV:接收到一个要求连线的主动连线封包;
FIN_WAIT1:该插槽服务(socket)已中 断,该连线正在断线当中;
FIN_WAIT2:该连线已挂断,但正在等待对方主机回应断线确认的封包;
TIME_WAIT:该连线已 挂断,但 socket 还在网路上等待结束;
LISTEN:通常用在服务的监听 port !可使用『 -l 』参数查阅。
CLOSING: 两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉
Linux的文件标识符,和Windows的就是文件名不同,它相当于文件的一个指针。在linux的C语言中,除了用通用的《【C】文件读写问题》(点击打开链)中介绍过的fopen等c语言通用 *** 作文件以外,其Linux应用请参考《【Linux】利用C语言文件流复制单一文件),还能用文件标识符还来 *** 作文件。这也是Linux中C语言,最底层,最原始控制文件的方式,其函数open,read,write,close已经完美地表明这一点。同时,在Linux无论是文件、设备和管道,甚至是个可 *** 作对象对可以视作文件来对待,具体表现为都可以用这个文件标识符来 *** 作他们。文件标识符非常独特,并不是指针,其变量类型就是大家非常常用的int。
至于这个东西怎么用,具体请看如下文件读写程序:
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>//文件控制
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define MAXSIZE 512//缓冲区的大小
const char* FILEPATH="/tmp/file.txt"//文件目录
int main(void) {
int fd//文件标识符,
char *s = "被折腾的文字"
char buffer[MAXSIZE+1]//用来接字符的缓冲区
int size//读入的文件长度
if((fd=open(FILEPATH,O_CREAT|O_TRUNC|O_RDWR,0777))<0){
//O_CREAT如果指定文件不存在,则创建这个文件,O_EXCL如果要创建的文件已存在,则返回 -1,并且修改 errno 的值
//O_APPEND每次写 *** 作都写入文件的末尾,O_TRUNC如果文件存在,并且以只写/读写方式打开,则清空文件全部内容
//O_RDONLY只读模式,O_WRONLY只写模式,O_RDWR读写模式
//0777为最高权限
perror("打开文件失败!")
exit(1)
}
if((write(fd,s,strlen(s)))<0){
perror("写入文件失败!")
exit(1)
}
//lseek(fd,0,SEEK_SET)//即把文件指针移至buf文件的开始处
lseek(fd,-strlen(s),SEEK_END)//即把文件指针往从结尾处向前移动strlen(s)个字符
if((size=read(fd,buffer,MAXSIZE))<0){
perror("读入文件失败!")
exit(1)
}else{
buffer[size]='\0'//字符串数组封口
printf("%s\n",buffer)
}
if(close(fd)<0) {
perror("关键文件失败!")
exit(1)
}
unlink(FILEPATH)//删除文件
exit(0)
}
这个程序的一大堆头文件,是没办法的,因为所用到的函数需要的基本头文件就是这么多,但这些头文件都是Linux的基本头文件,能够拿来直接用。
程序首先打开并同时利用open的参数创建一个文件,之后向这个文件,通过read函数写入一个名为“缓冲区”buffer的字符数组,也就是字符串string的一些东西,然后,写入完毕,因为文件 *** 作光标将会移到文件最后,所以我们要先将其移回文件头,再利用write函数读入这个文件的内容到buffer,并打印到屏幕,最后再用close关闭文件标识符与文件的连接,并利用unlink删除这个文件,如果没有close,unlink将不起作用,因为这个程序正在占用这个/tmp/file.txt,无法删除,如果要强制删除可以考虑remove函数。
所以,上述代码的运行结果如下图:
最后,这个文件自然是要被删除的了,肯定是没有的:
上述程序很简单,但我们更多应该关注这里文件标识符的作用。fd这个int就是文件标识符,相当于FILE *的作用,但他就是一个int。实质上,这个int非常独特,同open函数,int fd里面存着要被 *** 作文件的地址,但它却又不是int *,之后的write和read函数都要根据这个fd所指明的方向来,你可以发现write,read参数都有一个地方,填入了fd,可要求填入的,却是一个int变量,这在windows里面是没有的,同时不了解文件标识符的人,看到write和read的使用可能是云里雾里的,之后的close就更不用说了,就是清楚这个fd与被 *** 作文件的关联关系。
unlink函数则和文件标识符无关,需要一个文件路径的参数。
VMware安装完毕后,利用它可以建立多个虚拟机,每新建一个虚拟机,就会要求你建立一个配置文件。这个配置文件实际上相当于新电脑的“硬件配置”,你可以在配置文件中决定虚拟机的硬盘如何配置,内存多大.准备运行哪种 *** 作系统,是否有网络等。配置Linux虚拟机的步骤如下。(1)选择File菜单下的“New Virtual Machine”出现新虚拟机向导后单击“下一步”,选择“Typical”典型安装。
(2)再单击“下一步”,在选择 *** 作系统界面的“Guest Operation System”中选择 “Linux”,然后单击Version对应的下拉菜单选择具体的Linux版本, 此处我们选择“Red Hat LinuX”。
(3)单击“下一步”进入安装目录选择界面。该界面上面的文本框是系统的名字,保持默认值即可,下面的文本框需要选择虚拟机 *** 作系统的安装位置。
(4)根据需要选择好后,单击“下一步”按钮,出现设置虚拟机内存大小的界面。Linux9.O对内存的要求是:文本模式至少需要64MB;图形化模式至少需要128MB,推荐使用192MB。此处我们选择192MB:
(5)单击“下一步”按钮进入网络连接方式选择界面。VMware有四种网络设置方式,一般来说,Bridged方式使虚拟机就像网络内一台独立的计算机一样,最为方便好用(四种连网方式的区别大家可参考VMware的有关资料)。在此、我们选择Brided方式。
(6)单击“下一步”按钮进入虚拟磁盘的设置界面。 这里有三种方式(Create a new virtual disk、Use an existing virtual disk、Use a physical disk)可供选择、建议初学者选择“Create a new Virtual disk”,其含义是新建一个虚拟磁盘,该虚拟磁盘只是主机—卜的一个独立文件。
(7)在“下一步”中设置磁盘大小。在此、我们采用默认的4GB。
(8)单击“下一步”进入文件存放路径选择界面。
在此界面可单击Browse按钮进行设置。此处我们使用默认值,单击“完成”按钮。
至此,完成一个虚拟机的配置。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)