カテゴリー
技術

shadowsocksR構築メモ

中国の金盾対策手段のひとつに、shadowsocksR(以下SSR)が良いという情報が色々出てくるので、調べて構築してみた。

ググると詳しい解説は色々でてくるので、簡単なメモのみ。

Linux CentOS7の場合

ここにインストールスクリプトがあるので、実行し、暗号化などを適当に選べば、とりあえずサーバ側の環境は整う。systemctlやfirewallまで面倒見てくれる。(ソース冒頭にはCentOS6とあるが、7も考慮されてる)

その後、利用するクライアントや環境に合わせて微調整が必要になってくる。

また、事前に複数のパターンで設定を準備しておくと、万一現地でつながらなかった場合の選択肢が増えるので良い。

設定

/etc/shadowsocks.jsonの例

{
    "server":"0.0.0.0",
    "server_ipv6":"[::]",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
        "12340":{
            "protocol":"auth_chain_a",
            "password":"secret1",
            "obfs":"tls1.2_ticket_auth_compatible",
            "obfs_param":""
        },
        "12341":{
            "method":"aes-256-cfb",
            "protocol":"auth_aes128_md5",
            "password":"secret2",
            "obfs":"tls1.2_ticket_auth_compatible",
            "obfs_param":""
        }

    },
    "timeout":120,
    "method":"none",
    "protocol":"auth_chain_a",
    "protocol_param":"",
    "obfs":"tls1.2_ticket_auth_compatible",
    "obfs_param":"",
    "redirect":["bing.com", "cloudflare.com:443"],
    "dns_ipv6":true,
    "fast_open":false,
    "workers":1
}
  • port_passwordにて複数のポートにそれぞれ設定可
    • 暗号化方式(method)
    • パスワード(password)
    • プロトコル(protocol)
    • 難読化(obsf:obfuscating)

クライアント

クライアントによっては対応している各種パラメタが多かったり少なかったりするが、識別文字列は同じなので、合わせれば大丈夫。

Windows

https://github.com/shadowsocksrr/shadowsocksr-csharp/releases

上記のv4.9.2で利用可能であることを確認。

Android

https://github.com/shadowsocksrr/shadowsocksr-android/releases

上記のv3.9.2にて利用可能であることを確認。

usbデバッグ経由で、adb install <apk>にて入れました。

FreeBSDの場合(おまけ)

SSRはなく、別分岐のShadowsocks(以下SS)のみ、pkgが存在する。なお、通常はquarterlyリポジトリを追従しているので、latestリポジトリを追従するように変更すると最新版が得られる。

$ mkdir -p /usr/local/etc/pkg/repos
$ echo "FreeBSD: { enabled: no }" > 
 /usr/local/etc/pkg/repos/FreeBSD.conf
$ cat /usr/local/etc/pkg/repos/FreeBSD.conf 
FreeBSD: { enabled: no }
$ cat /usr/local/etc/pkg/repos/latest.conf 
latest: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes,
  priority: 10
}
$ cat /usr/local/etc/pkg/repos/quarterly.conf 
quarterly: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes,
  priority: 0
}

引用元:Freebsdのpkgで複数のリポジトリを参照する方法

設定

本家のドキュメント参照

SSRのように、複数のパスワード設定はできないので注意。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です