ssh 代理轉發功能

ssh 是每一個運維人員最熟悉的工具了。可是它的神奇功能你可能並不清楚。今天就用例子說一說 ssh 的代理轉發功能。web

 

1、代理遠程端口到本地bash

  如上圖中 Client 到 Server A 的網絡是通的,Server A 到 Server B 的網絡也是通的,Client 到 Server B 的網絡不通。Client 怎麼能一次 ssh 就連到 Server B 呢?服務器

下面一條 ssh 命令幫你搞定網絡

# 在 Server A 上執行
ssh -qTfNnC -L 10.0.0.2:9022:127.0.0.1:22 root@172.25.0.2

有了上面的命令,而後在 Clinet 執行 `ssh -p 9022 10.0.0.2` 便可登陸到 Server B。運維

 

2、代理本地端口到遠端(內網穿透)ssh

 

  如上圖 Server A 有公網 IP,Server B 沒有公網 IP,Server B 上有 web 服務。Server B 能夠 ssh 到 Server A。Server A 不能直接連到 Server B。如何能讓 Client 訪問到 Server B 的 web 服務呢?工具

下面一條 ssh 命令幫你搞定ui

# 在 Server B 上執行
ssh -qTfNnC -R '[::]:8080:127.0.0.1:80' root@123.57.215.128

# 遠程服務器 123.57.215.128 sshd 須要開啓 `GatewayPorts yes`
# grep GatewayPorts /etc/ssh/sshd_config# GatewayPorts yes

有了上面的命令,而後在 Client  直接訪問 http://123.57.215.128:8080/ 就訪問到了 Server B 的 web 服務。3d

 參數具體含義以下:代理

  • -q: quiet模式,忽視大部分的警告和診斷信息(好比端口轉發時的各類鏈接錯誤)

  • -T: 禁用tty分配(pseudo-terminal allocation)

  • -f: 登陸成功後即轉爲後臺任務執行

  • -N: 不執行遠程命令(專門作端口轉發)

  • -n: 重定向stdin爲/dev/null,用於配合-f後臺任務

  • -C: 開啓壓縮

相關文章
相關標籤/搜索