在工作中,我的公司最近变得疯狂并开始封锁所有网站(几乎所有,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 监听该端口。没有程序监听该端口是它拒绝连接的原因。