端到端加密通讯|SimpleX Chat服务器简单自搭建

Privacy Protection系列

隐私高于一切

1.写在前面

想象一下,如果你要发个文件或者一些信息给你的好朋友,但是你不信任微信,QQ。因为这个文件可能很重要,所以你不想让任何第三方知道。怎么办呢?你可能听说过Telegram、Signal、Session、XMPP、Synapse等一系列端到端加密即时通讯服务。Telegram和Signal?还行,但是在国内要挂代理,有些情况下不想挂代理就用不了,而且还要手机号注册。XMPP和Synapse(Matrix)?也可以,经过我之前写过一篇文章讲过XMPP。但是功能有点少,XMPP不支持撤回,Matrix不支持定时删除信息。Session?这个可以,但是中继服务器都被墙了,而且自建服务就是把服务器作为它的网络节点的一个,不太好。

那么,有没有隐私够强,而且能自由配置是否公开或者私有服务器的端到端加密聊天服务呢?

有!它就是SimpleX Chat。

2.关于SimpleX Chat

SimpleX Chat的官方服务器是用Tor连接的,虽然你也可以配置你的服务器使用Tor,但是我并不推荐在国内使用Tor,Obfs4网桥在GFW面前非常明显。特别是你的服务器是在阿里云或者腾讯云等平台的情况下,在他们的服务器上不作处理直接装Tor可能会引起流量异常检测,增加账户被审查的风险。

SimpleX的服务器链接和其他的服务不同,它不使用http或https协议,而是smp和xftp协议。前者用于发送消息,后者是发送文件。还有一个WebRTC ICE协议,用于语音和视频通话。但是通话目前只在手机端实现。事实上,如果你有语音通话的需求,那么TeamSpeak的更简单的配置可能更好一点?

可以使用IP直连服务器,但是更推荐使用域名,至少官方文档是这么写的。

3.Docker搭建

为什么不直接在服务器上安装?因为官方的安装文档需要安装Tor,以及Caddy来占用你的80和443端口。我相信你的服务器的443肯定要用,总不能为了SimpleX而放弃网站吧。而且docker配置也确实方便点。

我们先从smp服务开始,先找个地方创建一个文件夹,用来放docker-compose.yml。

这里我给出一个docker-compose.yml

name: SimpleX Chat - smp-server

services:
  smp-server:
    image: ${SIMPLEX_IMAGE:-simplexchat/smp-server:latest}
    environment:
      WEB_MANUAL: ${WEB_MANUAL:-1}
      ADDR: ${ADDR?"Please specify the domain."}
      PASS: ${PASS:-}
    volumes:
      - ./smp_configs:/etc/opt/simplex
      - ./smp_state:/var/opt/simplex
    ports:
      - 5223:5223
    restart: unless-stopped

还有.env文件。

# Mandatory
ADDR=your_ip_or_addr

# Optional
#PASS='123123'
WEB_MANUAL=1

ADDR那里可以是IP,也可以是域名。这里我用域名。

PASS是连接到服务器的密码,如果不想服务器被别人拿去用,可以设置一个。

docker compose up -d后,查看容器的日志。

SMP server v6.3.2.0
Fingerprint: RehLzxhlhclByCEBVOIoA_vhUvznAq49FcmvBEk8k-g=
Server address: smp://RehLzxhlhclByCEBVOIoA_vhUvznAq49FcmvBEk8k-g=:[email protected]
Server source code: https://github.com/simplex-chat/simplexmq
Store log: /var/opt/simplex/smp-server-store.log
Serving SMP protocol on port 5223 (TLS)...

smp://RehLzxhlhclByCEBVOIoA_vhUvznAq49FcmvBEk8k-g=:[email protected]

这就是你的服务器的地址,RehLzxhlhclByCEBVOIoA_vhUvznAq49FcmvBEk8k-g=是证书指纹,:后面的字符串“Uv6ZmGC4yzL6HnzK”就是你设置的密码,然后以@hostname结尾。

接下来是xftp服务,xftp用于发送文件。

name: SimpleX Chat - xftp-server

services:
  xftp-server:
    image: ${SIMPLEX_XFTP_IMAGE:-simplexchat/xftp-server:latest}
    environment:
      ADDR: ${ADDR?"Please specify the domain."}
      QUOTA: ${QUOTA?"Please specify disk quota."}
      PASS: ${PASS:-}
    volumes:
      - ./xftp_configs:/etc/opt/simplex-xftp
      - ./xftp_state:/var/opt/simplex-xftp
      - ./xftp_files:/srv/xftp
    ports:
      - 443:443
    restart: unless-stopped

如果你的443端口被占用了,那就改一个。

同样的,.env

# Mandatory
ADDR=your_ip_or_addr
QUOTA=120gb

# Optional
#PASS='123123'

xftp://[email protected]

这是xftp链接的样式,需要注意的是,xftp的日志不会把你的密码加进去,你需要在链接手动添加密码。

4.使用

创建用户后,先打开设置,关闭私密路由。

否则会把连接经过Tor,就会导致你连接服务器的速度非常慢。

然后在网络和服务器那里添加你的服务器链接,把用于新连接打开。

Windows端添加媒体服务器时测试不通过是正常的,因为我在内网搭建也这样,应该是软件问题。

添加你的服务器之后,就可以把官方的服务器关闭了。

总体就是这样,因为搭建确实简单,所以本文看着有些水。。。

作者信息:

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