ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

ubuntu18.10下shadowsocks客户端的安装和配置

2019-06-11 12:05:05  阅读:3301  来源: 互联网

标签:sslocal shadowsocks sudo 代理 json gfwlist ubuntu18.10 客户端


在ubuntu18.10上安装和配置shadowsocks很顺利,完全不会出什么错误,所以18.10真的很不错,废话不多说,下面就直接入手安装。

第一步:安装shadowsocks,并填写配置文件

sudo apt install python-pip	# 如果之前没有安装pip的话执行此命令,否则不需要执行此命令
sudo pip install shadowsocks  # 此处不要用--user安装,否则会出现找不到sslocal命令的错误的
sudo vim /etc/shadowsocks.json
# 然后按照自己的shadowsocks server(ss服务器)的配置情况输入下列信息
{
    "server":"你的ss服务器ip地址",		
    "server_port":你的ss服务器端口,
    "password":"你的ss服务器访问密码",
    "method":"你的ss服务器上配置的代理加密方式,如:chacha20",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "timeout":300
}

# 启动shadowsocks代理 客户端
sudo sslocal -c /etc/shadowsocks.json -d start

然后按esc键,再按shift + Z + Z就可以保存文件并退出。
需要特别注意一下json文件的格式:主要是双引号和逗号,第一列数据全部有双引号,第二列中如果是字符串则有双引号,数字(如端口号)则没有双引号,还有就是除了最后一项后面没有逗号,其余项后面均有一个逗号。json数据格式可参考中两篇:篇一篇二
还需要注意的是:上面最后一条命令需要执行一下,因为下面你可能需要开启系统全局代理来下载gfwlist.txt文件。只开启系统代理是没有用的,必须先要同时使shadowsocks客户端运行才可以。

第二步:安装genpac、下载gfwlist文件

# 安装genpac
sudo pip install genpac
pip install --upgrade genpac
# 下载gfwlist文件
genpac --pac-proxy "SOCKS5 127.0.0.1:1080" --gfwlist-proxy="SOCKS5 127.0.0.1:1080" --gfwlist-url=https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt --output="autoproxy.pac"

比较奇怪的是,下载gfwlist的这条命令有时候可以正常下载,有时候又不能下载,目测好像是这个网址需要vpn才能访问(后来验证了一下,确实是这样的),这个时候可以先开启全局代理(网络设置里选手动代理,如下图),然后再用刚才那条genpac命令下载。
需要注意的是这里的端口号1080必须和之前在/etc/shadowsocks .json中设置的local port一样,否则将无法上网。

第三步:设置系统代理为自动方式(也就是局部代理,只代理gfwlist.txt中的网址)
这一步就是将刚才的网络设置中的代理设置的手动改成自动。填写格式为:

file:// + 刚才的pac文件的绝对路径
如: file:///home/caixiong/autoproxy.pac

第四步:配置浏览器
  如果使用chrome的话,其实此步是不需要配置的,因为点击chrome中的代理设置的话,它自动跳到上图的系统代理设置界面,也就是说其实我们在第三步就已经设置好了。
  如果是firefox的话,就依次点击设置,preference,然后在搜索框中输入proxy就找到设置代理的地方了,然后选择系统代理即可,如下图。
  在这里插入图片描述

第五步:写一个小脚本,手动执行sslocal命令(此步根据个人需求来,可以不需要的)
  我是因为一般使用学校的ipv6网上google等网站,只是有时候需要下某些东西无法下载时才使用shadowsocks代理,并且用代理是无法上谷歌学术的,所以我就不把开启代理加到系统自动项里边,而是自己需要的时候手动开启,但是手动开启的命令比较长,于是我写了一个脚本,相当于把命令的写法变简单了,具体做法如下:
01 创建一个名叫ssll的文件,内容是下面的代码

#!/bin/bash
if [ "$1" == "on" ]
then
    sslocal -c /etc/shadowsocks.json -d  start
elif [ "$1" == "off" ]
then
    sslocal -c /etc/shadowsocks.json -d stop
fi

02 给文件添加执行权限,并复制到/bin/目录下

chmod +x ssll
sudo mv ssll /bin/

03 现在就可以使用ssll命令(其实就是刚才那个脚本文件)来手动开关代理来了

# 修改后启动代理的版本
sudo ssll on		# 开启代理
sudo ssll off		# 关闭代理
# 使用原来的命令开启代理的版本
sudo sslocal -c /etc/shadowsocks.json -d start	# 开启
sudo sslocal -c /etc/shadowsocks.json -d stop	# 关闭

这样做就简单了很多吧。

注意: 如果执行sslocal命令过程中出现如下错误:

AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup

则需要修改openssl.py文件的第52和111行,将cleanup改成reset就可以了,具体的openssl.py文件位置可以从你出错的信息中看出来的,我的是/usr/local/lib/python3.6/dist-packages/shadowsocks/crypto/openssl.py,也可以参考这篇博客


OK!现在在ubuntu18.10中就可以科学上网了!是不是很爽!

最后再啰嗦一下,就是记得你必须买了代理服务器并且搭建好了shadowsocks 服务器端才能使用这篇经验噢

注: 上面的代理方式是使用系统自带的代理,其实如果我们用chrome浏览我们也可以用另一个比较方便的插件:SwitchyOmega,具体可以参考这篇教程,我现在用的也是这个插件,因为之前设置的系统自动代理出现了点问题,在chrome上必须开启系统手动代理方式才能上网。

参考文献:https://ywnz.com/linuxjc/2687.html

标签:sslocal,shadowsocks,sudo,代理,json,gfwlist,ubuntu18.10,客户端
来源: https://blog.csdn.net/qq_24406903/article/details/85011090

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有