国内的服务器有个蛋疼的问题:下载一些国外的依赖时非常慢甚至被墙。

比如 github 上的那些开源软件,下载速度只有十几K,甚至下不了。
再比如 packgist 至今都是被墙的,只能使用国内的镜像。

以前尝试过给服务器装个 v2ray 走代理,结果被云厂商扫描出来了,还给警告了一下。

怕被停服,不敢装了。

其实有个好办法就是使用 ssh -R 命令,将本地的代理端口共享给服务器,让服务器走你本地的代理去访问国外网站。

使用 ssh 连接服务器的时候,使用以下命令:

ssh -R 本地端口:本地主机:远程端口 用户名@远程主机

假设我本地的代理端口是 7890(也就是使用了混合模式的 clash),服务器的 7890 是空闲的

ssh -R 7890:127.0.0.1:7890 用户名@服务器地址

这时候,我就可以在服务器端使用:

export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

设置命令行代理了,设置后就可以使用了。

特殊场景

当然一些特殊场景下,需要根据软件的情况设置特殊的代理环境变量或者参数,这个就不一一枚举了,就说一个 docker。

由于 docker 拉取镜像使用的是 docker daemon 进程,而非 docker 命令行工具(只是一个发送命令的客户端),所以需要修改 docker daemon 的配置文件,然后重启 docker daemon 服务,具体参见这篇文章


proxychains

当然,也可以配合使用 proxychains,安装:

apt install proxychains

然后修改配置文件 /etc/proxychains.conf

将最后的:

[ProxyList]
socks4         127.0.0.1 9050

改为

[ProxyList]
#socks4         127.0.0.1 9050
socks5  127.0.0.1 7890

就可以了。

此时,举个例子,下载 github 上的开源软件就可以用以下命令:

proxychains wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz

实测速度达到 2M 每秒,也就是相当于 16M 带宽了。

唯一的缺点就是没办法保持 24 小时在线,除非你本地一直 ssh 连着。。。

标签: ubuntu, github, proxy

添加新评论