ubuntu sever-聊天服务

聊天服务与IRC服务

沟通是最重要的问题

  • 发明网络的目的的沟通(信息交换)
  • 高效的沟通是生产力
  • 为什么不用QQ、微信、Telegram?
    • 企业信息流经他人服务器(泄密)
    • 内部信息内部传递效率更高
    • 更专注于公司内部工作内容

IRC

Internet Relay Chat(因特网中继聊天) 是一种通过网络的群体即时聊天方式(也可以用于个人间聊天) 公开的协议(TCP和SSL协议) IRC服务器可以连接其他的IRC服务器形成一个IRC网络 大多数的IRC服务器不需要客户注册登录 目前已经很少见(黑客和老牌的技术群体的挚爱) 部分流服务商依赖IRC协议进行信息传递

IRC服务器的搭建

Ircd-Hybrid为例

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

1.安装

1
2
# 安装服务端
sudo apt install ircd-hybrid

2.管理员口令(operator)

1
2
# 设置管理员的密码(加密的方式保存密文)
mkpaswd pass123    # 生成密文,一会在后面用

3.配置

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

serverinfo {
    name = "irc.lab.com"
    description = "LAB Campany IRC Server"
    network_name = "This is my Beijing Office IRC Network"
    # 其他配置项...
}
operator {    # 管理员的片段(默认是注释的)
    name = "admin"
    user = "*@*";    # 限制可以连接的用户和ip地址,这里是所有用户所有主机
    password = "xxxxxx" # 上面mkpaswd pass123 生成的密文
}
# 后面根据需要配置

4.Banner

1
sudo vim /etc/ircd-hybrid/ircd.motd    # 客户端登录信息的信息

5.重启服务

1
sudo systemctl restart ircd-hybrid.service

6.客户端

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
- mIRC      # Win下的一款商业软件
- irssi    # Linux下常用

# 安装
sudo apt install irssi
sudo apt install ident2    # 服务端才能访问该客户端的计算机名等信息

# 客户端直接连接服务端就行
irssi -c 192.168.175.130

# 服务端口,默认 666x

7.客户端基本命令

1
2
3
4
5
6
7
8
9
/help    # 查看所有命令
/help  channel
/opera admin pass123
/channel list    # 查看频道
/channel add -auto #Football   # 添加频道
/join #Football    # 加入指定的聊天室

# 把自己提升为管理员身份
/oper admin pass123

MatterMost服务搭建

  • irssi这种命令行的方式并不是很友好,MatterMost使用十分友好
  • 团队群聊SaaS平台
  • Go语言开发
  • 独立与操作系统的二进制部署方案(它已经给打包好了)
  • 基于MySQL、Postgresql数据库
  • Slack(收费)的替代选择方案(兼容Slack,二者可进行通信)
  • 全平台客户端支持(Web)
  • 免费版、收费版
  • 适用于企业内部团队文件共享和信息交换

服务端:https://github.com/mattermost/mattermost-server 客户端程序:https://github.com/mattermost/desktop Web界面的:https://github.com/mattermost/mattermost-webapp

安装部署

1.安装数据库

1
2
3
# 这里以mysql为例
sudo apt install mysql-server
sudo mysql_secure_installation

2.建库

1
2
3
4
5
6
7
8
create user 'muser'@'%' identified by '12345678';

create database mattermost;

grant all privileges on mattermost.* to'muser'@'%';
-- GRANT ALTER,CREATE,DELETE,DROP,INDEX,INSERT,SELECT,UPDATE ON mattermost.* to'muser'@'%';

flush privileges;

3.下载mattermost

1
2
3
4
5
wget https://releases.mattermost.com/5.24.2/mattermost-5.24.2-linux-amd64.tar.gz
tar -zxvf mattermost*.gz
sudo mv mattermost /opt    # 个人安装的软件包,一般会放到opt下面
sudo mkdir /opt/mattermost/data
cd /opt

4.权限设置

1
2
3
sudo useradd -rU mattermost
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost

5.配置文件

1
2
3
4
# sudo vim /opt/mattermost/config/config.json
# 这里配置数据库项, mattermost库的名字
"DriverName": "mysql"
"DataSource": "muser:passw123@tcp(localhost:3360)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"

6.测试数据库连接

1
2
sudo -u mattermost /opt/mattermost/bin/mattermost
# 重点关注端口是否正常开启,一般默认为8065端口

7.Systemd 服务单元文件

