场景
- 在阿里云上买了 TSDB - influxdb 和开了只读账户,内网地址是
ts-001.influxdata.tsdb.aliyun.com:8086
。
- 阿里云有一台拥有外网固定 IP 的机器 A 可以访问 TSDB,IP 是
123.123.123.123
。
- 公司内网的开发机器 B 可以通过 ssh 密钥的方式访问 A。
- 想在公司内网机器 C 安装 chronograf 来查看 TSDB 的数据。
ssh 命令
NAME
ssh — OpenSSH SSH client (remote login program)
SYNOPSIS
ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile]
[-I pkcs11] [-i identity_file] [-J destination] [-L address] [-l login_name]
[-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] destination [command]
DESCRIPTION
ssh (SSH client) is a program for logging into a remote machine and for executing commands on a remote
machine. It is intended to provide secure encrypted communications between two untrusted hosts over an
insecure network. X11 connections, arbitrary TCP ports and UNIX-domain sockets can also be forwarded
over the secure channel.
使用的命令如下:
ssh -NTCqnf -L 0.0.0.0:13555:ts-001.influxdata.tsdb.aliyun.com:8086 root@123.123.123.123
- N:不执行远程命令,专为端口转发度身打造
- T:禁止分配伪终端,后面解释关于伪终端
- C:开启压缩传输模式
- q:安静模式运行,忽略提示和错误
- n:重导 stdin 到
/dev/null
(实际上是避免读取 stdin),配合 -f 参数使用
- f: 后台执行 ssh 指令
伪终端
当用 ssh 或 telnet 等登录系统时,系统分配给我们的终端就是伪终端。如果 ssh 使用 -T 选项登录系统时,由于禁用,将无法获得终端;但仍能够获得 shell,只不过看起来像在本地,也没有很多应有的环境变量,例如命令提示符,PS1 等。
当使用命令 ps -ef|grep [b]ash
时会看到显示终端那里是一个问号。
压缩传输模式
如果是一般情况下的敲命令,只会让事情变慢,命令交互对速度还是有要求的,太慢的人会受不了,也容易出错。我们的需求是一个传输需求,因此压缩是有必要的,因为带宽是瓶颈。缺点是 CPU 会略有上升。
autossh
autossh 本身就是个管理、维护 ssh 的命令,所以其参数也只有最基本的 -V(version)、-M(monitoring)、-f(background)
。端口转发,反向代理等功能还是 ssh 实现的,我们把参数传给 autossh,然后 autossh 传给 ssh 来实现特定的功能。
NAME
autossh — monitor and restart ssh sessions
SYNOPSIS
autossh [-V] [-M port[:echo_port]] [-f] [SSH_OPTIONS]
DESCRIPTION
autossh is a program to start a copy of ssh and monitor it, restarting it as necessary should it die or stop passing traffic.
比之前的命令添加的一个 -M 5678
参数,负责通过 5678 端口监视连接状态,连接有问题时就会自动重连,去掉了一个 -f 参数,因为 autossh 本身就会在 background 运行。
autossh -M 5678 -NTCqnf -L 0.0.0.0:13555:ts-001.influxdata.tsdb.aliyun.com:8086 root@123.123.123.123
相关阅读