CentOS命令行使用SS代理的方法

背景:

  使用Golang的go get命令下载三方包时发现官方的包被墙无法正常下载。

  针对无法正常使用go get下载的官方包可以使用以下几种方法进行代替:

  • 使用github资源进行替代
  • gopm.io下载
  • 搭梯子直接用go get下载

安装Shadowsocks:

yum update

yum install python-pip

pip install shadowsocks

  安装成功后会在/usr/bin目录下发现ssserver和sslocal两个可执行脚本。

  ssserver代表服务端用的,sslocal是客户端用的脚本,在这里我们使用sslocal进行工作。

  为了方便使用在/etc/下创建sslocal启动的配置文件shadowsocks.json

{
"server":"server_ip",    
"server_port":server_port,   
"local_address": "127.0.0.1",
"local_port":1080,
"password":"password",
"timeout":300,
"method":"rc4-md5",
"fast_open": false,
"workers": 1
}

  启动命令nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1,该启动方式会让ss以客户端模式在后台运行,相关配置读取/etc/shadowsocks.json文件,输出会进行丢弃。

  使用命令netstat -ant | grep 1080查看本地映射端口是否打开,1080是你在配置文件中local_port配置的值。

安装provixy:

  ss启动后还不支持命令行下的翻墙,需要使用provixy将命令行下的http请求转发到ss。

  使用yum install privoxy安装privoxy,修改配置文件/etc/privoxy/config文件,添加forward-socks5 / 127.0.0.1:1080 .,同时确保listen-address 127.0.0.1:8118没有被注释。

  使用命令service privoxy start启动privoxy,命令service privoxy status查看privoxy是否正常启动。

设置http/https/ftp代理:

  修改/etc/profile,增加配置语句

export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export ftp_proxy=http://127.0.0.1:8118

  127.0.0.1:8118/etc/privoxy/configlisten-address字段配置的值。

  使用source /etc/profile命令使配置立即生效。这时就可以使用go get进行包的下载了。

  ps:不使用时将/etc/profile的那三条语句注释掉,节省流量。

5.开机启动:

  配置ss开机启动:在/etc/rc.local中增加启动命令命令su - username -c "nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1 &"

  配置privoxy开机启动:使用命令systemctl enable privoxy.service

  http/https代理:在要使用时,直接执行命令source /etc/profile

本文使用CC BY-NA-SA 4.0协议许可
本文链接:http://404-notfound.com/CentOS命令行使用SS代理的方法/