ssh 隧道代理技术

  1. ssh隧道技术
    1. 1. 动态端口转发 (SOCKS 代理):
    2. 2. 本地端口转发:
    3. 3. 远程端口转发:

ssh隧道技术

SSH 端口转发可以在本地和远程服务器之间创建一个加密的隧道,用于安全地传输数据。SSH 支持三种主要的端口转发模式:动态端口转发、本地端口转发和远程端口转发。

1. 动态端口转发 (SOCKS 代理):

ssh -D [local_port] [user@remote_server]
ssh -D 8080 -fN root@server2
  1. ssh - 用于建立 SSH 连接的命令行工具。
  2. -D 8080 - 设置 SOCKS 代理在本地机器的 8080 端口。通过这个代理,你可以将网络流量转发到 server2,然后从 server2 出去。
  3. -f - 将 SSH 会话移至后台,这样你不必保持终端打开。
  4. -N - 告诉 SSH 你不打算在远程服务器上运行任何命令;你只是设置代理。
  5. root@server2 - 指定你想要以 root 用户的身份登录 server2

例如,要在本地机器的 8080 端口上创建一个 SOCKS 代理:

ssh -D 8080 [email protected]

然后你可以在你的应用程序(如浏览器)中配置 SOCKS 代理为 localhost:8080,所有经过这个代理的流量都会经过 example.com

2. 本地端口转发:

ssh -L [local_port]:[destination_server]:[destination_port] [user@remote_server]

例如,想要将本地机器的 9000 端口的流量转发到 example.com 服务器上的 other_server_on_network:80

   ssh -L 9000:other_server_on_network:80 [email protected]

之后你可以在你的本地机器上访问 localhost:9000,它实际上会被转发到 other_server_on_network:80

3. 远程端口转发:

ssh -R [remote_port]:[destination_server]:[destination_port] [user@remote_server]

例如,假设你有一个在本地机器上运行的 web 服务监听在 3000 端口,你想要允许 example.com 上的用户通过他们的 9090 端口来访问它:

ssh -R 9090:localhost:3000 [email protected]

之后,任何在 example.com 上访问 localhost:9090 的尝试都会被转发到你的本地机器的 3000 端口。

这些都是端口转发的基础命令。当然,你可以结合其他 SSH 参数(如 -N(不执行命令)、-f(在后台运行)等)来增强端口转发的功能性。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。与我联系email c2VjaW5mby5tQGdtYWlsLmNvbQo=