原文位于:http://shadowsocks.org/en/config/quick-guide.html

配置文件(Config File)

Shadowsocks 接受 JSON 格式的配置文件,如下:

{
    "server":"my_server_ip",
    "server_port":8388,
    "local_port":1080,
    "password":"barfoo!",
    "timeout":600,
    "method":"chacha20-ietf-poly1305"
}

字段解释:

  • server:主机名或者服务器IP(IPv4/IPv6)。
  • server_port:服务器端口
  • local_port:本地端口
  • password:用于加密传输的密码
  • timeout:连接超时的秒数
  • method:加密方法

加密方法

AEAD加密是一种健壮的加密选项。推荐的选项是 “chacha20-ietf-poly1305” 或者 “aes-256-gcm”。我们也实现了其它的流加密方法,但是这些方法不提供完整性和可认证性。除非另有说明,否则加密方法默认是 “table”,这是不安全的。

译注:AEAD :Authenticated Encryption with Associated Data 是一种同时具备保密性,完整性和可认证性的加密形式。

URI 和 二维码

Shadowsocks的安卓和iOS客户端也支持Base64编码的URI格式配置:

ss://BASE64-ENCODED-STRING-WITHOUT-PADDING#TAG

其实际的URI应如下:

ss://method:password@hostname:port

需要注意的是上述URI并不遵守RFC3986,也就是说密码(password)部分应该是纯文本,而不是URL编码。

译注:RFC3986要求URI仅能包含指定的一些字符,非法字符应进行URL编码,因其编码方式是对非法字节的十六进制表示前加百分号,所以也称“百分号编码”。即原文中的 “percent-encoded”

举个栗子:我们有一个服务 运行在 192.168.100.1:8888,使用了 bf-cfb 加密方法,并设置密码为 test/!@#: 。那么,基于URI ss://bf-cfb:test/!@#:@192.168.100.1:8888 ,我们就能构造Base64编码的URI:

> console.log( "ss://" + btoa("bf-cfb:test/!@#:@192.168.100.1:8888") )
    ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

为了方便管理和区分这些URI,你可以给Base64编码的字符串后面加标签:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

这个URI也能被编码成二维码,你可以试试用安卓或者iOS设备扫描它:

示例qrcode.png

亲自试试看(Try it yourself)

Plain:

Encoded:

最后编辑:2020年05月06日 ©著作权归作者所有

发表评论

正在加载 Emoji
×