聊天服务与IRC服务搭建

聊天服务

高效的沟通是生产力

为什么不用qq、微信、Telegram

  • 企业信息流经他人服务器
  • 内部信息内部传递效率更高
  • 更专注于公司内部工作内容

IRC

  • Internet Relay Chat (因特网中继聊天)
  • 出现于1988年(为取代MUT而诞生)
  • 是一种通过网络的群体即时聊天方式(也可以用于个人间聊天)
  • 公共的协议(TCP和SSL协议)
  • IRC服务器可以连接其他的IRC服务器形成一个IRC网络
  • 大多数的IRC服务器不需要客户登录
  • 目前已经很少见(黑客和老派的技术群体的挚爱)
  • 部分服务商以来IRC协议进行信息传递

Ircd-Hybrid

  • 安装配置简单
  • 系统资源占用低

安装:

1
sudo apt install ircd-hybrid

管理员口令(operator)

设置密码:mkpasswd password 会得到密文,然后将密文添加到配置项中

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo vi /etc/ircd-hybrid/ircd.conf


serverinfo{
name = 'irc.lab.com';
description = 'LAB Campany IRC Server';
network_name = 'Office_Network';
network_desc = 'This is my Shanghai Office IRC Network'
}

operator{
name = 'admin';
user = '*@*';
password = '密文';
}

修改Banner信息

1
sudo vi /etc/ircd-hybrid/ircd.motd   # 客户端连接上显示的信息

重启服务:

1
sudo systemctl restart ircd-hybrid.service

客户端

Linux系统

1
2
3
4
5
6
7
irssi    # Linux系统   


sudo apt install irssi
sudo apt install ident2 # irssi客户端的机器上也要安装ident2,这样服务器才会访问这个服务,才会得到用户名这些信息,服务端得到了这些信息,才会允许客户端连接

irssi -c ip地址 连接

其实两个 是互为服务,当客户端irssi请求irc服务端时,这个时候irc是服务器;但是在登录的过程,irc会请求客户端的ident2这个服务,识别身份。

windows系统

mIRC客户端

Identd 自己填一下

然后确定

选择自己添加的服务器

然后自己起一个昵称、别名

客户端命令

1
2
3
4
5
6
7
/help
/oper admin password # 变成管理员
/channel list # 频道列表

/channel add -auto #football saved # 建立一个football的频道
/join #football # 进入频道
/part # 退出

MatterMost服务搭建

MatterMost介绍

  • 团队群聊SaaS平台
  • 使用go语言开发
  • 独立于操作系统的二进制部署方式,除了数据库需要自己安装,其他的都打包在二进制文件上了
  • 基于MySQL、PostgreSQL数据库
  • Slack的替代选择方案(还可以兼容Slack) Slack 是聊天群组 + 大规模工具集成 + 文件整合 + 统一搜索
  • 全平台客户端支持(WEB)
  • 适用于企业内部团队文件共享和信息交换
  • 有免费版和收费版

部署

安装数据库

1
2
3
sudo apt install mysql-server

sudo mysql_secure_installation

建库

1
2
3
4
5
create user 'muser'@'%' identified by 'password';
create database mattermost charset utf8;
grant all privileges on mattermost.* to 'muser'@'%';

flush privileges;

下载解压 mattermost

下载地址:https://releases.mattermost.com/5.18.1/mattermost-team-5.18.1-linux-amd64.tar.gz

1
2
3
4
5
6
# 解压
tar -xvzf mattermost-team-5.18.1-linux-amd64.tar.gz

sudo mv mattermost /opt

sudo mkdir /opt/mattermost/data

权限设置

1
2
3
sudo useradd -rU mattermost
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost # 赋予文件夹的属主

配置文件

1
2
3
4
5
sudo vim /opt/mattermost/config/config.json

"DriverName": "mysql",
"DataSource": "muser:password@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

测试数据库连接

1
sudo -u mattermost /opt/mattermost/bin/mattermost

手动创建systemd 服务单元文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
sudo touch /lib/systemd/system/mattermost.service

# 编辑文件,增加以下配置
[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service
[Service]
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
Restart=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152
[Install]
WantedBy=mysql.service

修改中文字体

1
2
3
4
5
6
sudo vi /opt/mattermost/config/config.json

"LocalizationSettings": {
"DefaultServerLocale": "zh-CN",
"DefaultClientLocale": "zh-CN",
"AvailableLocales": "zh-CN"

启动服务

1
2
3
sudo systemctl daemon-reload
sudo systemctl start mattermost.service
sudo systemctl enable mattermost.service

WEB配置

系统控制台配置:

  • URL

  • 电子邮件通知

  • 文件存储

  • 修改服务端口 80

  • ```bash
    sudo setcap cap_net_bind_service=+ep ./bin/mattermost

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30



    安装客户端 使用



    # Openfire服务搭建

    ## openfire介绍


    - 开源免费的IM即时通信服务器
    - Real-time collaboration (RTC)时时协作
    - 由JAVA开发 (需要JAVA运行环境)
    - 使用拓展通讯和表示协议(XMPP)
    - 号称单台服务器可支持上万并发用户
    - 兼容所有支持XMPP协议的客户端(spark)
    - 支持插件开发
    - 支持MySQL、postgresql、内建数据库
    - 支持LDAP(轻量级目录服务)、TLS、集群部署



    ## 安装JAVA

    ```bash
    sudo apt install openjdk-8-jdk

    java -version

安装数据库

1
2
3
sudo apt install mysql-server

sudo mysql_secure_installation

建库

1
2
3
create database openfire charset utf8;
grant all privileges on openfire.*to 'openfire'@'%' identified by 'password';
flush privileges;

下载openfire

网址:http://www.igniterealtime.org/downloads/index.jsp

安装openfire

1
sudo dpkg -i openfire.deb

导入数据库表

1
2
use openfire;
source /usr/share/openfire/resources/database/openfire_mysql.sql;

web界面配置

1
http://192.168.50.125:9090

语言设置

服务器设置

数据库选择

数据库URL:

1
jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8

配置文件配置

管理员账户

进入界面

下载客户端程序 spark :地址

强烈不建议使用spark web,这是基于flash技术的,而flash已经过时了,有很多漏洞

Rochet.Chat服务搭建

有时间重新安装一下手动的 根据官网:https://rocket.chat/docs/installation/manual-installation/ubuntu/

介绍

  • 与Mattermost 类似
  • 团队群聊SaaS平台
  • Slack的替代选择方案
  • 全平台客户端支持 web方式
  • 适用于企业内部团队 文件共享和信息交换
  • 独立于操作系统的snap 部署方式

安装数据库

1
sudo apt install mongodb

安装依赖

1
sudo apt install nodejs build-essential npm

指定node.js版本

1
2
sudo npm install -g n
sudo n 8.11.4 # 根据官网,这一版本依赖的npm版本是8.11.4

数据库集群:生产环境数据库复制集群

手动安装

1
https://releases.rocket.chat/latest/download   下载最新版
1
2
3
4
5
6
7
8
9
10
11
12
13
tar -xvf rocket.chat-2.4.1.tar   # 解压

cd bundle/programs/server
npm install # 安装
cd ../.. # 返回到bundle文件夹

# 定义系统变量
export ROOT_URL=http://192.168.50.128:3000/ # 定义系统url
export MONGO_URL=mongodb://localhost:27017/rocketchat # 数据库
export PORT=3000 # 端口号,官方推荐使用3000端口

# 启动服务
node main.js

自动安装

1
sudo snap install rocketchat-server  # 推荐安装方式

web设置

https://www.moerats.com/archives/960/