温馨提示×

Ubuntu如何使用SSH隧道

小樊
41
2025-02-27 14:35:30
栏目: 智能运维
Ubuntu服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Ubuntu中使用SSH隧道(SSH Tunneling)可以让你安全地通过SSH连接转发本地端口到远程服务器上的端口,或者反过来。这通常用于绕过防火墙限制、保护数据传输或访问内部网络资源。以下是使用SSH隧道的基本步骤:

1. 基本概念

  • 本地端口转发:将本地机器的端口转发到远程服务器上的端口。
  • 远程端口转发:将远程服务器的端口转发到本地机器上的端口。
  • 动态端口转发:创建一个SOCKS代理,可以用于任何基于TCP的应用程序。

2. 本地端口转发

假设你想将本地机器的端口12345转发到远程服务器example.com的端口80

ssh -L 12345:localhost:80 user@example.com

这会创建一个隧道,使得访问本地机器的12345端口时,数据会被转发到example.com80端口。

3. 远程端口转发

假设你想将远程服务器example.com的端口12345转发到本地机器的端口80

ssh -R 12345:localhost:80 user@example.com

这会创建一个隧道,使得访问example.com12345端口时,数据会被转发到本地机器的80端口。

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

假设你想创建一个SOCKS代理,使得所有通过该代理的TCP连接都会被转发到远程服务器:

ssh -D 1080 user@example.com

这会创建一个SOCKS代理,监听本地机器的1080端口。你可以配置浏览器或其他应用程序使用这个代理。

5. 使用SSH隧道访问内部网络资源

假设你想通过SSH隧道访问内部网络中的某个服务,例如internal-service.example.com的端口80

ssh -L 8080:internal-service.example.com:80 user@example.com

然后,你可以通过访问localhost:8080来访问internal-service.example.com80端口。

6. 持久化SSH隧道

如果你需要长时间保持SSH连接,可以使用autossh工具来自动重连:

sudo apt-get install autossh
autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -L 12345:localhost:80 user@example.com

7. 注意事项

  • 确保你有权限访问远程服务器,并且远程服务器允许端口转发。
  • 使用SSH隧道时,数据传输是加密的,但要注意保护好SSH密钥和密码。
  • 如果使用动态端口转发,确保防火墙允许SOCKS代理的流量。

通过这些步骤,你可以在Ubuntu中轻松设置和使用SSH隧道。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:如何在Ubuntu上使用SSH隧道

0