linux socket 端口?websocket自定义端口
各位老铁们好,相信很多人对linux socket 端口都不是特别的了解,因此呢,今天就来为大家分享下关于linux socket 端口以及websocket自定义端口的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
linux socket文件描述符与地址端口怎么关联的
socket跟他绑定也是为了统一接口。
所以网络相关的调用,如connect, bind等等,第一步基本上就是通过文件描述符找到对应的内核socket结构,然后在进行对应的操作。
SYSCALL_DEFINE2(listen, int, fd, int, backlog)
{
struct socket*sock;
int err, fput_needed;
int somaxconn;
/*通过文件描述符获得 kernel socket结构,并且增加此结构的引用计数*/
sock= sockfd_lookup_light(fd,&err,&fput_needed);
if(sock){
/*进行检测,看看是否满足系统设计的需求,功能上不重要*/
somaxconn= sock_net(sock->sk)->core.sysctl_somaxconn;
if((unsigned)backlog> somaxconn)
backlog= somaxconn;
/*检测此调用是否安全*/
err= security_socket_listen(sock, backlog);
/*执行具体的listen操作,TCP啊,或者是其他网络协议等等,这个ops是在socket时候绑定的*/
if(!err)
err= sock->ops->listen(sock, backlog);
/*减少kernel socket的引用计数*/
fput_light(sock->file, fput_needed);
}
return err;
}
上面就是一个典型的调用listen的内核操作。
在socket层内核完成的就是一个interface功能,或许也可以叫做桥接模式(bridge pattern)。
这就是我对socket及Linux文件描述符的理解。
linux查看哪个端口可以使用
1)使用lsof命令
lsof是一个非常强大的linux工具,她被用来查找哪些程序使用了那些文件。在linux系统下,基本上所有的东西都可以被当作文件来用。socket当然也是一种文件了。所以lsof可以用来查找谁用了某一个端口。具体方法:
lsof-i:port_number grep"(LISTEN)"-i是用来查找和网络相关的文件,":"号是必须的,它是标志你查找的是一个端口。port_number就是你要查找的端口号,譬如你要查找是否有程序占用了oracle的监听端口1521,就可以使用lsof-i:1521|grep"(LISTEN)"。如果有程序已经占用了,那么下面打印的第二个字段就是该程序的进程id,第一个字段是进程的名字。如果只有losf-i:port_number可能会查到很多应用程序,但这些程序实际并没有占用你指定的端口,这些端口只是连接到本机器或者别的机器的该端口。所以要grep"(LISTEN)“,因为一个端口只可能被一个程序占用的,所以这种方法是可靠的。
2)使用netstat命令大家一定对这个命令比较熟悉了,可能你从没有想到用到来查找哪一个程序的占用了指定的端口。但是netstat-an的确提供了这种功能。所以有问题了一定要想到先去查找man手册,不过说实话,某些man手册写得让中国人看不懂,那没有办法了,就googe或者 baidu一下吧。执行man netstat命令,你会发现netstat提供了'-p'的选项,这个选项的功能是告诉你哪个程序占用了该端口,但是她提供的形式比较古怪是以pid/process_name提供的。pid当然是进程id了,process_name是进程的命令,中间以'/'号分隔。和上面的原因一样,我们只查找listen的端口,netstat给我们提供了-l的选项,这个选项不是默认的选项。下面以1521端口来看怎么查找到该程序,我们使用下面的命令:
netstat-lnpawk'BEGIN{prt=":1521$"}{if($4~ prt) print$0}'在这里使用awk来匹配第4个字段的模式是为了避免误判。
Linux下怎样查看某一端口是否开放
可以用nmap工具进行检测端口是否开放。
1:nmap工具检测开放端口
2、nmap是一款网络扫描和主机检测的工具。nmap的安装非常简单,如下所示rpm安装所示。
3、关于nmap的使用,都可以长篇大写特写,这里不做展开。如下所示,nmap 127.0.0.1查看本机开放的端口,会扫描所有端口。当然也可以扫描其它服务器端口。
拓展资料
nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
正如大多数被用于网络安全的工具,nmap也是不少黑客及骇客(又称脚本小子)爱用的工具。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。
Nmap常被跟评估系统漏洞软件Nessus混为一谈。Nmap以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。