安装 proxychains 和 tmux:你可能会遇到这样的事情:
sudo ssh -R 8080:us.archive.ubuntu.com:80 user@computerb.host
echo 'Acquire::http::Proxy "http://localhost:8080";' | sudo tee /etc/apt/apt.conf.d/proxy.conf
apt-get update
apt-get install proxychains tmux
sudo rm /etc/apt/apt.conf.d/proxy.conf
注意到最后一行取消了 apt 代理配置吗?
拥有代理链和 tmux 后,您可以获得更可靠的操作,并且无需更改时髦的 apt 配置,并且 pip / curl 等也可以工作。
首先,启动 tmux。 (快速入门,使用CTRL-B 而不是另一个键,'c' 表示另一个新外壳,'n/p' 表示在外壳之间循环,'d' 分离并保持运行)。
tmux
接下来,我们将建立一个 ssh 连接,从隔离的计算机返回到任何可以通过 SSH 访问且可以访问互联网的计算机,我们称之为server。
ssh -f -NT -M -S ~/.ssh/ssh_socket_for_proxychains -D 127.0.0.1:17471 server
这似乎什么也没做,因为它在后台运行。你可以用ps aux |grep ssh左右看到它。
现在,配置/etc/proxychains.conf:
sudo nano /etc/proxychains.conf
将最后一行从 socks4 127.0.0.1 9050 更改为 socks5 127.0.0.1 17471。
最后,您现在可以运行 sudo proxychains apt upgrade -y 和 proxychains pip install ... 之类的东西而不会失败。
作为奖励,您可以分离 tmux 会话 (CTRL-b,d) 并稍后返回(ssh 重新进入,然后 tmux a)。
对于 raspberrypi,如果您将“us.archive.ubuntu.com”更改为“archive.raspberrypi.org”,它会起作用,而对于随机 debian,您可能会遇到“ftp.us.debian.org”的运气
对我来说,用例是隔离静态 ip 网络上的 raspi 之类的东西,我有另一台服务器,它有两个网络连接(一个可以访问互联网,另一个连接到隔离的局域网),它不路由:它正在运行 trueNAS ,并且局域网处于隔离状态。
但它确实有我可以 ssh 进入的 opensshd,然后 ssh 到 pi。
在这种情况下,它的独立局域网 IP 地址是 pi 连接回的“服务器”。它的 pi 获得了 proxychains 和 tmux,然后可以通过 apt 进行更新。
ssh -R 部分归功于 James Mertz,但它仅适用于 http 流量,任何具有 https URL 的东西都会失败;它不适用于 pip:从一堆不同的随机服务器中获取东西。不过,用它来获取代理链已经足够了。
proxychains howto 部分来自https://yuzhangbit.github.io/tools/use-apt-get-behind-socks5-proxy/