SSH隧道的三种用法

SSH 本身就具备强大的隧道功能,无需额外软件。通过 SSH 隧道,你可以安全地将本地端口、远程端口或动态端口转发到其他机器。根据不同的需求,主要有三种类型:

1. 本地端口转发 (Local Port Forwarding)

用途: 将本地端口的流量转发到远程机器的某个端口。这最常用于访问防火墙后的服务。

场景: 假设你的本地机器(A)想访问远程服务器(B)上运行在 localhost:8080 的一个 Web 服务,但防火墙阻止了直接访问。

命令:

Bash

ssh -L 9090:localhost:8080 user@remote_server_ip

ssh: 启动 SSH 客户端。

-L: 指定本地端口转发。

9090: 本地机器上的端口。

localhost:8080: 远程服务器上的目标 IP 和端口。

user@remote_server_ip: 远程服务器的登录信息。

效果: 运行这条命令后,你可以直接在本地浏览器访问 http://localhost:9090,它会自动通过 SSH 隧道将请求转发到远程服务器的 8080 端口。

2. 远程端口转发 (Remote Port Forwarding)

用途: 将远程机器的某个端口流量转发到本地机器的端口。这可以用来实现简单的内网穿透。

场景: 你的本地机器(A)在内网,想让公网服务器(B)的用户能够访问你本地运行在 localhost:8000 的服务。

命令:

Bash

ssh -R 8000:localhost:8000 user@remote_server_ip

ssh: 启动 SSH 客户端。

-R: 指定远程端口转发。

8000: 远程服务器上绑定的端口。

localhost:8000: 本地机器上的目标 IP 和端口。

user@remote_server_ip: 远程服务器的登录信息。

效果: 运行这条命令后,远程服务器上的用户可以访问 remote_server_ip:8000,请求会通过 SSH 隧道转发到你本地的 8000 端口。

3. 动态端口转发 (Dynamic Port Forwarding)

用途: 将本地机器变成一个 SOCKS5 代理服务器,所有流量都通过 SSH 隧道转发。这可以用来突破网络限制。

场景: 你想让本地所有网络请求都通过远程服务器转发,以访问被限制的网站。

命令:

Bash

ssh -D 1080 user@remote_server_ip

ssh: 启动 SSH 客户端。

-D: 指定动态端口转发。

1080: 本地 SOCKS 代理服务器的端口。

user@remote_server_ip: 远程服务器的登录信息。

效果: 运行后,你需要将本地应用的代理设置指向 localhost:1080,所有流量都会通过远程服务器进行转发。这比本地端口转发更灵活,因为它不限于特定的应用或端口。

总的来说,SSH 隧道本身就是一个强大的工具,能满足大部分端口转发和代理需求。如果你需要更复杂的内网穿透,例如多用户管理、Web 管理界面等,那么 FRP、NPS 等专用工具会更适合。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