ssh端口映射

考虑到在程序中使用ssh认证连接MongoDB数据库的问题,还折腾了《Java使用SSH连接MongoDB》《C#使用SSH认证连接MongoDB》《go中使用SSH认证连接MongoDB》。后面发现,在linux中ssh -L命令的可以直接完成ssh认证并将远程端口映射成本地端口。然后再然程序连接本地对应的端口就可以了。

ssh -CfNgL bind_port:host:hostport  user@ip -o TCPKeepAlive=yes

解析:

  • -C 压缩传输数据
  • -f 建立SSH连接后放置后台,静默模式
  • -N 不要执行远程命令。 这对于仅转发端口很有用(仅限协议版本2)
  • -g 允许远程主机连接本地端口转发
  • -L 指定本地(客户端)主机上的给定端口要转发到远程端的给定主机和端口。
  • bind_port: 本地监听端口
  • host:hostport: 远程映射地址和端口
  • user@ip: ssh服务器ip和登录用户
  • -o TCPKeepAlive=yes:tcp连接保持

例如:

ssh -CfNgL 3717:127.0.0.1:27017 192.168.0.105 -o TCPKeepAlive=yes

# 使用可以查看ssh进程
ps -ef | grep ssh

root     27059     1  0 20:10 ?        00:00:00 ssh -CfNgL 3717:127.0.0.1:27017 192.168.0.105 -o TCPKeepAlive=yes

然后,用mongodb连接 127.0.0.1:3717就可以了

0%