这里列出的端口号有些你可能并不知道它是做什么的,属于哪个服务 ..
在系统里面有一个文本文件,上面列出了大部分已知的服务还有跟它对应的端口 .. 使用 cat 命令输出这个文件的内容 .. 它的位置是 /etc/services ..
这上面会有服务的名字 .. 使用的端口号还有传输协议 .. 后面还有一段简单的描述 .. 我们可以先使用这个文件作为一个参考,如果你发现服务器开放的端口号在这里不存在,又不是你手工设置开放的端口,需要特别注意一下这些端口 ..
在输出这个文件内容的时候,我们可以搜索一下关键词 .. 在命令的后面加上 | grep 然后是关键词,比如 80 ..
这样可以快速的查看跟这个端口号相关的服务名字,还有介绍 ..
如果你想知道端口到底是哪个服务打开的,可以使用 netstat 命令 .. sudo netstat .. 加上几个选项 .. -anp ,a 表示 all ,所有,n 表示 numeric ,意思就是表示数字的地方,不用解释主机名,p 选项表示要显示进程的 ID 号还有名字 ..
在这里你会看到,监听的 80 端口,是 nginx 这个程序干的 .. 它前面的数字是它的进程的 ID 号 ..
sudo netstat -anp
我们还可以只列出当前正在使用 tcp 协议传输的连接 ..
sudo netstat -ntp
Proto 表示协议 .. Local Address 就是本机的地址,它表示的就是这台服务器 .. Foreign Address 是连接服务的那台主机 .. state 表示状态 ... ESTABLISHED [əˈstæblɪʃt] 这个状态表示连接已经建立了 ..
这个连接就是我们使用 ssh 登录到服务器的那个连接 .. 使用的用户是 vagrant .. 这个进程的 ID 是 xx ..
下面我们再打开浏览器 .. 访问一下服务器上的 Web 服务 .. http://192.168.33.160
回到 server ,重新执行一下这个 netstat 命令 .. 这里会出现一些到服务器 80 端口的连接 .. 连接它的是 192.168.33.1 .. 接待这个连接的是 nginx 服务 ...