hillstone SSL VPN客户端 for Mac OS

支持Mac OS系统的SSL VPN客户端工具为Hillstone Secure Connect,可在Mac OS X 10.6.8及以上系统环境中运行。通过客户端与设备端的连接,即可实现数据的加密通信。客户端的主要作用包括:

  • 与设备端建立SSL VPN连接;
  • 显示与设备端的连接状态、数据流统计数据以及路由信息;
  • 显示应用程序日志信息;

下载与安装

访问官方地址https://www.hillstonenet.com.cn/product-and-service/border-security/ngfw/下载客户端。

下载完成后,双击安装程序,在弹出窗口中将SCVPN拖拽到Applications中即可完成安装。

需要符合如下条件才可打开客户端安装程序:

  • 需要管理员权限才可以打开客户端安装程序。
  • 在系统偏好设置的“安全性与隐私”中,将“允许从以下位置下载的应用”设置为“任何来源”,才可以打开客户端安装程序。

启动与连接

启动客户端并建立与设备端的连接,按照以下步骤进行操作:

  1. 在Mac OS Launchpad中单击SCVPN,启动客户端。
  2. 点击“新建”,弹出<新建连接>对话框。
  3. 在连接列表中选择连接名称,在工具栏中点击“连接”。如果没有选择记住密码,则在弹出窗口中输入用户名对应的密码并点击“确认”。客户端开始连接设备端。

连接成功后,客户端状态栏显示“连接成功”,同时,系统通知栏显示已连接图标( ),此时就可以实现客户端与设备端之间的加密通信。

客户端GUI

客户端的GUI分为工具栏,连接列表,连接信息,状态栏四个区域。

工具栏

在工具栏,用户可执行如下操作:

  • 连接:在连接列表中选中一个连接后,点击“连接”,客户端将建立与设备端的连接。
  • 新建:新建一个连接。请参考启动与连接。
  • 修改:在连接列表中选中一个连接后,点击“修改”,修改此连接的参数。参数的解释,请参考启动与连接。
  • 删除:在连接列表中选中一个连接后,点击“删除”,删除此连接。
  • 设置:可选择“连接成功后最小化”以及“自动检查更新”。
  • 取消:取消连接。尝试连接设备端时,显示此按钮。
  • 断开:断开当前连接。连接成功后,显示此按钮。
  • 详情:查看当前连接的隧道信息和路由信息。连接成功后,显示此按钮。

连接列表

显示建立的连接。

连接信息

在连接列表选中某个连接后,在连接信息区域显示此连接的相关信息。

连接成功后,在连接信息区域显示连接时间,服务器地址,当前客户端分配的IP地址,通过SSL VPN隧道发送/接收的数据包,通过SSL VPN隧道发送/接收的字节。

状态栏

显示当前连接状态。

客户端菜单

客户端“SCVPN”菜单包括如下选项:

  • 关于SCVPN:显示此客户端相关信息。
  • 退出SCVPN:退出客户端。

客户端“日志”菜单包括如下选项:

  • 查看:查看日志信息。
  • 日志级别:选择需要查看的日志的日志级别。选择菜单栏中位于下部的级别时,显示的日志包含上方级别的日志。选择菜单栏中位于上部的级别时,显示的日志不包含下方级别的日志。

frm http://docs.hillstonenet.com/cn/Content/7_VPN/SSL_VPN_Client_M.htm#

如何在Mac上设置VPN

您有很多理由想要在Mac上使用虚拟专用网络(VPN)。 其中包括在公共Wi-Fi上安全浏览,隐藏您的位置,访问区域锁定的内容以及保持文件共享习惯。

立即解锁免费的“最有用的Mac键盘快捷键”备忘单!

这将使您注册我们的新闻通讯

在Mac上设置VPN很容易。 macOS具有内置支持,并且某些VPN服务提供了自己的无忧软件。 您也可以安装第三方工具以使用不同的协议。

