为什么 20 以内的端口基本上没人使用?

2018-02-19 20:20:14 +08:00
 yuzenan888

今天搭服务器,试着把酸酸乳放到了 1 号端口上,结果一切正常。

tcpmux          1/tcp                           # TCP port service multiplexer
tcpmux          1/udp                           # TCP port service multiplexer
rje             5/tcp                           # Remote Job Entry
rje             5/udp                           # Remote Job Entry
echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
discard         9/udp           sink null
systat          11/tcp          users
systat          11/udp          users
daytime         13/tcp
daytime         13/udp
qotd            17/tcp          quote
qotd            17/udp          quote
msp             18/tcp                          # message send protocol (historic)
msp             18/udp                          # message send protocol (historic)
chargen         19/tcp          ttytst source
chargen         19/udp          ttytst source
ftp-data        20/tcp
ftp-data        20/udp

然而这激发了我的好奇心,为什么 20 以内的端口基本上没人使用?

看了下协议列表,这些端口都是有绑定协议的,但是这些协议基本上一个都没看到过,网上的资料也非常少。

我猜想 20 以内端口绑定的协议是 TCP/IP 协议刚制定时候,测试用的协议?

大家讨论一下。

7952 次点击
所在节点    服务器
57 条回复
ila
2018-02-20 09:32:12 +08:00
@lfk0000 一般是 8888,7777,6666
huiyifyj
2018-02-20 10:08:51 +08:00
@applehater #6 3306 数据库吧。
totoro625
2018-02-20 10:23:47 +08:00
公用程序或者打算推广的程序需要一个固定的端口号,方便写教程,方便让别人用。而低端口号大都有了指定的程序,不想互相抢占端口,索性高端口
自己用的程序随便用端口啦,还能减少扫描
nicevar
2018-02-20 10:27:43 +08:00
怎么没人使用,只是不方便,大家都用这些端口很容易产生冲突,当然你自己的服务怎么来都行
再就是上面说到的 root 权限问题,有些服务没必要运行在 root 权限上,否则一旦被溢出之类的拿到 shell 就玩完了
kkzxak47
2018-02-20 11:42:25 +08:00
@yylbfyl 好好回答一个问题有那么难吗?还没有解决实际问题就要处处上升到理论高度,而且还偏离了原始问题,还分析人的心理,还思维习惯,真是……

端口分配的实际操作无非是人的实际使用,政治相关而与技术本身关系不大。所以你动不动拿三国,易经背书,可以理解。

然而懂了理论就可以了吗?看完兵书就能带兵打仗平定天下?看完易经就能再造一个宇宙?
用最抽象的理论来回答最具体实践问题,绝对没错,然而绝对没用。

拿着教科书的一句话就打发了?一个好问题引发的深入讨论呢?这种风气,不可助长。
kkzxak47
2018-02-20 12:02:49 +08:00
其实这个问题可以分几个层次来回答。

1. 直接回答
这些端口确实“基本没人使用”,因为注册的协议和服务现在确实用得不多了。
比如 1 号端口,TCP Port Service Multiplexer。根据 wikipedia,The TCP Port Service Multiplexer (TCPMUX) is a little-used Internet protocol defined in RFC 1078. 直接告诉你'little used'。
但它有自己的 RFC,想一想当年创造它的人花费了多大的精力来做这件事,然而历史进程是不单单以人的意志为转移的。

2. 关于端口分配的引申回答
IANA 会根据一些确定的规则来分配端口号,但 IANA 的定义并没有强制力,非标准的使用很常见。很多确定了端口的服务和协议也慢慢变得不常用。

The Internet Assigned Numbers Authority (IANA) is responsible for maintaining the official assignments of port numbers for specific uses. However, many unofficial uses of both well-known and registered port numbers occur in practice. Similarly many of the official assignments refer to protocols that were never or are no longer in common use.


3. 关于端口分配规则的引申回答
所有的规则都是人定的,组织机构都是人组成的。要真正搞明白分配的规则,不深入某个 task force 的做事流程是不可能做到了。所以这个问题可能只有 IANA 内部人士可以真正说清楚,我们看表面的公开文字其实没有什么用。(看三国和易经可能真的有帮助:)
arraysnow
2018-02-20 12:37:43 +08:00
一个好好的帖子吵成这样,有必要上纲上线吗?能解决楼主的问题吗?已 block 某个层主
oott123
2018-02-20 13:03:21 +08:00
因为反正端口那么多,而分配了的端口又那么少,自然有一些端口是几乎不被人使用的。
30~40 端口也没什么人用啊,160~180 也没啥人用啊,事实上你随便找一段端口,可能都没啥人用……
hundan
2018-02-20 13:20:46 +08:00
@yylbfyl 所以我们是在辩论,而你认为自己是老师?从而对我们进行拷问?看得清自己的定位吗?
我们说的微观,是将事情细化,以小见大,而你所谓的微观,不过是将整体割裂,和片面有什么区别?
yylbfyl
2018-02-20 13:51:58 +08:00
@hundan “老师”的角色是不是除答辩人之外的其他人呢?不管是老师也罢,学生也罢,记者也罢,乞丐也罢,都是除答辩人之外的其他人的角色。答辩人的观点要经得起其他人的拷问,才能被众人所接纳。你对抽象和具体的概念理解的清楚吗?我没说我是老师啊,我只是个其他人而已。
另外,我特地说秦国,是有原因的。因为秦始皇是独裁者,独裁者指定某个标准和规则是偏向于制定者一方的,所以我说秦国废除旧标准,制定新标准,是直接从第三阶段开始的。而现在的互联网是开放的,对标准的制定和指派会考虑使用者方面多一些,所以会从阶段一、二、三这样的顺序发展。
menc
2018-02-20 14:45:21 +08:00
@yylbfyl unassigned 的意思是“现在没有指派,以后可能指派”。熟知端口号作用等同于程序语言的保留字,python 也有很多保留字没有使用,不如也一块说一下 python 的设计不合理。
另外也不是强制的,只是一个说明,大家遵守这样的约定,不会出错。
一个例子,如果你写了一个服务,用了未指定的端口,服务跑了 3 年,IANA 给一个新的热门协议指定了该端口,全世界都遵循这个约定使用该端口,你的服务不就出错了?
yylbfyl
2018-02-20 15:23:25 +08:00
@menc 我同意这个表述。
@liwufan 可以参考下这个。
fcten
2018-02-20 16:27:36 +08:00
因为常用协议不使用这些端口作为默认端口……
JohnChu
2018-02-20 20:39:13 +08:00
我猜想小的端口由 IANA 分配,大的端口不做限定,这样比较有序,常用协议的端口也就不容易被占用。
linkupmylife
2018-03-04 16:41:41 +08:00
上次遇到一个地址用的:1 端口,差点看成 ipv6 的,迷惑性很强。
leido
2018-05-30 13:20:55 +08:00
因为 端口够用啊 一般不是直接 10000 往上吗
用低端口,有种见不得人的感觉
bclerdx
2018-12-18 22:59:39 +08:00
@MonoLogueChi 多谢提供链接,已收藏!备用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/431253

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX