如何通过SSH将192.X.X.X的HTTP流量从设备B隧道传输至设备C?
通过SSH隧道实现设备C访问设备A的Web应用
完全可以实现你的需求,利用SSH的本地端口转发功能,就能把设备B可访问的192.X.X.X的HTTP流量通过隧道传输到设备C,让你在设备C上直接访问目标Web应用。
具体操作步骤
在设备C上执行SSH转发命令
打开设备C的终端,运行以下命令(根据实际情况替换参数):# 基础版:保持终端前台运行 ssh -L 8080:192.X.X.X:80 设备B的用户名@设备B的IP地址如果想让SSH连接在后台静默运行,加上
-fN参数:# 后台运行版 ssh -fN -L 8080:192.X.X.X:80 设备B的用户名@设备B的IP地址参数说明:
-L:指定本地端口转发规则,格式为本地端口:目标IP:目标端口8080:设备C上用来映射的本地端口(可自行修改,只要不与现有端口冲突)192.X.X.X:80:设备A的Web应用地址和端口(如果是HTTPS,把80换成443)- 设备B的IP地址是你能SSH连接的10.X.X.X段地址
在设备C上访问Web应用
命令执行成功并保持SSH连接后,打开设备C的浏览器,输入:http://localhost:8080就能像在设备B上一样访问设备A的Web应用了。
进阶:直接输入192.X.X.X访问
如果想在设备C上直接输入192.X.X.X访问,需要做两个调整:
- 使用设备C的root权限转发到80端口(1024以下端口需要root):
sudo ssh -fN -L 80:192.X.X.X:80 设备B的用户名@设备B的IP地址 - 修改设备C的hosts文件,添加映射(以Linux/macOS为例):
之后在浏览器输入sudo echo "127.0.0.1 192.X.X.X" >> /etc/hostshttp://192.X.X.X即可直接访问。
注意事项
- 确保设备B能正常访问
192.X.X.X的目标端口(比如用telnet 192.X.X.X 80测试连通性) - 如果设备B的SSH端口不是默认的22,需要在命令里加
-p参数指定端口,比如ssh -p 2222 -L 8080:192.X.X.X:80 user@10.X.X.X - HTTPS应用只需把命令中的80替换为443,浏览器访问时用
https://localhost:8443(对应转发的本地端口)
内容的提问来源于stack exchange,提问作者Rohit Singh
相关产品推荐
相关产品推荐

