终端中使用SS代理

1. 需要的场景

由于国内网络环境比较差,当国内的服务器需要拉取一些海外的内容时速度就特别慢甚至根本无法下载。有些能靠替换国内的源来解决,比如Linux发行版本的源、npm源、pip源等。没有国内源替换的就只能靠自己的方法了。

2. 安装使用(Debian系)
  • pip 安装shadowsocks
1
2
3
4
5
sudo apt-get update
sudo apt-get install python -y
sudo apt-get install python-pip -y
export LC_ALL=C
sudo pip install shadowsocks
  • 安装libsodium库(如果协议是chacha20类的需要安装,比较老的协议可以省掉这一步)
1
2
3
4
5
6
apt-get install software-properties-common -y
echo -ne '\n' | sudo add-apt-repository ppa:chris-lea/libsodium
sudo echo "deb http://ppa.launchpad.net/chris-lea/libsodium/ubuntu trusty main" >> /etc/apt/sources.list
sudo echo "deb-src http://ppa.launchpad.net/chris-lea/libsodium/ubuntu trusty main" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install libsodium-dev -y
  • 启动shadowsocks

    中文请自行替换成你的ss服务内容:),nohup + & 会后台运行。可以先不带上运行测试下。通过 lsof -i:1080 也可以查看1080端口上ss有没有运行。lsof -i:端口号 查看端口占用情况非常实用,部分系统可能需要单独安装,这里推荐下:)

    1
    nohup sslocal -s 服务器IP -p 端口号 -k 密码 -l 1080 -t 600 -m 协议 &
  • apt 安装配置 Polipo 代理,写入配置文件,service中启动Polipo

1
2
3
4
5
sudo apt-get install polipo -y
sudo chmod 777 /etc/polipo/config
echo -e "socksParentProxy = \"localhost:1080\" \n socksProxyType = socks5 \n logLevel=4" >> /etc/polipo/config
sudo service polipo stop
sudo service polipo start
  • 当前终端开启代理,Polipo默认在8123端口运行。这两条命令分别是让当前终端http流量走代理,和让https流量走代理。

    1
    2
    export http_proxy=http://localhost:8123
    export https_proxy=http://localhost:8123

    这样当前终端就是走代理的了,可以通过下面命令返回的IP判断当前终端使用代理没。

    1
    curl ip.sb
  • 终端中取消代理

    1
    unset http_proxy && unset https_proxy
3. 更多实用方式
  • 单独一条命令实用代理(curl 自行替换)

    1
    http_proxy=http://localhost:8123 curl ip.gs
  • git 使用原有的命令加上这个就OK 了

    1
    --config http.proxy=localhost:8123
  • 可以写入 .bashrc 简化(hp为简化后命令,可自行替换)

    source 让他立即生效

    1
    2
    echo alias hp=/"http_proxy=http://localhost:8123/" >> ~/.bashrc
    source .bashrc

    然后就可以使用简化了的了,像这样

    1
    hp curl ip.sb

    对于git可以这样

    1
    2
    echo gp=\" --config http.proxy=localhost:8123\" >> ~/.bashrc
    source .bashrc

    命令可以简化为这样,后面带上 $gp 即可

    1
    git clone https://github.com/pengchujin/Test.git $gp
  • Debian 也可以参考这个一键脚本(ss服务器自行替换!)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #!/bin/bash
    sudo apt-get update
    sudo apt-get install python -y
    sudo apt-get install python-pip -y
    export LC_ALL=C
    sudo pip install shadowsocks
    # export LC_ALL="en_US.UTF-8"
    # export LC_CTYPE="en_US.UTF-8"
    # sudo dpkg-reconfigure locales
    apt-get install software-properties-common -y
    echo -ne '\n' | sudo add-apt-repository ppa:chris-lea/libsodium
    sudo echo "deb http://ppa.launchpad.net/chris-lea/libsodium/ubuntu trusty main" >> /etc/apt/sources.list
    sudo echo "deb-src http://ppa.launchpad.net/chris-lea/libsodium/ubuntu trusty main" >> /etc/apt/sources.list
    sudo apt-get update
    sudo apt-get install libsodium-dev -y
    # ss 配置文件可以自行修改,s—server p port 端口 k 密码 l 本地端口 m加密方式 t时间默认就是
    nohup sslocal -s 服务器IP -p 端口号 -k 密码 -l 1080 -t 600 -m 协议 &
    sudo apt-get install polipo -y
    sudo chmod 777 /etc/polipo/config
    echo -e "socksParentProxy = \"localhost:1080\" \n socksProxyType = socks5 \n logLevel=4" >> /etc/polipo/config
    sudo service polipo stop
    sudo service polipo start
    export http_proxy=http://localhost:8123
    export https_proxy=http://localhost:8123
    echo "取消使用: unset http_proxy && unset https_proxy"
    echo "请执行这条命令使用 export http_proxy=http://localhost:8123 && export https_proxy=http://localhost:8123"
救救孩子吧