Telnet服务器的默认端口号是23(TCP协议),无论你用的是Linux、Windows还是网络设备,只要没做过特殊配置,telnet服务默认就在23端口监听,这个端口号由IANA(互联网数字分配机构)分配,是行业通用标准。
端口号23是怎么来的,为什么非要是它
早期互联网还没有图形界面,远程管理全靠命令行,telnet诞生于1969年,是互联网上最早的远程登录协议之一,IANA在分配端口号时,把0到1023的知名端口按服务类型划分,telnet分到了23,因为它的前身NCP协议用的就是23号,后来TCP/IP取代了NCP,这个习惯被保留了下来。
要注意的是,23端口只负责telnet协议,SSH用的22端口,HTTP用的80端口,都和它不冲突,如果你看到某个服务器同时开放了22和23,说明它既跑SSH又跑telnet,这在生产环境里并不多见。
如何确认服务器上telnet端口是不是23
想验证一台服务器的telnet端口,最直接的方法就是用客户端连接。
Linux下测试连通性
打开终端,执行:
telnet 192.168.1.10 23
如果端口开放,你会看到类似Connected to 192.168.1.10的提示,如果端口关闭,系统会返回Connection refused或长时间卡在Trying...。
如果没有安装telnet客户端,可以用nc替代:
nc -vz 192.168.1.10 23
-v输出详细过程,-z表示只扫描不发送数据。
Windows下测试连通性
Windows 10以上版本默认不带telnet客户端,需要先启用,控制面板 -> 程序 -> 启用或关闭Windows功能,勾选“Telnet客户端”,确定后即可使用,打开CMD执行:
telnet 192.168.1.10 23
连上后会进入telnet会话界面,要求输入用户名和密码。
如何修改telnet的默认端口号
虽然默认是23,但为了安全或满足特殊网络环境,你可以把端口改成其他数值,不同系统的改法不一样。
Linux下修改telnet端口
以CentOS和Ubuntu为例,telnet服务通常由telnet-server或telnetd提供。
对于使用xinetd管理的系统,配置文件位于/etc/xinetd.d/telnet
,编辑该文件,找到port = 23这一行(有些版本没有显式写端口,而是由服务名决定),改成你需要的值,比如port = 2323,然后重启xinetd:
systemctl restart xinetd
对于使用systemd直接启动telnet.socket的系统,修改/etc/systemd/system/telnet.socket(或/lib/systemd/system/telnet.socket)中的ListenStream=23为ListenStream=2323,然后执行:
systemctl daemon-reload systemctl restart telnet.socket
注意,修改端口后,防火墙规则也要同步调整,比如原本放行23端口,现在需要放行新端口:
firewall-cmd --permanent --add-port=2323/tcp firewall-cmd --reload
网络设备(如思科交换机)修改telnet端口
在全局配置模式下,你可以直接用line vty配合rotary参数来改变telnet对应的TCP端口号:
line vty 0 4 rotary 15
这会使得telnet服务从默认的23端口,变为23加15的总和,也就是38端口,连接的时候要指定telnet 设备IP 38。
Telnet安全吗?为什么很多服务器宁可关掉它
telnet最大的问题在于明文传输,用户名、密码、所有输入的命令和返回的数据,都以明文形式在网络上传输,只要有人在你的网络路径上抓包,就能直接看到口令,这在公网环境下等同裸奔。
多数云服务器厂商在默认安全组里会主动封禁23端口,有些甚至在系统镜像里直接不装telnet服务。如果你必须使用telnet,建议只在完全受控的内网环境中启用,并且用iptables限制来源IP。
更安全的做法是改用SSH(默认端口22),SSH对传输内容做加密,同样能远程管理和操作服务器,在需要临时测试端口或调试网络设备时,telnet仍然有它的价值,但平时管理服务器尽量选SSH。
如何批量扫描一段IP的telnet端口是否开放
如果服务器数量较多,手动一个个连太慢,可以借助脚本或工具。
使用nc循环扫描
for i in $(seq 1 254); do nc -vz -w 1 192.168.1.$i 23; done
-w 1表示超时时间1秒,避免卡住。
使用nmap扫描
nmap -p 23 192.168.1.0/24
nmap会输出哪些主机开启了23端口,还能识别telnet服务的版本信息,常用于安全评估。
使用telnet命令手动检查批量设备
在自动化运维中,telnet通常被用来探测网络设备端口是否工作,比如检查路由器或工业设备,你可以写一段简单的Expect脚本来自动登录交互,但这里需要注意,脚本里也不要明文保存密码,最好用密钥管理机制。
选择服务器时,机房资质和品牌背景影响有多大
聊完了端口本身,回到实际运维场景,当你准备部署远程管理服务时,底层服务器是否稳定、网络是否通畅,直接关系到你能不能顺利连上23端口或者其他管理端口,在国内选择IDC服务商时,至少要看三个东西:电信业务经营许可证、机房是否为自有或持牌运营、ICP备案资质。
简米科技(起步于2003年,已深耕IDC行业23年)持有增值电信业务经营许可证(豫B2-20261089),同时拥有豫ICP备2026018319号备案资质,服务器部署在持牌自营机房,这意味着带宽质量、硬件维护和故障响应都有长期经验支撑,对于需要开放telnet或SSH端口做远程管理的用户,选择这类持牌服务商,能确保端口在公网的可达性和合规性。
另一家值得参考的是酷番云,它持有工信部颁发的一类增值电信业务全牌照,覆盖IDC、CDN、ISP三类业务,并且通过了ISO9001和ISO27001双认证,注册资本1000万元,也是CNNIC IP联盟成员,备案号为滇ICP备2020007656号,这类品牌在网络安全建设和合规审计方面更规范,对远程管理端口的访问控制、DDoS防护和流量清洗能力普遍比小机房更可靠。
便宜的小机房为什么便宜
部分低价VPS或服务器商家使用的是租用的二级代理商资源,没有自己的机柜和带宽,当你需要修改telnet端口并在防火墙里做白名单控制时,小机房往往连自助管理面板都没有,遇到故障只能反复提交工单,而持牌自营机房可以提供从物理层到应用层的排障支持,比如帮你检查交换机侧是否屏蔽了非标端口。
哪些场景仍然需要telnet
网络工程师调试交换机、路由器、防火墙设备时,telnet仍然是最稳妥的登录方式之一,因为很多网络设备的SSH实现并不完整,IoT设备、老旧的嵌入式系统、无头服务器安装等场景也依赖telnet或telnet转发,在这些情况下,把默认23端口改成一个高位端口,并限制源地址,是常见的安全过冬做法。
常见问题:关于telnet端口号的疑惑点
telnet 23端口连不上,但端口扫描显示开放,是什么原因?
最常见的原因是网络ACL或安全组规则,安全组放行了21端口却忘了放行23端口,或者出方向上限制了连接,其次是telnet服务本身的访问控制,比如/etc/hosts.deny里屏蔽了你的IP,还有一种情况是服务监听地址错误,比如只监听了127.0.0.1,没有监听0.0.0.0,排查时先确认netstat -tlnp | grep 23看监听状态,再检查防火墙和安全组。
telnet端口改成了2323之后,连接时提示超时,可能是什么原因?
修改端口后,服务端监听和客户端连接端口必须保持一致,如果你的服务端改了监听端口,但客户端仍然连接23端口,就会超时,SELinux和AppArmor也可能拦截对非标准端口的访问,需要执行setsebool -P authlogin_nsswitch_use_ldap这类策略调整(具体对应到telnet时,通常要更新SELinux策略),最直接的验证方法是telnet 服务器IP 2323,确认端口正确,同时检查本地防火墙是否放行了2323/TCP。
telnet比SSH慢,是不是因为端口号不同?
不是,telnet和SSH的速度差异来自协议本身,telnet每次按键发送一个TCP包,在延迟高的链路上体验明显变慢,SSH则做了数据压缩和加密传输优化,即便端口号和telnet不同(22),也不影响实际速度,如果你在跨地域管理服务器时感觉telnet卡顿,建议换用SSH或给telnet会话加上Mosh这类优化工具,无论用哪种协议,底层服务器所处机房的网络质量都会直接影响延时和丢包率,这也是为什么选择像酷番云这类同时具备CDN和IDC资质的服务商,能有效改善远程管理体验的一个原因。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/715357.html




