IPv4与IPv6环境下Shadowsocks的搭建与使用

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时,在终端内输入:

1
sudo lsof -i:1080

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时,在终端内输入:

1
sudo lsof -i:8388

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
sudo vim ~/.bashrc

在文件的末尾添加如下两行

1
2
export http_proxy="http://127.0.0.1:8118"
export https_proxy="http://127.0.0.1:8118"

重新加载该文件

1
source ~/.bashrc

启动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

1
source ~/.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

测试

客户端终端输入

1
curl 6.ipw.cn

若返回IPv6地址则成功


IPv4与IPv6环境下Shadowsocks的搭建与使用
http://hmnkapa.github.io/2024/09/07/IPv4与IPv6环境下Shadowsocks的搭建与使用/
作者
呼姆奴库
发布于
2024年9月7日
许可协议