出站 SSH 连接的可用性是否意味着 SSH 隧道可行?

出站 SSH 连接的可用性是否意味着 SSH 隧道可行?

在工作中,我的公司最近变得疯狂并开始封锁所有网站(几乎所有,facebook,gtalk,picasa,hotmail,gmail等等)。

但是,我发现他们允许任何出站 SSH,而我家里有一台 Linux 机器,我可以毫无问题地通过 SSH 访问它。所以,现在我正在考虑使用 SSH 隧道通过我家里的 Linux 机器转移我的流量,以访问我现在被禁止访问的地方。:)

这是我到目前为止所做的,1) 在家里设置了 Squid 代理服务器,并在端口 3128(默认端口)上运行。2) 在办公室有一台 Linux 机器,我可以通过它通过 SSH 连接到我的家。3) 在我的浏览器中将 linux_machine_at_office 设置为代理。

我登录了 Office Linux 机器并尝试使用以下命令建立隧道,但似乎不起作用。

ssh username@HOME_IP_ADDRESS -L 2011:HOME_IP_ADDRESS:3128 

username => 我的机器@home上的用户名 HOME_IP_ADDRESS => Linux 机器@home的IP地址

在 Firefox 中,我将代理地址更改为 Office_Linux_machine 并将端口更改为 2011,但它不起作用。

我甚至尝试通过 2011 端口 telnet 到 office_linux_machine,希望它能让我登陆 Squid 服务器@home,但这里的连接也失败了……

所以我想知道出站是否可用,我的命令是否有问题?

谢谢 :)

答案1

如果 ssh 出站被授权,那么您可以为您的流量创建一个隧道。

要指出当前 ssh 命令中的错误,我认为一个好方法是:

ssh username@HOME_IP_ADDRESS -L 2011:localhost:3128

更进一步来说,您不需要设置 squid,事实上 OpenSSH 可以充当 SOCKSv5 代理服务器。您可以尝试以下命令:

ssh username@HOME_IP_ADDRESS -D 3128

答案2

隧道应该可以实现。您可能需要将代理服务器更改为“localhost”(127.0.0.1)。

在采取任何进一步行动之前,你真的应该在试图规避公司网络安全政策之前与管理层核实——如果他们发现你违反了他们的规则(未经授权),这些规则可能是出于安全原因而制定的,你可能会失去工作。

答案3

我发现我必须使用参数“-oUsePrivilegedPort\ yes”才能使其工作。我已经设置了好几年了,所以我不记得为什么需要这样做。

此外,您必须有某个程序监听远程端口,以便传输流量。就我而言,我让 Squid 监听该端口。没有程序监听该端口是它拒绝连接的原因。

相关内容