Skip to content

Instantly share code, notes, and snippets.

@shynome
Created September 5, 2018 06:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shynome/d1a6bf5c68b4504c21e4ae83add97eda to your computer and use it in GitHub Desktop.
Save shynome/d1a6bf5c68b4504c21e4ae83add97eda to your computer and use it in GitHub Desktop.
ssh 灵活应用跳板机访问内网机器

如果有一台一直运行公网服务器 host_public 的话, 可以这么弄

把一台内网服务器的 ssh 端口 映射到 host_public 的本地端口上, 称为 jump_host

ssh -NT -R 127.0.0.1:233:127.0.0.1:22 public_host
# -NT 表示只做转发
# -R 233:127.0.0.1:22 表示本地的 22 端口转发到公网服务器的 127.0.0.1:233 端口
# 这个进程用进程管理工具保证运行

ssh config 配置如下


Host host_public
  HostName ip_of_host_public

Host jump_host
  HostName 127.0.0.1
  Port 233
  ProxyCommand ssh -W %h:%p host_public

# local_* 表示以 local_ 开头定义的 host 通过 jump_host 去连接
Host local_*
  ProxyCommand ssh -W %h:%p jump_host

Host local_docker_manger
  HostName 192.168.100.32

ssh 连接内网服务器中的 docker_manager 主机

ssh local_docker_manger

ssh 使用 socks5 代理访问内网应用

ssh -NT -D 1080 local_docker_manger

参考链接:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment