use*_*278 4 linux ssh proxy service tunnel
首先,我的设置是一台 Ubuntu 笔记本电脑和一台 Ubuntu 服务器。
我的本地笔记本电脑上有一个程序需要访问某个 Web 服务(我们称之为http://someserver.com/someservice123)。现在这个服务有一个防火墙,它只允许从我服务器的 IP 访问。
我可以在笔记本电脑和服务器之间使用某种类型的 SSH 隧道,以便当笔记本电脑上的 python 脚本向http://someserver.com/someservice123发送请求时,该服务会看到来自我服务器 IP 的请求?
我知道它看起来像:
ssh -N -R 80:localhost:80 user@myserver
Run Code Online (Sandbox Code Playgroud)
但我不确定。
您想要的不是反向隧道,而是常规隧道。
ssh -L 80:someserver.com:80 user@myserver
Run Code Online (Sandbox Code Playgroud)
这将在您的笔记本电脑 (localhost) 的端口 80 上创建一个侦听套接字,该套接字将通过 myserver 上的 SSH 服务器转到 someserver.com。
我通常将隧道与选项 -CfN 结合起来,-C 将启用压缩(稍微加快速度),一旦身份验证完成,-f 会将 SSH 发送到后台(因此您仍然有机会在需要时输入密码) , -N 将确保没有命令在 SSH 服务器上执行(在后台运行 SSH 并不安全,假设可以使用它向服务器发送命令,这是一种健康的偏执狂/一种好的做法)。
如果您不关心在您的笔记本电脑和 myserver 之间建立一个非常安全的连接,您还可以将密码更改为更快的密码,例如使用 -c 河豚或 arcfour128(仍然更快)的河豚。
所以我会用的是这个:
ssh -CfNc arcfour128 -L 80:someserver.com:80 user@myserver
Run Code Online (Sandbox Code Playgroud)
这将为您提供直接进入后台的漂亮、快速的隧道,而不是在您的服务器上留下一个打开的命令提示符。
请记住,如果您将它发送到后台,当您想打破隧道时,您必须首先通过执行类似的操作来找到进程 IDps -ef | grep ssh并杀死正确的进程 ID。
| 归档时间: |
|
| 查看次数: |
1451 次 |
| 最近记录: |