因为不能直接访问外网的listener主机,只能在server上直接做sqlplus,很不方便,所以决定做端口转发。

我就简单说说,步骤非常容易

1.查清楚listener的ip和 端口号

lsnrctl status


假如我们的实例叫做orcl,listener的地址是10.23.10.12,端口是1521


2.打开一个有端口转发功能的shell连接工具,比如secureCRT

选择一台你最常连接的server,右击会话选项,选择端口转发。

171039841.png


3.添加,然后设置地址,如图所示。名称随便取,本地ip,端口号就是转发后的端口号。远程要写listener的地址和端口,不能错。

171213458.png


4.N多确定。配置TNS

orcl=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 10037))
    (CONNECT_DATA =
      (ORACLE_SID = orcl)
    )
  )

就这样就行了


5.保持刚才那个server连接畅通的情况下,可以先tnsping测试下,再sqlplus登录

tnsping orcl
sqlplus user/pass@orcl

tnsping 会返回OK。如果没开SERVER,会返回监听不存在,因为tns写着localhost。如果开了server报错,tns关闭连接,是因为端口错了。


P.S.此方法同样适用于FTP/SFTP应用。