在 Linux 上使用 lsnrctl(Oracle Listener 控制工具) 时,“加密”通常指两类事情,下面分别说明,并给出可操作做法。
Oracle 11g 及以后,lsnrctl 默认通过本地 IPC 或 TCP 管理 Listener,明文传输。可通过 Oracle Net 加密(TCPS) 来加密。
mkdir -p $ORACLE_HOME/network/admin/wallet
orapki wallet create -wallet $ORACLE_HOME/network/admin/wallet -pwd WalletPass123 -auto_login
listener.oraLISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCPS)(HOST = localhost)(PORT = 1522))
)
)
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/wallet)
)
)
SSL_CLIENT_AUTHENTICATION = FALSE
lsnrctl stop
lsnrctl start
之后
lsnrctl通过 TCPS 端口 与 Listener 通信,即为加密连接。
Oracle 10g/11g 早期 支持 Listener 口令:
lsnrctl
LSNRCTL> change_password
LSNRCTL> set password
⚠️ 注意:
listener.ora,加密强度低很多人问“lsnrctl 加密”,实际是想加密 数据库连接:
sqlnet.ora 中启用加密SQLNET.ENCRYPTION_SERVER = REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER = (AES256)
✅ 使用 TCPS + Wallet
✅ 限制 lsnrctl 执行权限(root/oracle 组)
✅ 禁用远程 Listener 管理
✅ 使用防火墙限制 1521/1522 端口
如果你能说明:
我可以给你 完整可复制的配置示例。