我自己的网络环境是透明代理,再不济自己电脑上也能开 TUN,所以 git 命令就算走 ssh,搭配如下配置让连接 GitHub 使用 443 端口,就能走 HTTP 代理:
Host github.com
HostName ssh.github.com
Port 443
User git
但是在不可控的容器环境里无法使用 TUN 的情况下,无法完成透明代理,SSH 也就无法使用代理了。
解决方案如下:
在 ~/.ssh/config 最前面添加以下配置:
Host *
ProxyCommand nc -x <sock5代理> %h %p
其中 <sock5代理> 是你代理软件开放的 SOCK5 代理地址,例如 127.0.0.1:1080。
安装 nc:
sudo apt install netcat-openbsd
改完即刻生效。</sock5代理></sock5代理>