如何访问互联网并通过中间服务器运行apt-get?

Tra*_*ang 12 server ssh networking

我有一台运行 ubuntu 16.04 的机器。该机器只能访问 1 个远程服务器(也运行 ubuntu)。虽然远程服务器可以完全访问互联网。

root@localmachine:~# ifconfig usb0
usb0      Link encap:Ethernet  HWaddr 02:1e:10:1f:00:00  
          inet addr:10.1.0.94  Bcast:10.1.0.95  Mask:255.255.255.252
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4366027 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1813925 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:669835698 (669.8 MB)  TX bytes:265999026 (265.9 MB)

root@localmachine:~# ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=62 time=58.4 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=62 time=59.2 ms
Run Code Online (Sandbox Code Playgroud)

我需要通过 apt-get 在这台本地机器上安装一些包。

有没有办法通过 10.0.0.1 的公共服务器访问互联网?

感谢你的回复。

pLu*_*umo 14

打开终端并启动ssh动态端口转发:

ssh -D 1080 root@10.0.0.1
Run Code Online (Sandbox Code Playgroud)

这将在您的计算机上的端口 1080 上启动一个袜子代理。

将此行添加到您的/etc/apt/apt.conf文件中:

Acquire::socks::Proxy "socks5h://localhost:1080";
Run Code Online (Sandbox Code Playgroud)

然后你可以运行你的apt update/apt install命令。完成后,您可以关闭ssh连接并恢复apt.conf.

您还可以告诉您的浏览器或其他应用程序使用该 Socks 代理并访问 Internet。


Alp*_*lpy 6

最简单的方法是在中间服务器/网关上设置代理服务器并设置您的 apt 以使用此代理:

sudo vi /etc/apt/apt.conf.d/proxy.conf
Run Code Online (Sandbox Code Playgroud)

并添加这一行:

Acquire::http::Proxy "http://user:password@proxy.server:port/";
Run Code Online (Sandbox Code Playgroud)