0%

在国内访问GitHub的解决方案:使用Shadowsocks代理

当在国内访问GitHub时,可能会遇到无法克隆(clone)或连接失败等问题。以下是一种解决方法,通过在远程部署Shadowsocks并使用ss-local命令连接,来实现代理访问。
config.json的内容示例

1
2
3
4
5
6
7
8
9
{
"server":"远程IP",
"server_port":"远程端口",
"local_port":1080,
"local_address": "127.0.0.1",
"password":"远程shadowsocks密码",
"timeout":60,
"method":"chacha20-ietf-poly1305" //远程加密方式
}

首先,确保已经在远程服务器上部署了Shadowsocks,并配置了相应的参数。在本地终端中执行以下命令,连接到远程Shadowsocks服务器:

1
ss-local -c /etc/sslocal/config.json

请将/etc/sslocal/config.json替换为实际的配置文件路径。

确认ss-local正常运行

1
netstat -tlnp

接下来,您可以使用curl命令验证代理连接。运行以下命令:

1
curl --socks5 127.0.0.1:1080 https://httpbin.org/get

这将使用本地的Shadowsocks代理连接到httpbin.org,并获取其响应。如果您能够成功获取响应,并且显示的IP地址与远程IP相符,则说明代理连接正常。

如果您希望在终端中全局应用代理设置,可以设置环境变量all_proxy。这将使所有的HTTP/HTTPS流量通过本地的Shadowsocks代理进行转发。

运行以下命令:

1
2
export all_proxy="socks5://127.0.0.1:1080"
git clone https://github.com/...

将上述github链接替换为要克隆的实际GitHub仓库的URL。如果代理连接正常,您应该能够成功克隆GitHub仓库。

请注意,这些命令和配置示例仅供参考,并可能需要根据您的实际情况进行相应的修改。