Oracle SQL*NET 历史端口
66 是 Oracle 早期 SQL*NET v1 名称服务留下的注册端口,IANA 名录里的名字就是 sqlnet。现代 Oracle 数据库的监听器默认在 1521 接受连接,1522 常被用作第二实例或备库,因此 66 只在极老的环境和端口名录里见到。排查 Oracle 连通性时要以 listener.ora 的实际配置和监听器状态为准。
基本信息
| 服务 | sqlnet(Oracle SQL*NET v1) |
|---|---|
| 协议 | TCP/UDP |
| 登记 | IANA(含 *net 系列) |
| 现代端口 | 1521 默认、1522 常见第二实例 |
| 现状 | 仅见于历史系统与端口名录 |
典型使用场景
- 分析老 Oracle 环境时确认监听实际开在哪个端口
- 端口扫描报告里出现 66,判断是真实服务还是噪声
- 学习 Oracle 网络架构时理解 SQL*NET 到 Net Services 的演进
- 做连通性排障时先看监听器状态而不是翻端口名录
- 规划数据库迁移时清点遗留端口的依赖
- 对照 IANA 名录编写资产指纹时,区分历史注册项与在用端口
定位真实监听端口
定位真实监听端口
lsnrctl status # 查看监听器端口与已注册服务
lsnrctl services # 查看实例注册情况
ss -lntp | grep -E ':(66|1521|1522) '
grep -i PORT $ORACLE_HOME/network/admin/listener.oraOracle 相关注册项
| 端口 | 登记名 | 说明 |
|---|---|---|
| 66 | sqlnet | SQL*NET v1 名称服务,早已不用 |
| 118 | sqlserv | 早期注册项,同属历史遗留 |
| 156 | sqlsrv | 早期注册项 |
| 1521 | 事实标准 | 现代监听器默认端口 |
| 1522 | 常见替代 | 多实例或备库环境常用 |
排障分层:连不上 Oracle 先看网络层端口是否可达,再看监听层 lsnrctl status 是否注册了服务,最后看实例层数据库是否启动、服务名与 SID 是否写对。只盯着 1521 通不通,很容易漏掉后面两层。
看到 66 端口开放,先确认是上古版本 Oracle 还是扫描噪声。真实存在的服务要立刻纳入台账并评估能否下线;如果无人认领,按未知服务流程处置并限制访问来源。
版本演进:SQL*NET v1、Net8、Oracle Net(Net Services)是三代不同实现。客户端的 tnsnames.ora 决定要连到哪个地址与端口,改配置时两端要同步核对监听器端口,只改一头会出现连接依旧失败的怪现象。