SSH 开启隧道
如果需要自动重连 SSH 隧道,可以使用 使用 autossh 自动重连 SSH。
1 - 命令格式
bash
ssh -g -N -L <local_port>:<remote_host_2>:<remote_port_2> <user>@<remote_host_1>执行后,本机的 <local_port> 端口就会被映射到 <remote_host_2>:<remote_port_2>。
其他 host 也可以通过访问本机的 <local_port> 来访问 <remote_host_2>:<remote_port_2>。
2 - 参数说明
-L: 表示本地端口转发,指定本地<local_port>作为转发端口,将远程主机的端口<remote_host_2>:<remote_port_2>映射为本地端口[bind_address:]port:host:hostport: <-- 常用[bind_address:]port:remote_socketlocal_socket:host:hostportlocal_socket:remote_socket
-R: 与-L相对,表示将本地端口转发到远程主机[bind_address:]port:host:hostport: <-- 常用[bind_address:]port:local_socketremote_socket:host:hostportremote_socket:local_socket
-g: 允许外界主机连接本地转发端口<local_port>-N: 连接后不执行命令(否则隧道只在命令执行期间存在,命令完成后就会退出)-f: 以后台方式运行<user>@<remote_host_1>: 表示以<remote_host_1>作为隧道访问<remote_host_2>:<remote_port_2>,<user>为登录用户- 也使用可以在本机
~/.ssh/config中配置的连接信息和别名
- 也使用可以在本机
3 - Example
假设我们有一台主机可以 SSH 连接到 fjscms (在 ~/.ssh/config 中已经配置了对 fjscms 的连接信息),fjscms 可以访问到 10.119.194.10 的 80 端口。
我们在这台主机上通过 SSH 开启一个隧道,监听 8080 端口,访问这台主机的 8080 端口就可以访问到 10.119.194.10:80。
bash
ssh -g -N -L 8080:10.119.194.10:80 fjscms