1
2
3
4
# mattermost本身是不带service的,所以我们可以手动创建

sudo touch /lib/system/mattermost.service
# 添加内容...

8.中文字体

1
2
3
4
# sudo vim /opt/mattermost/config/config.json
"DefaultServerLocale": "zh-CN"
"DefaultClientLocale": "zh-CN"
"AvailableLocale": "zh-CN"

9.启动服务

1
2
3
4
5
6
sudo systemctl daemon-reload
# 修改完再启动服务
sudo systemctl start mattermost.service
sudo systemctl enable mattermost.service
# 然后查看服务
sudo systemctl status mattermost.service

10.Web配置

1
2
3
4
5
6
# 域名根据自己的来,或ip也行
https://chat.lab.com:8065
# 首个账号被赋予system_admin角色(管理员)

建议:先建立一个团队(相当于一个聊天室)
然后可以根据提示下载客户端

11.系统控制台配置

1
2
常规->服务端口(先指定页面上的命令,再在web界面修改),证书,地址,data存储目录(本地存储/云存储),电子邮件通知
sudo setcap_net_bind_service=+ep./bin/mattermost    # 修改服务端口

12.使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 别人进来的方式:
1.邀请链接
2.单独添加成员


# 客户端:
- Web版
- 其他操作系统客户端

# 支持其他插件,可以与第三方软件集成使用

文件的传送,共享文件,置顶文件

Openfire服务搭建

开源免费的IM即时通信服务器 Real-time collaboration(RTC) 由java开发,需要java运行环境 使用拓展通讯和表示协议(XMPP)Extensible Messaging and Presence Protocol 号称单台服务器可支持上万并发用户 兼容所有支持XMPP协议的客户端(spark),不建议web的方式(基于flash) 支持插件开发 支持mysql、postgrersql、内建数据库 支持LDAP、TLS、群集部署

搭建服务端

1.java环境

1
2
3
sudo apt-get install openjdk-8-jdk

java -version

2.数据库

1
2
3
# 这里以mysql为例
sudo apt install mysql-server
sudo mysql_secure_installation

3.建库

1
2
3
4
5
create database openfire;

grant all privileges on openfire.* to'fireuser'@'%' identified by 'pass123';

flush privileges;

4.下载,安装

1
2
3
# http://www.igniterealtime.org/downloads/index.jsp#openfire

sudo dpkg -i openfire.deb

5.导入数据库表

1
2
3
4
5
6
7
sudo mysql;
show databases;

use openfire;
source /usr/share/openfire/resources/databases/openfire_mysql.sql

show tables;

6.Web界面配置

1
2
3
4
5
6
7
## http://openfire.lab.com:9090
#进行常用配置

#数据库URL路径: 地址:端口:库名
jdbc:mysql://127.0.0.1/openfire?useUnicode=true&chasacterEncoding=UTF-8&characterSetResults=UTF-8&rewriteBatchedStatements=true

# 通过Web进入管理界面

7.创建用户账号

客户端

可以使用spark http://www.igniterealtime.org/downloads/index.jsp#openfire 客户端登录忽略证书爆粗平 spark使用5222端口连接服务端

Rochet Chat服务搭建

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

安装

安装异常简单

F1.自动安装
1
2
# 推荐
sudo snap install rocketchat-server
F2.手动安装

1.安装数据库

1
sudo apt install mongodb

2.安装依赖

1
sudo apt install node.js build-essential npm

3.指定Node.js版本

1
2
sudo npm install -g n
sudo n 8.9.3    # 这里的版本自己查看一下目前支持的版本号

4.下载服务端源码,并安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 下载地址:
https://releases.rocket.chat/latest/download

tar -zxcf xxx.tgz
cd bundle/programs/server
npm install
cd ../

export ROOT_URL=http://1.1.1.1:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
export PORT=3000
node main.js    # 启动服务端程序

5.访问Web页面

1
2
# 向导页面
创建账号等配置(第一个账号是管理员)

6.用户访问3000的地址,可以注册账号,加入聊天等

7.配置数据库集群(自己查,生产环境建议配置) 生产环境数据库复制集群

Note:数据库建议使用单独的服务器

系统中文显示

此为补充知识点

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 先安装中文语言包
sudo apt install language-pack-zh-hans
locale -a

# 配置中文语言环境变量
vim /etc/environment
    LANG="zh_CN.UTF-8"
    LANGUAGE="zh_CN:zh:en_US:en"

# 配置中文,英文还是会继续使用的
0%