根据您的VPN提供商(查看我们最好的VPN服务,最好的VPN服务,最好的VPN服务),我们整理了一份我们认为是最好的虚拟专用网(VPN)服务提供商的列表,按优质,免费和洪流友好分类。 阅读更多),他们可能会提供对允许您使用该服务的软件的访问权。 该软件是为您的提供商量身定制的。 因此,您不必弄乱配置连接,输入IP地址或检查可以使用的协议。

大多数VPN提供商都为Mac和Windows用户提供此软件。 Linux用户可能需要自行建立VPN。Linux用户需要了解的所有关于安装VPN的知识Linux用户需要了解的关于安装VPN的知识在本质上比Windows更安全。 但这并不意味着您不应该关注如何访问互联网。 防火墙是必需的,VPN也是必需的。阅读更多。 使用提供商软件是下载和安装客户端,使用您的用户名和密码登录,然后连接到您选择的服务器的简单情况。

提供程序软件可轻松在服务器之间跳转,因为该软件会保留可用连接列表。 如果您正在使用VPN访问区域锁定的内容,则可以轻松选择要连接的服务器。 一些提供商具有与BitTorrent流量兼容的特定服务器。 该软件可轻松确保您不会违反规则。

macOS内置了对创建VPN连接的支持,这是Apple自己的网络工具的一部分。 您可以通过转到系统偏好设置>网络,然后单击加号按钮来访问它们。

在这里,您可以指定VPN连接,选择VPN类型(协议),并为新的VPN连接命名。 如果您打算使用多个VPN服务器,则在命名连接时要具有描述性。 例如,您可能计划访问其他国家/地区中的区域锁定内容。

设置VPN时,macOS包括对IPSec,Cisco IPSec上的L2TP(第2层隧道协议)和较新的IKEv2(互联网密钥交换版本2)协议的支持。 尽管协议本身不提供保护,但是L2TP被认为是相当安全的。 取而代之的是,它使用IPSec安全网络协议,每天仍然有数百万VPN用户依赖该协议。

IKEv2是一种更现代的协议选择,因其在网络中断的情况下能够快速重新建立VPN连接的能力而备受青睐。 与L2TP一样,它也使用IPSec进行加密,尽管它的速度仍然受到L2TP的青睐。

Apple的台式机操作系统用于支持PPTP(点对点隧道协议)。 这是一个更老,更易受攻击的协议,曾经受到公司网络的青睐,但此后被抛在一边。 如果要创建PPTP连接,则需要使用第三方应用程序(例如Shimo)来进行。 但是除非必要,否则应避免这种情况。

那么应该使用哪种协议呢? 这取决于您的VPN协议5解释的5种主要VPN协议5解释的5种主要VPN协议OpenVPN,SSTP,L2TP:它们都是什么意思? 我们解释了主要的VPN协议,因此您可以根据自己的隐私需求选择最佳的VPN协议。阅读更多提供商可以访问。 您应该始终尽可能避免使用PPTP,而L2TP和IKEv2提供了可传递的安全级别。 但是如果您想要更安全的VPN连接

macOS中不提供即用即用的其他两个VPN协议:SSTP(安全套接字隧道协议)和OpenVPN。

SSTP是专有标准,由于它归Microsoft所有,因此大多数情况下仅适用于Windows。 SSTP使用封闭源SSL 3.0加密,这就是为什么它被认为具有高度安全性的原因(即使该代码没有开放供检查)。

顾名思义,OpenVPN是基于OpenSSL的完全开源技术。 这意味着该代码可供任何人免费查看。 它支持AES(高级加密标准)。 这种开放的方法通常被称为针对外部攻击的压力测试技术的概念验证。

这两个标准比macOS随附的任何标准都更安全。 VPN提供程序软件可能会使用其中之一,因此您可能已经在使用OpenVPN或SSTP,甚至没有意识到。 但是,如果您想更好地控制VPN设置,请尝试以下应用之一。

