端口的一些疑惑

hubyo
  • 312

clipboard.png

经常碰到端口占用的问题,但是不太明白端口占用的原理。 同一个服务在同一个端口下不能并存,所以出现端口占用

不同的进程不能使用同一端口 。(http://blog.51reboot.com/%E7%...

这里我查看本地的80端口,发现同时有 google和 wechat, 它们肯定是不同进程的,但是在80端口下却同时存在,是否与上面的想违背。

google后也没有发现相关的解释,有同学知道的吗?

回复
阅读 2.6k
4 个回答

你这里列出了包含了对端是80端口的情况。本地一个进程只能打开一个网络端口,这无疑!

80 是服务器的端口

本地端口 不一样啊,你自己也打了红框

解释为什么端口智能一个程序占用的原因:端口的作用很多时候是用来实现通信,网络协议和计算机本地协议的实现都是要依赖端口的,如果重复了,就会引起混淆。
对于你的问题,同楼上

你还是不懂……

clipboard.png

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
下面两行表示监听本地22端口,猜猜为什么有两行?
sshd     1073 root    3u  IPv4  27677      0t0  TCP *:ssh (LISTEN)
sshd     1073 root    4u  IPv6  27679      0t0  TCP *:ssh (LISTEN)
下面两行表示本地22端口被远程50931和whosells端口连接,猜猜whosells是什么端口?
sshd    45553 root    3u  IPv4 302877      0t0  TCP localhost.localdomain:ssh->101.68.79.179:50931 (ESTABLISHED)
sshd    45599 root    3u  IPv4 302895      0t0  TCP localhost.localdomain:ssh->101.68.79.179:whosells (ESTABLISHED)
COMMAND     PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
下面两行表示nginx监听本地端口,猜猜为什么会有两个不同的进程监听同一个端口?
nginx        70 root   11u  IPv4 0x4e1854fb43869fa7      0t0  TCP *:http (LISTEN)
nginx       208 XX   11u  IPv4 0x4e1854fb43869fa7      0t0  TCP *:http (LISTEN)
下面两行表示本地连接远程80端口,猜猜10.1.3.123和60.12.107.253都是谁的ip?
Google    11991 XX  197u  IPv4 0x4e1854fb5f91e2cf      0t0  TCP 10.1.3.123:50964->60.12.107.253:http (ESTABLISHED)
猜猜下面两行为什么还用到80端口了?
QQ        23052 XX   22u  IPv4 0x4e1854fb5cf1cbc7      0t0  TCP 10.1.3.123:64383->no-data:http (ESTABLISHED)
QQ        23052 XX   38u  IPv4 0x4e1854fb5cf1cbc7      0t0  TCP 10.1.3.123:64383->no-data:http (ESTABLISHED)
不同的进程不能使用同一端口 。

这句话也不是很对。
linux自3开始提供了reuseport选项,可以允许多继承监听同一端口。
另:centos得益于红帽的移植,2.6内核就可以用这个参数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