ssh 远程服务器中转服务
SSH 端口转发(或称SSH 隧道)是一种通过SSH 连接来中转网络流量的技术,可以实现内网穿透、访问内网资源等功能。简单来说,就是利用一台具有公网IP 的服务器作为跳板,将本地或远程的流量转发到目标服务器。
1. 本地端口转发(Local Port Forwarding):
将本地端口的流量转发到远程服务器,再由远程服务器转发到目标服务器。
ssh -L local_port:destination_host:destination_port username@gateway_host
: 将本地的local_port
端口的流量转发到gateway_host
上的destination_host
的destination_port
端口。- 例如:
ssh -L 8080:192.168.1.100:80 [email protected]
将本地的8080 端口流量转发到192.168.1.100 的80 端口。
2. 远程端口转发(Remote Port Forwarding):
将远程服务器的端口的流量转发到本地,再由本地转发到目标服务器。
ssh -R remote_port:destination_host:destination_port username@gateway_host
: 将gateway_host
的remote_port
端口的流量转发到本地的destination_host
的destination_port
端口。- 例如:
ssh -R 9000:192.168.1.100:80 [email protected]
将12.34.56.78
的9000 端口流量转发到本地的192.168.1.100 的80 端口。
3. 动态端口转发(Dynamic Port Forwarding):
建立一个SOCKS 代理,允许客户端通过这个代理访问任意目标服务器。
ssh -D local_port username@gateway_host
: 在本地的local_port
端口建立一个SOCKS 代理。- 例如:
ssh -D 1080 [email protected]
在本地的1080 端口建立一个SOCKS 代理。
- 内网穿透:访问位于内网的服务器,例如家庭网络中的NAS 或开发环境中的服务器。
- 访问内网服务:通过SSH 隧道访问内网的Web 服务、数据库等。
- 安全访问:通过加密的SSH 连接访问远程服务器,保证数据安全。
- 跨网络访问:在不同网络环境下,通过SSH 隧道实现互联互通。
假设你有一台具有公网IP 的服务器(IP: 12.34.56.78),你想访问你本地局域网内的一台服务器(IP: 192.168.1.100, 端口: 22),可以使用以下命令:
ssh -L 2222:192.168.1.100:22 [email protected]
然后在本地电脑上,使用 ssh -p 2222 user@localhost
就可以连接到192.168.1.100 这台服务器。
假设你有一台具有公网IP 的服务器(IP: 12.34.56.78),你想让这台服务器可以访问你本地的某个服务(比如8080 端口),可以使用以下命令:
ssh -R 8080:localhost:8080 [email protected]
然后在12.34.56.78 这台服务器上,就可以通过访问 localhost:8080
来访问你本地的8080 端口。
License:
CC BY 4.0