首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  服务器

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

  •  
  •   yuzenan888 · 121 天前 · 5889 次点击
    这是一个创建于 121 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天搭服务器,试着把酸酸乳放到了 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 协议刚制定时候,测试用的协议?

    大家讨论一下。

    56 回复  |  直到 2018-05-30 13:20:55 +08:00
        1
    nazor   121 天前
    都是保留的,类似内网 IP。
        2
    yuzenan888   121 天前
    @nazor 但是运营商并没有封……
        3
    liwufan   121 天前 via iPhone
    同样感兴趣,虽然我自己用的时候为了防止和地址记混了都是直接 10000 开始记的,1000 以内的端口用的人好像是不多
        4
    yylbfyl   121 天前 via Android   ♥ 3
    请参考《计算机网络》第六版 第 192 页熟知端口号的说明。IANA 指派了 0 ~ 1023 端口号为熟知端口号。
        5
    twor   121 天前
    @yylbfyl 估计 lz 的意思就是‘耍赖皮’,依仗这些注册端口做坏事
        6
    applehater   121 天前 via iPhone
    我喜欢用 3306,应该有工具在扫弱密码吧。
        7
    liwufan   121 天前   ♥ 1
    @yylbfyl 这个概念确实是没错。但是没有回答问题啊,仔细看 1024 以内的那些端口,并不是每一个都是“熟知”的。况且 1-20 里面还有好多标记为 Unassigned 的端口,https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?&page=1。
        8
    yuzenan888   121 天前
    @yylbfyl 这个基本上懂网络的人都知道的。可是,“熟知端口号”有很多都是未注册的。
        9
    yylbfyl   121 天前 via iPhone   ♥ 11
    @liwufan 坐公交或地铁的时候,有见过“老人妇女专用座”吗?
        10
    ys0290   121 天前 via iPhone
    依稀记得本站有个帖子狂喷阿里不尊重惯例擅用端口
        11
    liwufan   121 天前   ♥ 2
    @yylbfyl 我没有冒犯你的意思,你当然可以说规矩就是规矩。但是要围绕问题讨论,比如说 781-799 这个端口段是 Unassigned 的话,为什么要留空?假如向 iana 提交一个 0-1023 的端口分配申请的话需要满足什么要求? inan 的工程师他们是怎么考虑这个分配问题的?假如一个端口是 Unassigned 的话是不是可以合理申请?定义一个熟知端口的过程是什么?
        12
    flyz   121 天前 via Android
    一般 ss 才有会用这些常用端口
        13
    Shura   121 天前
    用户自己用这些端口没事,但是影响力比较大的软件乱用这些熟知端口号就是不道德的行为了。
        14
    sdrzlyz   121 天前 via Android
    你把酸酸乳放 80,443 也没问题,自己玩的开心就好。。。
        15
    yylbfyl   121 天前 via iPhone   ♥ 1
    @liwufan 从你的表述中感觉你的思维比较死板,很多日本人的思维也是很死板的。逻辑划分和物理划分的最终目的是什么呢?还不是让协议简单好用。
    公交或地铁上的“老人妇女专用座”是否无论任何时候都只能让妇女或老人坐呢?有些规定是固定的,但有些规定是可以灵活转化的。这要看当时的具体形式和场景。
    INTEL 的 CPU 针脚有些都是预留针脚,至今未定义用途。
    端口号爱用什么都可以,没有固定要求。只要你的业务方便就行,还是一句话,不要只按某一个规定行事,要看场景和形势。
    有空的时候多看看《三国演义》吧。
        16
    siguretto   121 天前 via iPhone
    @yylbfyl 并不是专用座,而是优先座
        17
    7DLNU56W   121 天前
    其实都是可以正常使用的,只是大家都不习惯使用这些端口而已。
        18
    tony1016   121 天前
    有意思的问题
        19
    redtea   121 天前
    1024 端口以下,只有 root 用户才能使用。
        20
    yuzenan888   121 天前
    @yylbfyl 很有道理。规定是死的,人是活的!
        21
    mario85   121 天前 via iPhone
    @liwufan “熟知”的意思是端口一旦被定义就应该被熟知。所以熟知端口号范围是种资源,跟 IP 一样,Unassigned 是为了留作日后定义新的协议使用。
        22
    liwufan   121 天前
    @yylbfyl 我晕倒,cpu 和公交车位的解释也有点生搬硬套吧。我去翻了一下 rfc6335 ( https://tools.ietf.org/html/rfc6335#page-11 ),有段挺有意思的,讲的是 76%的 tcp udp system 端口被注册了(我猜是指 0-1023 ),另一边只有 9%的 1024-49151 区间用户端口是被注册的。每年用户端口以 800 个的速度增加,估计 85 年以后会出现老的端口被重新分配的时间。想想这问题是问早了,等到曾孙这一辈的人再来回答吧
        23
    Humorce   121 天前 via iPhone
    不不不,这就跟有条只有傻子才会走的远路一样,
    你没走向里面之前还和大家一样呢
        24
    ETiV   121 天前 via iPhone
    说到端口号,我觉得 iOS 很有意思

    下午用 iOS VLC 往手机里传片子,走的网络,发现 VLC 居然可以监听 80 端口
        25
    GooMS   121 天前 via Android
    可能是怕冲突?所以没有人用我觉得这也是一点吧
    另外约定也是答案的一种,随意指责和教育合适吗?
        26
    congeec   121 天前 via iPhone
    看了楼上的我只想说冷静啊大兄弟。别打起来了

    也就是 convention 和 rule 的区别
        27
    TheKiller   121 天前
    专门留给一些服务的 当然你不会用到这些服务的话使用这些端口是没什么问题的
        28
    kkzxak47   121 天前 via Android
    为什么思维死板的人要强调其他人思维死板😂
    阶段一,没有规范,所有端口随意使用。
    阶段二,在实践中产生非标准规则。
    阶段三,定义标准,固化规则。

    人家已经在问阶段二和阶段三了,你跑来回答阶段一,真的以为人家不懂嘛
        29
    yylbfyl   121 天前 via Android
    @kkzxak47 我只是可以从一个人的语言和用词中,大致判断出一个人的处境和心理。源于对中文的理解。
    你的这个阶段是适合什么场景呢?秦朝统一全国时,焚书坑儒,建立了统一的新的单位衡量制,这个直接就从你说的第三阶段开始了,并不是从第一、第二、第三阶段这样发展的。但是从中国文化整个历史的发展中,又是这样的阶段。所以从不同的角度,宏观或微观,整体或阶段。不同的场景,情况也不同。
    有空的时候多看看《易经》吧。
        30
    binux   121 天前   ♥ 1
    你当然可以用,当你的软件足够流行的时候,那个端口就是你的了。
    当然在此之前,别人会质问你为什么要用这个端口。
        31
    hundan   121 天前 via Android   ♥ 1
    @yylbfyl 当我们在讨论一件事的时候,你跑来分析我们的语言,然后分析我们的情绪,从对一件事转到对一个人的讨论,这对于事情的讨论有任何帮助吗?话里行间带着不必要的补充说明,踩别人捧自己,未免自视过高。
    你说秦朝直接从第三阶段开始?难不成,秦统一前,不在楼上所说的第三 第二 第一任何阶段?照你说的从 0 开始,则之前没有汇率转化问题,那岂不是统一之前,各国之间从未有过贸易往来?你所说的从第三阶段直接开始,不过是生生把这一阶段从完整演变体系里剥离,不同的场景,总有相同的情况,正因事情总有相通之处,你看的 易经 三国 才有存在的必要,如果事事都不同,何来逻辑,何来以史为鉴?
    你看了这么多三国易经,连这点道理都不懂?
        32
    cnnblike   121 天前
    随便用都行,我 ssh 就开在 2 端口,反正能用啊,其他什么熟知端口之类的,管他毛事。
    我 ssh 开 443 端口也是我自己爽,我又不用 https,我的系统就是我的,想怎么用就怎么用。
        33
    snnn   121 天前 via Android
    那些是老服务,没人跑了
    有 rfc,你没找到。
    win10 都还有它们呢
        34
    yylbfyl   121 天前 via iPhone
    @hundan 从表象看出问题的本质,从语言的表象看出一个人内心的逻辑和思维,这是我的思维习惯,也是我自己的看法和理解。你有参加过答辩环节吗?下面的老师没有对你的话和你的想法有过任何拷问?
    “但是从中国文化整个历史的发展中,又是这样的阶段。”上面的回复中,这句话表示从宏观中看,我没否认楼上那种阶段一、阶段二、阶段三的发展啊。
        35
    lfk0000   121 天前
    这帖子是 守序善良 和 混乱邪恶 测试帖么_(:з」∠)_

    ps:那些端口是在用相对应的协议的时偷懒用的吧,可以少打个端口号。。。
        36
    jedihy   121 天前
    你自己的 server 爱怎么用就怎么用呀
        37
    coymail   121 天前
    冗余
        38
    msg7086   121 天前   ♥ 1
    主要原因:
    1-1024 是特权端口,需要 root 权限才能监听,像是酸欧派这样无所谓的程序,放在 root 权限上是很危险的。
    如果不放在 root 权限上,就要另行给程序附加 CAP_NET_BIND_SERVICE 特权,从各种角度来说都不方便。
    所以对于普通应用程序,监听在 1024 以上是一般的行为。

    至于端口号分配,那都是上古时代的遗留问题。现在常用的可能只有 21 22 这些,更低的那些早已被淘汰了。
        39
    dot   121 天前 via Android
    有预定义的端口,只要是为了方便互联互通,比如你也用浏览器访问 HTTP 网站默认连接 80,FTP 默认 21,HTTPS 默认 443,SSH 默认 22,这些属于[约定俗成],如果是你自己的服务,你可以不遵守,但是用户就需要额外的东西来适应你,比如 http://example.com:88
    再比如键盘的 QWERTY 键位,你完全可以 DIY 一个 26 字母顺序排列的键盘。
    这些规则是为了方便,是规则,不是规定。
        40
    MonoLogueChi   121 天前 via Android
    http://www.bejson.com/doc/port/

    想看端口具体是干什么用的,可以看这里。只要端口用不到,你自己随便用,但是建议还是不要用这些端口。虽然我以前用过 80,也用过 443
        41
    ila   121 天前 via iPhone
    @lfk0000 一般是 8888,7777,6666
        42
    huiyifyj   121 天前 via Android
    @applehater #6 3306 数据库吧。
        43
    totoro625   121 天前 via Android
    公用程序或者打算推广的程序需要一个固定的端口号,方便写教程,方便让别人用。而低端口号大都有了指定的程序,不想互相抢占端口,索性高端口
    自己用的程序随便用端口啦,还能减少扫描
        44
    nicevar   121 天前
    怎么没人使用,只是不方便,大家都用这些端口很容易产生冲突,当然你自己的服务怎么来都行
    再就是上面说到的 root 权限问题,有些服务没必要运行在 root 权限上,否则一旦被溢出之类的拿到 shell 就玩完了
        45
    kkzxak47   121 天前
    @yylbfyl 好好回答一个问题有那么难吗?还没有解决实际问题就要处处上升到理论高度,而且还偏离了原始问题,还分析人的心理,还思维习惯,真是……

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

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

    拿着教科书的一句话就打发了?一个好问题引发的深入讨论呢?这种风气,不可助长。
        46
    kkzxak47   121 天前   ♥ 3
    其实这个问题可以分几个层次来回答。

    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 内部人士可以真正说清楚,我们看表面的公开文字其实没有什么用。(看三国和易经可能真的有帮助:)
        47
    arraysnow   121 天前
    一个好好的帖子吵成这样,有必要上纲上线吗?能解决楼主的问题吗?已 block 某个层主
        48
    oott123   121 天前
    因为反正端口那么多,而分配了的端口又那么少,自然有一些端口是几乎不被人使用的。
    30~40 端口也没什么人用啊,160~180 也没啥人用啊,事实上你随便找一段端口,可能都没啥人用……
        49
    hundan   121 天前 via Android
    @yylbfyl 所以我们是在辩论,而你认为自己是老师?从而对我们进行拷问?看得清自己的定位吗?
    我们说的微观,是将事情细化,以小见大,而你所谓的微观,不过是将整体割裂,和片面有什么区别?
        50
    yylbfyl   121 天前 via iPhone
    @hundan “老师”的角色是不是除答辩人之外的其他人呢?不管是老师也罢,学生也罢,记者也罢,乞丐也罢,都是除答辩人之外的其他人的角色。答辩人的观点要经得起其他人的拷问,才能被众人所接纳。你对抽象和具体的概念理解的清楚吗?我没说我是老师啊,我只是个其他人而已。
    另外,我特地说秦国,是有原因的。因为秦始皇是独裁者,独裁者指定某个标准和规则是偏向于制定者一方的,所以我说秦国废除旧标准,制定新标准,是直接从第三阶段开始的。而现在的互联网是开放的,对标准的制定和指派会考虑使用者方面多一些,所以会从阶段一、二、三这样的顺序发展。
        51
    menc   121 天前
    @yylbfyl unassigned 的意思是“现在没有指派,以后可能指派”。熟知端口号作用等同于程序语言的保留字,python 也有很多保留字没有使用,不如也一块说一下 python 的设计不合理。
    另外也不是强制的,只是一个说明,大家遵守这样的约定,不会出错。
    一个例子,如果你写了一个服务,用了未指定的端口,服务跑了 3 年,IANA 给一个新的热门协议指定了该端口,全世界都遵循这个约定使用该端口,你的服务不就出错了?
        52
    yylbfyl   121 天前 via Android
    @menc 我同意这个表述。
    @liwufan 可以参考下这个。
        53
    fcten   121 天前
    因为常用协议不使用这些端口作为默认端口……
        54
    JohnChu   120 天前 via iPhone
    我猜想小的端口由 IANA 分配,大的端口不做限定,这样比较有序,常用协议的端口也就不容易被占用。
        55
    linkupmylife   109 天前
    上次遇到一个地址用的:1 端口,差点看成 ipv6 的,迷惑性很强。
        56
    leido   22 天前 via Android
    因为 端口够用啊 一般不是直接 10000 往上吗
    用低端口,有种见不得人的感觉
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   2579 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 21ms · UTC 10:10 · PVG 18:10 · LAX 03:10 · JFK 06:10
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1