Shadowsocks

  • 我是如何解决使用Shadowsocks代理后,浏览器报“500 Internal Privoxy Error”的问题

    我是如何解决使用Shadowsocks代理后,浏览器报“500 Internal Privoxy Error”的问题

    Visits: 373

    起因:

    今天在搭建好shadowsocks后,进行客户端访问连接时,一直无法正常连接。浏览器报错如下:

    500 Internal Privoxy Error

    Privoxy encountered an error while processing your request:

    Could not load template file no-server-data or one of its included components.

    Please contact your proxy administrator.

    If you are the proxy administrator, please put the required file(s)in the (confdir)/templates directory. The location of the (confdir) directory is specified in the main Privoxy config file. (It’s typically the Privoxy install directory).


    解决过程:

    1. 排查客户端的ip,端口,密码,加密等各参数是否正确

    2. 服务端开启端口访问权限

    3. 服务器端禁用防火墙

    4. 完善C:\Windows\System32\drivers\etc\hosts文件信息所有能排查的,解决的都做了,但是问题依旧存在,所以就开始查看自己的环境信息。

    由于我的服务器是采用的阿里云的香港VPS,所以就登录到阿里云后台查看每一项,果不其然,发现有专门设置防火墙的地方,如下图:

    所以,在其中添加规则后,稍等几分钟后,重新连接shadowsocks客户端就正常了。大家可以单独增加自己tcp端口号,根据安装后的端口即可,也可以开通全部的tcp+udp端口,各人根据自己的情况添加规则即可,至此,该问题完美解决。

  • CentOS 8安装Shadowsocks客户端

    CentOS 8安装Shadowsocks客户端

    Visits: 498

    前言

    本文介绍的是在 CentOS 上安装 shadowsocks 客户端的过程,最终实现的也就是当前 CentOS 通过其他服务器的 Shadowsocks 服务联网,非在 CentOS 上安装 shadowsocks 服务端的过程,因此你需要一个已经能翻墙的 shadowsocks 服务端。

    安装 pip

    Pip 是 Python 的包管理工具,这里我们用 pip 安装 shadowsocks。

    yum install python3-pip python3-setuptools
    pip install shadowsocks
    

    配置 shadowsocks

    新建配置文件:

    vi /etc/shadowsocks.json
    

    填写以下内容:

    {
        "server":"your_server_ip",      #ss服务器IP
        "server_port":your_server_port, #端口
        "local_address": "127.0.0.1",   #本地ip
        "local_port":1080,              #本地端口
        "password":"your_server_passwd",#连接ss密码
        "timeout":300,                  #等待超时
        "method":"rc4-md5",             #加密方式
        "fast_open": false,             # true 或 false。如果你的服务器 Linux 内核在3.7+,可以开启 fast_open 以降低延迟。开启方法: echo 3 > /proc/sys/net/ipv4/tcp_fastopen 开启之后,将 fast_open 的配置设置为 true 即可
        "workers": 1                    # 工作线程数
    }
    

    修改后的文件内容可以参考以下Demo,一定要去掉上文的注释内容:

    {
        "server":"8.210.167.71",
        "server_port":5800,
        "local_address": "127.0.0.1",
        "local_port":1080,
        "password":"*******",
        "timeout":300,
        "method":"aes-256-gcm",
        "fast_open": false,
        "workers": 1
    }
    

    启动shadowsocks服务

    sslocal -c /etc/shadowsocks.json
    

    如果系统报错如下:ERROR method aes-256-gcm not supported,说明SS客户端2.x系统不支持该种方式的加密,只有3.0及以上才有该加密方式。
    下载3.0可以通过

    pip3 install https://github.com/shadowsocks/shadowsocks/archive/master.zip -U

    设置shadowsocks开机自启

    sudo vim /etc/systemd/system/shadowsocks.service
    

    填写如下内容:

    [Unit]
    Description=Shadowsocks Client Service
    After=network.target
    
    [Service]
    Type=simple
    User=root
    ExecStart=/usr/bin/sslocal -c /etc/shadowsocks.json
    
    [Install]
    WantedBy=multi-user.target
    

    配置生效:

    systemctl enable /etc/systemd/system/shadowsocks.service
    

    测试

    运行curl --socks5 127.0.0.1:1080 http://httpbin.org/ip
    如果返回你的 ss 服务器 ip 则测试成功:

    {
      "origin": "8.210.167.71"   #你的Shadowsock服务器IP
    }
    

    安装 Privoxy

    Shadowsocks 是一个 socket5 服务,因此我们需要使用 Privoxy 把流量转到 http/https 上。

    方法一:

    参考以下文档:CentOS 8.x编译安装privoxy

    方法二:

    直接使用yum安装即可:
    yum install privoxy
    安装好后,修改一下配置:
    vim /etc/privoxy/config
    搜索forward-socks5t
    forward-socks5t / 127.0.0.1:9050 .
    取消注释并修改为:
    forward-socks5t / 127.0.0.1:1080 .

    保存文件退出

    启动 privoxy

    privoxy /etc/privoxy/config
    或以指定用户如www运行privoxy:
    privoxy --user www /etc/privoxy/config

    设置privoxy开机自启

    sudo vim /lib/systemd/system/privoxy.service
    

    填写如下内容:

    [Unit]
    Description=Privoxy Web Proxy With Advanced Filtering Capabilities
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    Type=forking
    PIDFile=/run/privoxy.pid
    ExecStart=/usr/sbin/privoxy --pidfile /run/privoxy.pid /etc/privoxy/config
    

    配置生效:

    systemctl enable /lib/systemd/system/privoxy.service
    

    配置/etc/profile

    执行vim /etc/profile,添加如下代码:

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

    修改后使配置生效:

    source /etc/profile
    

    测试生效:

    curl www.google.com
    

    返回一大堆 HTML 则说明 shadowsocks 正常工作了。
    备注:如果不需要用代理了,把 /etc/profile 里的配置注释即可。