我们推荐了其他免费和开源的macOS VPN客户端这些是最佳的免费Mac VPN客户端这些是最佳的免费Mac VPN客户端您如何知道要使用哪个VPN客户端? 您应该使用VPN提供商专有的ap还是可以连接到几种不同服务的灵活解决方案?如果需要更多选择,请阅读更多。

如果要在Mac上使用OpenVPN,Tunnelblick是完成这项工作的最佳工具。 它是免费的开源软件,并提供易于管理的GUI,用于通过OpenVPN连接Mac。 您可以使用可下载的配置文件添加一长串连接,然后使用主客户端或菜单栏图标选择其他服务器。

下载:Tunnelblick(免费)

尽管SSTP是Windows技术,但可以使用带有sstp-client的macOS或Linux连接到SSTP服务器。 该客户端的macOS版本取决于Macports项目。 最简单的安装方法是使用Mac命令行软件包管理器Homebrew。

下载:sstp-client(免费)

您的VPN提供商可能会建议您使用自己的客户端,这样可以轻松连接和管理VPN连接。 如果要使用自己的客户端,则需要确保建立的连接与所选的VPN协议兼容。

如果有选择,OpenVPN将提供比L2TP或IKEv2更好的安全性。 您应该始终努力使VPN客户端保持更新,因为安全问题可能而且确实会出现(并且通常会很快收到补丁)。

另一个选择是在路由器上安装VPN连接如何在路由器上设置VPN如何在路由器上设置VPN VPN对于在线隐私非常有用,但是在每台设备上运行VPN都很麻烦。 节省时间并在路由器上安装VPN。阅读更多内容。 这使您可以管理整个网络的连接,如果您严格出于安全目的重新连接到本地VPN,则是理想的选择。

frm https://mos86.com/107966.html

connect SSTP VPN server from Mac

You may know that windows server VPN often can run on SSTP. Connecting from Windows 10 is pretty easy, but if you have to work remotely from your personal Mac? Mac OS does not support SSTP VPM out of the box.

 

Below is short instruction what to do if you want to connect Windows SSTP VPN from MacOS

Prerequisites: Homebrew installed - see here

Run terminal and install sstp-client

brew update
brew install sstp-client

In order to connect to your SSTP VPN with login and password use the following command line:

sudo /usr/local/sbin/sstpc/sstpc --log-stderr --cert-warn --user <user> --password <password> <server> usepeerdns require-mschap-v2 noauth noipdefault defaultroute refuse-eap noccp

If you prefer to have UI to start your VPN connection you can use iSstp

https://www.axot.org/2015/03/03/isstp-a-sstp-client-for-mac-osx/

 

