我有一台运行 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
我需要通过 apt-get 在此本地机器上安装一些包。
有没有办法通过 10.0.0.1 的公共服务器访问互联网?
感谢你的回复。
答案1
打开终端并启动ssh
动态端口转发:
ssh -D 1080 [email protected]
这将在您的计算机的 1080 端口上启动一个 socks 代理。
将这一行添加到您的/etc/apt/apt.conf
文件中:
Acquire::socks::Proxy "socks5h://localhost:1080";
然后您可以运行apt update
/apt install
命令。完成后,您可以关闭ssh
连接并恢复 中的更改apt.conf
。
您还可以告诉浏览器或其他应用程序使用 Socks 代理并访问互联网。
答案2
最简单的方法是在中间服务器/网关上设置代理服务器,并设置您的 apt 以使用该代理:
sudo vi /etc/apt/apt.conf.d/proxy.conf
并添加这一行:
Acquire::http::Proxy "http://user:[email protected]:port/";