Run ssserver on VPS

VPS 上面好早以前用过 docker 跑了一个 container 运行了一个 ssserver, 是从 debian 基本系统创建, 然后手动安装各种软件弄好的. 最近朋友升级了 docker, 那个工作有点问题了,就重新搞了一下, 发现现在好方便.

我用的是这里提供的 dockerfile https://github.com/EasyPi/docker-shadowsocks-libev, 他的例子里面使用了 docker-compose 来创建, 发现很简单, 不过遇到了一个问题, 说一下解决办法.

这个 docker 本地监听的端口是固定的 8388 不能修改, 例如 docker-compose.yml 里面

server:
  image: easypi/shadowsocks-libev
  container_name: wd-ss
  ports:
    - "HOST_PORT:8388/tcp"
    - "HOST_PORT:8388/udp"
  environment:
    - METHOD=aes-256-cfb
    - PASSWORD=5ouMnqPyzseL
  restart: always

需要配置的是 HOST_PORT METHOD PASSWORD 这三个变量, 然后我还指定了 container_name 方便以后的操作, 不指定会自动产生一个.

启动服务之后,可以使用 docker logs wd-ss 来看 log, 类似于下面, 这个 docker 启用了 udp relay 和 tcp fast open, 差不多也就够了.

 2017-06-09 03:13:17 INFO: using tcp fast open
 2017-06-09 03:13:17 INFO: UDP relay enabled
 2017-06-09 03:13:17 INFO: initializing ciphers... aes-256-cfb
 2017-06-09 03:13:17 INFO: using nameserver: 8.8.8.8
 2017-06-09 03:13:17 INFO: tcp server listening at 0.0.0.0:8388
 2017-06-09 03:13:17 INFO: udp server listening at 0.0.0.0:8388
 2017-06-09 03:13:17 INFO: running from root user

如果想要开启更多选项, 可以在 compose 文件里面使用 command 自定义启动命令

  command:
    ss-server -s 0.0.0.0
              -p 8338
              -k 5C4D5403-31C9
              -m aes-256-cfb
              -t 30
              --fast-open
              -u
              -a nobody

自己实验过程中, 如果可以随时删除自己的 container 重建, 将来 ss 升级的话, 只需要把 image 更新一下,然后删除再新建一下 container 就好了.用起来还是相当简单方便的.