通过SSH通过另一台服务器隧道传输yum流量


10

我正在公司代理后面运行Fedora桌面,该代理阻止了yum流量(特别是*.gz*.bz2)。我可以通过ssh访问单独的RedHat机器,该机器可以下载喜欢的任何东西。

当我执行yum update其他yum命令时:是否可以将该流量路由到RedHat机器来为我执行下载?我在RedHat机器上没有root用户访问权限,但是我可以登录并使用wget下载文件。如果是这样,怎么办?

Answers:


21

我的解决方案类似于@slm的解决方案,但是我改用了SOCKS,因为它更简单并且不需要在服务器或客户端上安装代理。

在受限访问下在计算机上运行所有命令。

yum.conf设置代理如下

proxy=socks5h://localhost:1080

从终端类型

ssh -D 1080 YOUR_USER@YOUR_SERVER_WITH_FULL_WEB_ACCESS

按Enter键并输入密码。

现在,在单独的终端(不是ssh一个)中键入

yum update

1
我尝试在yum.conf中使用socks5h代理设置,但是yum抱怨它不是http,https或ftp。(使用Centos6)
gnac'Nov

我的解决方案适用于Fedora 20和21。Cent和Fedora具有类似的发行版,因此有点奇怪,它不起作用。
jax 2015年

嗨,您提到的ssh命令应该在具有受限访问权限的计算机上运行吗?如果是,我想知道防火墙如何不会阻塞并引起类似“ ssh:连接到主机YOUR_SERVER_WITH_FULL_WEB_ACCESS端口22:主机没有路由”的错误。从受限计算机可以访问YOUR_SERVER_WITH_FULL_WEB_ACCESS吗?
Hei,

@Hei是,需要从您的计算机上访问“ YOUR_SERVER_WITH_FULL_WEB_ACCESS”。以我为例-我的互联网在本地受到限制。
杰克斯(Jax)

4

您应该能够通过SSH连接代理YUM的流量,如下所示:

  1. 添加到/etc/yum.conf受保护的服务器上:

    proxy=http://127.0.0.1:8080
    
  2. 从具有正常入站/出站ssh访问权限的服务器中:

    $ ssh -R 8080:ssh.server:8080 user@protected.server
    
  3. 在要运行YUM命令的服务器上:

    $ yum update
    

参考文献


我只需要澄清一下。(我将Fedora桌面称为desktop,将具有完全下载访问权限的RedHat服务器称为server)。所以我想我需要做的proxy=http://127.0.0.1:8080desktop因为这是需要yum更新的计算机ssh -R 8080:ssh.server:8080 user@protected.serverdesktop也是我的。server配置在哪里出现或没有?
jax 2014年

2
您缺少运行HTTP代理的步骤,该HTTP代理侦听上的端口8080 ssh.server
吉尔斯(Gillles)“所以-别再作恶了”

@Gilles我需要在我的代理desktopserver?如果不是服务器,因为没有root访问权,我将无法安装它
jax

@jax您需要在具有Internet连接的计算机上运行代理。您无需以超级用户身份运行它。Tinyproxy易于设置(有很多替代方法)。
吉尔斯(Gillles)“所以-别再作恶了”

@Gilles,我在其他地方发现可以创建一个Socks代理,显然可以自动路由TCP流量。ssh -D 8888 user@server在桌面上,那么您需要告诉yum使用此服务器proxy=socks5h://localhost:8888。那么您能看到任何问题吗?这意味着我不需要在服务器计算机上安装任何东西,这对我来说是理想的,因为它是共享计算机。我要等到星期一才能进行测试。
jax 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.