CentOS中Informix的网络设置指南
小樊
35
2025-12-17 13:31:02
CentOS 中 Informix 网络设置指南
一 系统网络与主机名准备
- 确认网卡与地址:使用 ip addr 查看接口名(如 eth0/enp0s3),确保已分配 IP 地址/子网掩码/网关。
- 持久化配置(示例为 ifcfg-eth0):编辑 /etc/sysconfig/network-scripts/ifcfg-eth0,设置 BOOTPROTO=static、ONBOOT=yes、IPADDR、NETMASK、GATEWAY;如需 DNS,添加 DNS1。
- 应用与验证:执行 systemctl restart NetworkManager 或 systemctl restart network;用 ping 网关IP、cat /etc/resolv.conf 验证。
- 主机名与解析:设置 /etc/hostname 与 /etc/hosts,确保本机名可解析到本机 IP,避免回环导致的监听异常。
以上为 CentOS 常规网络配置要点,适用于作为 Informix 服务器或客户端的系统准备。
二 Informix 网络核心配置
- 主机名与端口映射
- 编辑 /etc/hosts:为数据库服务器添加条目,例如:192.168.10.20 informix-db。
- 编辑 /etc/services:为实例定义服务名与端口,例如:infx1 9088/tcp(端口需唯一,且 1024 及以上;Informix 常用端口示例包括 9088/tcp、9089/tcp(SSL))。
- sqlhosts 配置
- 编辑 $INFORMIXDIR/etc/sqlhosts(如 /opt/informix/etc/sqlhosts),格式:dbservername protocol hostname service。示例:
- 服务器条目:infx1 onsoctcp informix-db infx1
- 若需跨实例通信,给同一实例再定义一个带协议的别名(如 onsoctcp)放入 DBSERVERALIASES,以便协调器与从属服务器使用指定协议连接。
- onconfig 关键项
- 设置 DBSERVERNAME infx1;如需别名,设置 DBSERVERALIASES infx1_tcp(与 sqlhosts 中协议/别名一致)。
- 配置 NETTYPE soctcp,1,50,CPU(示例值,按并发与 CPU 规划调整)。
- 如需 SSL,准备证书并在 onconfig 中启用相应 SSL 参数,同时使用 sqlexec-ssl/9089 服务名。
以上文件与参数是 Informix 基于 TCP/IP 的必备配置,确保客户端能通过“服务名/端口”解析到正确的主机与端口。
三 防火墙与 SELinux 放行
- firewalld(推荐):开放 Informix 端口(示例为 9088/tcp)
- 命令:firewall-cmd --permanent --add-port=9088/tcp
- 重载:firewall-cmd --reload
- 如需端口段:firewall-cmd --permanent --add-port=9088-9090/tcp
- SELinux:如连接被拒且 SELinux 处于 Enforcing,可先临时设为 Permissive 验证是否为 SELinux 所致:setenforce 0;确认后配置相应布尔值或策略,再恢复 Enforcing。
- 云环境:同时放行云安全组/NACL 对应端口。
上述步骤可确保操作系统与云平台层面的网络访问策略不会阻断 Informix 端口。
四 启动与连通性验证
- 启动引擎:执行 oninit 使配置生效;使用 onstat - 查看引擎状态,确认无网络相关报错。
- 监听与端口:
- 查看端口监听:ss -lntp | grep 9088 或 netstat -tulnp | grep 9088
- 远程探测:nc -vz informix-db 9088 或 telnet informix-db 9088
- 客户端连通:
- 使用 dbaccess 或应用连接串(服务名 infx1 或 IP:9088)测试。
- JDBC/ODBC 使用正确的主机、端口与服务名;若使用 SSL,端口改为 9089 并配置证书。
- 日志排查:检查 $INFORMIXDIR/log/ 下相关日志,定位协议、端口、权限或解析类错误。
以上流程覆盖从本机监听、端口可达性到客户端连接的全链路验证。
五 常见问题与排查要点
- 端口与协议不一致:确认 /etc/services 与 sqlhosts 中的服务名、端口、协议(如 onsoctcp)完全一致;跨实例通信时,确保 DBSERVERALIASES 与 sqlhosts 的协议匹配。
- 主机名解析失败:优先使用 /etc/hosts 保证短名解析到正确 IP;避免仅依赖 DNS 导致内网解析不一致。
- 防火墙/SELinux 拦截:按第三节放行端口;必要时以 setenforce 0 做 A/B 验证。
- 权限与端口范围:非 root 用户仅能使用 1024 及以上端口;确保端口未被其他进程占用。
- 监听地址限制:若需监听所有地址,可在相应网络配置中使用通配方式(如主机名或 0.0.0.0 的解析结果),并确保 sqlhosts 与客户端使用一致的地址表达。
这些要点覆盖了配置一致性、解析、权限与策略层面的高发问题。