Ubuntu版本 22.04
IPv4环境下安装并配置Shadowsocks
客户端的安装与配置
安装Shadowsocks:
1 2 sudo apt-get update sudo pip install shadowsocks
创建并编辑配置文件:
1 2 sudo touch /etc/shadowsocks.json sudo vim /etc/shadowsocks.json
配置文件的格式如下:
1 2 3 4 5 6 7 8 9 10 { "server" : "服务器的IPv4地址" , "server_port" : 8388 , "local_address" : "127.0.0.1" , "local_port" : 1080 , "password" : "密码" , "timeout" : 300 , "method" : "aes-256-gcm" , "fast_open" : false }
启动Shadowsocks:
1 sudo sslocal -c /etc/shadowsocks.json -d start
关闭Shadowsocks时,在终端内输入:
kill相应的pid即可
如果在启动Shadowsocks时出现如下报错:
1 2 3 4 5 6 7 8 9 10 Traceback (most recent call last): File "/usr/local/bin/sslocal" , line 5, in <module> from shadowsocks.local import main File "/usr/local/lib/python3.10/dist-packages/shadowsocks/local.py" , line 27, in <module> from shadowsocks import shell, daemon, eventloop, tcprelay, udprelay, asyncdns File "/usr/local/lib/python3.10/dist-packages/shadowsocks/udprelay.py" , line 71, in <module> from shadowsocks import encrypt, eventloop, lru_cache, common, shell File "/usr/local/lib/python3.10/dist-packages/shadowsocks/lru_cache.py" , line 34, in <module> class LRUCache(collections.MutableMapping): AttributeError: module 'collections' has no attribute 'MutableMapping'
打开文件/usr/local/lib/python3.10/dist-packages/shadowsocks/lru_cache.py
,将第34行的
1 class LRUCache (collections.MutableMapping):
修改为
1 class LRUCache (collections.abc.MutableMapping):
即可
服务器的安装与配置
安装Shadowsocks:
1 2 sudo apt-get update sudo pip install shadowsocks
创建并编辑配置文件:
1 2 sudo touch /etc/shadowsocks.json sudo vim /etc/shadowsocks.json
配置文件的格式如下:
1 2 3 4 5 6 7 8 9 10 { "server" : "0.0.0.0" , "server_port" : 8388 , "local_address" : "127.0.0.1" , "local_port" : 1080 , "password" : "密码" , "timeout" : 300 , "method" : "aes-256-gcm" , "fast_open" : false }
启动Shadowsocks:
1 sudo ssserver -c /etc/shadowsocks.json -d start
关闭Shadowsocks时,在终端内输入:
kill相应的pid即可
在终端中利用privoxy使用Shadowsocks
在客户端的终端使用Shadowsocks时,需要安装privoxy
安装privoxy
1 2 sudo apt-get update sudo apt-get install privoxy
编辑配置文件
1 sudo vim /etc/privoxy/config
确保文件中第794行有listen-address 127.0.0.1:8118
在文件中第1483行添加:
1 forward-socks5 / 127.0.0.1:1080 .
注意后面有.
添加环境变量
在文件的末尾添加如下两行
1 2 export http_proxy="http://127.0.0.1:8118" export https_proxy="http://127.0.0.1:8118"
重新加载该文件
启动privoxy
1 2 sudo service privoxy start sudo service privoxy status
此时可以curl cip.cc
检查是否成功,成功后就可以使用Shadowsocks了
关闭privoxy
1 sudo service privoxy stop
IPv6环境中使用
客户端修改为IPv6
修改环境变量
把~/.bashrc
最后两行修改为:
1 2 export http_proxy="http://[::1]:8118" export https_proxy="http://[::1]:8118"
重新加载~/.bashrc
:
修改Shadowsocks
修改Shadowsocks配置文件/etc/shadowsocks.json
的"server"
和"local_address"
:
1 2 3 4 5 6 7 8 9 10 { "server" :"服务器的IPv6地址" , "server_port" :8388, "local_address" : "::1" , "local_port" :1080, "password" :"密码" , "timeout" :300, "method" :"aes-256-gcm" , "fast_open" : false }
修改后重启Shadowsocks,此时终端中输入sudo lsof -i:1080
,可以看到TYPE被改成了ipv6
修改privoxy
修改/etc/privoxy/config
:
确保795行有listen-address [::1]:8118
将1372行修改为forward-socks5 / [::1]:1080 .
重启privoxy:
1 2 sudo service privoxy restart sudo service privoxy status
服务器修改为IPv6
修改Shadowsocks配置文件/etc/shadowsocks.json
的"server"
和"local_address"
:
1 2 3 4 5 6 7 8 9 10 { "server" :"::" , "server_port" :8388, "local_address" : "::1" , "local_port" :1080, "password" :"密码" , "timeout" :300, "method" :"aes-256-gcm" , "fast_open" : false }
修改后重启Shadowsocks,此时终端中输入sudo lsof -i:1080
,可以看到TYPE被改成了ipv6
测试
客户端终端输入
若返回IPv6地址则成功