This command line doesn't work for me. After entering my password I get 'sudo: /usr/local/sbin/sstpc/sstpc: command not found'. I've asked a question that links to here: [*Connect to SSTP VPN using MAC OS X*](https://stackoverflow.com/questions/45273192/connect-to-sstp-vpn-using-mac-os-x). 

"sudo /usr/local/sbin/sstpc" was correct!

 

frm https://stackoverrun.com/cn/q/11176191

-----

https://github.com/sorz/sstp-server

https://github.com/sorz/sstp-server/issues/25

Mac使用Charles抓取macOS/iOS/Android的请求

抓取macOS(本机)的请求

先在mac上安装根证书:helpSSL ProxyingInstall Charles Root Certificate
Xnip2018-11-11_13-47-53.png
上一步点击Install Charles Root Certificate后它会自动打开钥匙串,点击钥匙串的Trust(信任)→Always Trust(始终信任),然后直接关闭窗口(没有保存按钮,也不用点保存,直接关闭窗口即可)。
Xnip2018-11-11_14-09-37.png
上一步关闭窗口会提示输入密码,输入后点击Update Settings(更新设置),然后就可以把钥匙串退出了。
Xnip2018-11-11_14-08-51.png
打开网络设置
Xnip2018-11-11_14-23-38.png
点击高级
Xnip2018-11-11_14-29-09.png
点击Proxies,把Web Proxy(Http)Secure Web Proxy(Https)勾上,如果Automatic Proxy Configuration有勾,则把它去掉,一般Automatic Proxy Configuration默认勾上的原因是你用了代理软件(比如ss),最好先把ss关掉,注意你关闭ss的时候,网络设置里它会把你已经勾上的http和https都取消勾选,所以这个要注意反复检查是否勾上了。
Xnip2018-11-11_14-32-31.png
另外勾上的这两个,都要填写代理服务器地址127.0.0.1:8888
Xnip2018-11-11_14-37-54.png
Xnip2018-11-11_14-38-07.png
注意,上一步的端口8888就是对应Charles的ProxyProxy Settings里的Http Proxy的端口,这个8888可以改成其他数字(最大65535),但不能是本地已使用的(例如80最好别用,因为你本地有可能有nginx或者apache占用了这个端口),因为此时Charles就是一个HTTP代理服务器,它监听你设置的这个端口,所以如果这个端口已经被占用,那显然就会出问题。
整个的原理,就是在网络设置里,把mac本机的http和https请求全部转发到代理服务器(这个代理服务器就是Charles),因为Charles是在本机,所以代理服务器ip地址自然就是本机环回测试ip127.0.0.1,而端口在Charles里有设置,只要两边对上,端口未被其他程序占用就行。
Xnip2018-11-11_15-15-04.png
ProxySSL Proxy Settings里,要把*:443加上(如果没有的话),*表示任何ip,:443表示443端口,因为443端口是https的端口,所以要允许,否则无法抓取https的包
Xnip2018-11-11_15-47-51.png
Xnip2018-11-11_14-35-28.png
上面全部配置好,随便刷新一个网页,在Charles里看,应该就能看到请求了(看不到请一步一步对一下,看漏了哪里,实在不行关掉Charles再开看看)
Xnip2018-11-11_15-59-32.png

抓取iPhone手机的请求

也要先安装根证书
Xnip2018-11-11_17-57-03.png
这里说的很清楚,配置你的设备以使用Charles作为它在http://192.168.0.102:8888的代理,然后用iPhone的Safari浏览器访问这个地址chls.pro/ssl来安装证书。
Xnip2018-11-11_17-56-29.png
根据上面所说的,我们在iPhone的设置无线局域网
Xnip2018-11-11_18-18-33.png
点右边那个¡
Xnip2018-11-11_18-20-49.png
点击配置代理
Xnip2018-11-11_18-26-48.png
选择手动,然后填写Charles提示的IP和端口,注意,ip和端口不要照填我的,上面Charles弹出的那个提示框里有你自己的ip和端口。
Xnip2018-11-11_18-29-10.png
点击存储保存,保存后mac上的Charles会提示有一个链接试图连接Charles,这个就是手机的链接,这时当然要允许,即点左边的Allow(允许)按钮。
Xnip2018-11-11_18-35-14.png
允许之后,iPhone打开Safari浏览器,输入前面Charles提示的地址:chls.pro/ssl,然后根据提示一步一步安装证书。
点击允许
Xnip2018-11-11_18-46-03.png
点击右上角的安装
Xnip2018-11-11_18-46-15.png
输入密码
Xnip2018-11-11_18-46-39.png
点击安装
Xnip2018-11-11_18-46-29.png
点击右上角的完成
Xnip2018-11-11_18-46-57.png
手机随便打开一个app或网页,随便点一下,即可看到Charles抓到的请求。
Xnip2018-11-11_18-38-52.png
Xnip2018-11-11_18-38-34.png
不使用的时候手机要关闭代理,否则会上不了网(离开你办公室后),或者很慢(因为通过电脑代理肯定比较慢)。
说一下,其实不安装证书直接设置代理也是可以的,只是这样就只能抓http的包,https的就抓不了,而现在很多服务都用https了,所以还是要安装证书!

抓取Android手机的请求

安卓与iPhone安全一样,也是设置代理,安装证书,但可能容易出问题,比如我的魅蓝S6自带浏览器安装了证书也不行,而Chrome就可以,但小米3 Chrome浏览器也不行,不知道什么问题。

使用自动代理

对于抓包调试手机网页或app,很多童鞋可能遇到过手机如果用wifi怎么也上不了网,而用流量就可以,一度还怀疑wifi网络有问题,最后才发现是因为测试接口抓包的时候忘把代理关掉,把它关掉就可以上了,但是下次测试又得重新设置代理,特别麻烦。
事实上我们使用自动代理,就可以实现『即使忘了关代理也不会上不了网』的问题。自动代理是让配置文件决定要不要代理,配置文件我们叫pac文件(proxy auto config),后缀也是.pac结尾。
以下配置文件的意思,就是判断请求的域名是否为www.hexotest.com,如果是,则把它代理到192.168.0.102:8888,如果192.168.0.102:8888无法访问,那么走后面的DIRECT即直连,不代理了。如果域名不是www.hexotest.com那就直连不走代理。
//一个很简单的调pac文件
function FindProxyForURL(url, host) {
    //这里填写你们公司的host
    if (dnsDomainIs(host, 'www.hexotest.com')) {
        //这里填你自己的局域网ip,端口号是你在Charles里设置的 默认8888
        return "PROXY 192.168.0.102:8888; DIRECT;";
    } else {
        return "DIRECT";
    }
}
Bash
把配置文件命名成xxx.pac,比如我命名成proxy.pac,然后放到nginx目录里,让它可以访问,比如电脑的ip是192.168.0.102,那么我通过在手机通过http://192.168.0.102/proxy.pac就可以访问,这样,手机就会根据pac文件的配置来决定是否代理。
Xnip2018-11-11_18-27-11.png
电脑的话也一样,不过因为配置文件就在电脑本地,所以ip就是127.0.0.1,但是要注意,如果你用了科学上网工具ss,一定要把这工具先关掉,否则它会占用这个配置。
Xnip2018-11-11_21-35-22.png
pac配置文件除了可以放本地,也可以放外网线上,这样你手机可以一直设置着,不会因为你电脑的ip可能会变,又要改ip。

使用RocketChat自建即时聊天服务器

什么是RocketChat?

RocketChat是一个开源的聊天工具(类似微信、QQ),但不同的是,微信、QQ的服务器是腾讯公司的,数据都保存的腾讯的服务器上,而我们用RocketChat,是自己搭建的服务器,所有聊天记录都存在自己的服务器上。
RocketChat支持Mac、Windows、Linux、iPhone、Android、网页版,也就是完全支持所有平台。
RocketChat客户端界面:
-w999

为什么要自己搭建聊天服务器?

现在人们越来越注重隐私,有时候公司内部的一些交流,以及一些众所周知的比较敏感的话题,并不适合使用微信、QQ之类的没有任何隐私可言的工具进行讨论,而RocketChat的服务器是我们自己搭建的,数据在自己手上,所以比较安全。

如何搭建RocketChat服务器?

RocketChat是使用nodejs编写的,使用mongodb作为数据库,所以我们要搭建RocketChat服务器,要安装四个部分:
  • 1、nodejs(以及一些nodejs的工具库)
  • 2、mongodb(数据库)
  • 3、GraphicsMagick(一个图片处理库,RocketChat需要用它来处理图片)
  • 4、RocketChat
下面我们将一步一步安装上边说的四个工具,当然如果你想直接看官方文档也可以:官方安装文档

安装mongodb

添加mongodb的yum源

由于mongodb并没有添加到yum源中,我们要使用yum安装mongodb,需要先添加它的yum源,其实就是在/etc/yum.repos.d/目录中添加一个叫mongodb-org-4.0.repo的文件,并把下边的内容填进去保存即可:
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
Ini
如果你嫌上面的方式麻烦,你可以直接在终端里执行以下命令,就会自动在/etc/yum.repos.d/目录中产生这个文件:
cat << EOF | sudo tee -a /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
Bash

安装mongodb

添加完yum源,直接使用我们熟悉的yum安装即可(不过它的包名叫mongodb-org而不是mongodb):
yum -y install mongodb-org
Bash

修改mongodb配置文件

需要把engine设置为wiredTiger,以及把设置replicationreplSetName: rs01,以及把bindIp的ip用引号起起来。
设置完的整个配置如下所示,如果你觉得麻烦,其实直接把我的配置覆盖过去就行:
# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# Where and how to store data.
storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
  engine: wiredTiger
#  wiredTiger:

# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
  bindIp: "127.0.0.1"  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.


#security:

#operationProfiling:

replication:
  replSetName: rs01

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:
YAML

启动mongodb

先启动:
systemctl start mongod
Bash
然后查看是否启动成功:
systemctl status mongod
Bash
如果是如下图所示,有active (running)字样,说明已经成功启动:
-w821
设置开机自动启动:
systemctl enable mongod
Bash
如果你要停止或重启:
# 停止mongodb
systemctl stop mongod

# 重启mongodb
systemctl restart mongod
Bash

初始化mongodb

使用mongo命令登录mongodb:
mongo 127.0.0.1
Bash
创建一个单服务器的复制集(你有多台服务器做集群也可以):
rs.initiate({_id:'rs01',members:[{_id:1,host:'127.0.0.1:27017'}]})
Js
执行结果如下图所示:
-w596
设置后用exit命令退出mongodb。

安装nodejs

执行以下命令安装nodejs:
yum -y install nodejs
Bash
以上安装的nodejs版本比较低(可以用node -v命令查看版本,我这里目前是v6.17.1),但是RocketChat需要使用比较高的nodejs版本,所以我们要使用nodejs的版本管理工具n来切换到新版本(没错,这个工具名称就一个字母n)。
先使用npm安装inherits以及n(前面安装nodejs后,npm命令就自动有了):
npm install -g inherits n
Bash
以上安装可能会有一些WARNING,可以不用理会(当然也可能没有)。
然后使用n工具把nodejs的版本切换到RocketChat要求的版本8.11.4
n 8.11.4
Bash
如下图,切换成功后,你再用node -v查看版本,可能还是原来的版本,原因是终端记录了原来的版本,你需要退出登录,再重新登录服务器,然后再看版本,应该就已经换过来了:
-w718
至此,nodejs已经安装完成。

安装GraphicsMagick

前面说过,GraphicsMagick是一个图片处理工具,RocketChat需要使用它来处理聊天中的图片,所以我们要安装一下。
这个安装比较简单,直接使用yum安装即可:
yum install -y GraphicsMagick
Bash

安装RocketChat

简介

所有准备工作已完成,终于可以开始安装我们的主角“RocketChat”了,前面说过,RocketChat是用nodejs写的,所以其实所谓的安装,就是把把源码下载下来,解压一下,放到合适的地方,做一个systemd的开机自启动,它的启动也很简单,其实就是用node运行RocketChat的入口文件main.js而已,比如:
/usr/local/bin/node /path/to/RocketChat/main.js
Bash

开始安装RocketChat

下载RocketChat最新版本到/tmp/目录中:
curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
Bash
进入/tmp/目录,我们可以看到一个叫rocket.chat.tgz的文件,这个文件就是刚刚下载的:
cd /tmp/
Bash
解压rocket.chat.tgz,解压出来是一个bundle文件夹:
tar -zxvf rocket.chat.tgz
Bash
解压完成后,我们进入它里面的server文件夹:
cd bundle/programs/server
Bash
进入server文件夹后,使用npm安装依赖:
npm install
Bash
OK,现在RocketChat其实已经可以用了,但是现在它还在/tmp/目录中,这是Linux的临时文件夹,我们不能把它放在那里(当然你非要放在那运行也是可以的,只不过怕以后清缓存会不小心删除掉,而且也没有人会把程序那在那),所以我们要移动到一个我们认为合适的地方。
放在哪里好呢?其实一般情况下,在Linux中自己安装的程序都会放在/usr/local/目录中的,但是官方文档是把它放在了/opt/目录下,这里我们就根据官方文档的做法,把刚刚解压出来的整个bundle文件夹移动到/opt/目录下,并且重命名为Rocket.Chat(当然你不重命名也是一样可以的,只不过以后可能忘了这是什么程序了)。
执行以下命令,把整个bundle文件夹(也就是Rocket.Chat源码程序)移动到/opt/目录并重命名为Rocket.Chat
mv /tmp/bundle /opt/Rocket.Chat
Bash
然后我们顺便把最开始下载的压缩包删掉,因为我们已经解压出来使用了,这个包在这里只会占用服务器硬盘空间(138M呢):
rm /tmp/rocket.chat.tgz
Bash

设置开机自启动

前面说过,运行Rocket.Chat这个“服务器”,其实就是用node去运行它的入口文件main.js即可,即:
/usr/local/bin/node /path/to/RocketChat/main.js
Bash
但是,为了方便启动/停止,为了方便开机自启动,我们要设置一下开机自启动,Linux的开启自启动有两种,一种是以前的init方式(CentOS6及其以下),一种是CentOS7的systemd,因为我们使用的是CentOS7,所以我们使用systemd方式。
使用systemd来管理程序的启停,其实是在/usr/lib/systemd/system/目录中添加一个以.service结尾的配置文件,比如RocketChat我们就命名为rocketchat.service就行,然后内容直接粘贴以下的内容进去就行(但要注意把ROOT_URL中的ip换成你自己服务器的ip):
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://127.0.0.1:27017/rocketchat?replicaSet=rs01
Environment=MONGO_OPLOG_URL=mongodb://127.0.0.1:27017/local?replicaSet=rs01
Environment=ROOT_URL=http://你的服务器ip:3000/
Environment=PORT=3000
[Install]
WantedBy=multi-user.target
Ini
由于我们打算使用一个专有的用户来启动RocketChat,所以我们要先创建一个用户,用户名就叫rocketchat吧,使用以下命令即可创建:
useradd -M rocketchat && usermod -L rocketchat
Bash
创建用户后,别忘了把Rocket.Chat的权限修改为该用户:
chown -R rocketchat:rocketchat /opt/Rocket.Chat
Bash
然后我们就可以使用systemctl来启动RocketChat服务器了:
systemctl start rocketchat
Bash
然后我们再查看一下是否启动成功了:
systemctl status rocketchat
Bash
如果一切正常,将会看到类似这样的输出:
-w684
如果像下图这样有红色的failed字样,则说明启动失败,一般来说都是权限问题或者是路径问题,多检查一下即可:
-w782
启动成功后,我们把RocketChat加入到开机启动:
systemctl enable rocketchat
Bash
到这里RocketChat已经启动,下边会继续讲如何使用,如果你要停止或重启RocketChat,由于我们已经使用systemd的启动方式,所以都是systemctl的通用方法:
# 停止
systemctl stop rocketchat

# 重启
systemctl restart rocketchat
Bash

开始使用RocketChat

如果前面RocketChat已经正常启动,那么如果在浏览器访问:
http://你的服务器ip:3000
就能进入首次的安装向导界面了:
-w1440
  • 姓名:不需要傻傻的填你的真实姓名,你可以随便填,也可以填一个你常用的网名,英文名等等;
  • 用户名:不要有空格,由英文下划线数字等组成(不是说一定要下划线,也不是一定要数字,而是说你可以用它们);
  • 组织电邮:填一个你的邮箱
  • 密码:填上密码,这个密码以及前面的用户名,其实就是管理员,当然也是一个用户(可以聊天的)
继续往下,这些你都可以自己看着填:
-w1440
继续:
-w1440
继续:
-w1440
设置好了,现在可以点击“转到你的工作区”
-w974
界面是这样的(这就是后台界面了):
-w1440
然后,你把你的这个地址,即http://你的服务器ip:3000/发给朋友,或者公司同事,他们在浏览器或客户端访问这个链接,注册一个账号,就可以相互聊天了。
同事/朋友在浏览器上访问(要先注册一个账号):
-w1398
在电脑客户端(在手机也一样),第一次连接可能比较慢,要稍等一下:
-w993

使用Nginx做反代

一般情况我们都不建议直接使用ip来访问,所以强烈建议使用nginx做反代,这样我们就可以通过域名来访问我们的RocketChat服务器了,如果你不会安装nginx,自己网上找一下资料就行,这里就不说了。
以下是我使用的nginx反代配置(支持https):
# rocketchat反代
server {
    listen 80;
    listen 443 ssl;
    server_name rocketchat.xxx.com;

    if ($scheme = http){
        return 302 https://$host$request_uri;
    }

    access_log /var/log/nginx/rocketchat.xxx.com_nginx.access.log combined buffer=1k;
    error_log /var/log/nginx/rocketchat.xxx.com_nginx.error.log error;

    #https start
    ssl_certificate /usr/local/nginx/letsencrypt/xiebruce.top/fullchain.pem;
    ssl_certificate_key /usr/local/nginx/letsencrypt/xiebruce.top/private.pem;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHellA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    #https end

    location / {
        proxy_redirect off;
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        #由于RocketChat是使用websocket来传输数据的,所以这里反代的时候要设置支持websocket协议
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
nginx
如果你不知道怎么配置https,可以看一下为你的网站配置免费的HTTPS支持以及https证书自动续订(renew)问题这两篇文章。

当然,如果你不想那么麻烦,也可以使用不支持https的配置:
# rocketchat反代
server {
    listen 80;

    server_name rocketchat.xxx.com;

    access_log /var/log/nginx/rocketchat.xxx.com_nginx.access.log combined buffer=1k;
    error_log /var/log/nginx/rocketchat.xxx.com_nginx.error.log error;

    location / {
        proxy_redirect off;
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        #由于RocketChat是使用websocket来传输数据的,所以这里反代的时候要设置支持websocket协议
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
nginx
  • server_name的值改成你自己的域名,并在你的域名服务商那边添加一个A记录,把域名解析到你这台服务器上;
  • access_logerror_log的路径要修改成真实存在的路径;
  • proxy_pass意思就是把nginx接收到的请求转发给RocketChat,所以它后面的http://127.0.0.1:3000就是RocketChat的地址和端口,由于RocketChat就在本地,所以地址就是127.0.0.1,而端口是我们在/usr/lib/systemd/system/rocketchat.service中用Environment=PORT=3000指定的,如果你不想用这个端口,你可以去修改一下(修改了记得重启)。

如何更新RocketChat服务器

由于更新RocketChat就是更新它的源码,所以我们重复一遍前面的安装步骤即可,即下载→解压→进入server文件夹→npm install→移动并重命名到/opt/目录即可。

客户端的安装

iPhone客户端

直接AppStore搜索“rocket.chat”即可,如下图:
-w495

安卓客户端

1、GooglePlay下载:搜索“rocket.chat”即可,如下图:
-w394
2、apk安装:本来安卓是可以直接下载apk安装包的,但是由于官方不提供apk安装包,只有源码,所以只能想办法上googleplay安装了。

电脑客户端(Mac/Win/Linux)

方式一:直接去官网下载就行,当然这个网站如果没有科学上网可能也有点慢:
image
方式二:你可以去Github下载。

from  http://archive.is/lr4XU#selection-275.7-275.28