diff --git a/docs/distributed_02.rst b/docs/distributed_02.rst
index c71f8a93134b88bbadb5378646d1e692c8fcaae5..01b5347edf1da2cd5f7651d99a3a8dacbdbee81c 100644
--- a/docs/distributed_02.rst
+++ b/docs/distributed_02.rst
@@ -57,7 +57,7 @@
 
         location /luna/ {
             try_files $uri / /index.html;
-            alias /opt/luna/;
+            alias /opt/luna/;  # luna 路径,如果修改安装目录,此处需要修改
         }
 
         location /socket.io/ {
diff --git a/docs/distributed_04.rst b/docs/distributed_04.rst
index 3030d05a20efc4b45cd4a99bbbb53d8afdfb3d0a..a791570cde5fa5a5d6c443e5f5da11034058d62b 100644
--- a/docs/distributed_04.rst
+++ b/docs/distributed_04.rst
@@ -172,11 +172,11 @@
 
         location /media/ {
             add_header Content-Encoding gzip;
-            root /opt/jumpserver/data/;
+            root /opt/jumpserver/data/;  # 录像位置,如果修改安装目录,此处需要修改
         }
 
         location /static/ {
-            root /opt/jumpserver/data/;
+            root /opt/jumpserver/data/;  # 静态资源,如果修改安装目录,此处需要修改
         }
 
         location / {
diff --git a/docs/faq.rst b/docs/faq.rst
index b63efabb8e2586b63434faaf7d80ae1bab16e993..fbef7dd6da2bfe61affb73d73c685b5d693ad2e2 100644
--- a/docs/faq.rst
+++ b/docs/faq.rst
@@ -3,35 +3,17 @@ FAQ
 .. toctree::
    :maxdepth: 1
 
+   Sftp使用说明 <faq_sftp.rst>
+   安装过程常见问题 <faq_install.rst>
    Linux 资产连接说明 <faq_linux.rst>
    Windows 资产连接说明 <faq_windows.rst>
-   Windows sftp使用说明 <faq_sftp.rst>
    二次认证(Google Auth)入口说明 <faq_googleauth.rst>
 
 
-常见问题
+其他问题
 ~~~~~~~~~~~~~~~~~~~~~
 
-1. Windows 资产连接错误排查思路
-
-::
-
-    (1). 如果白屏  检查nginx配置文件的guacamole设置ip是否正确,检查终端管理的gua状态是否在线,检查资产设置及系统用户是否正确;
-    (2). 如果显示没有权限 可能是你在 终端管理里没有接受 guacamole的注册,请接受一下,然后重启guacamole
-    (3). 如果显示未知问题 可能是你的资产填写的端口不对,或者授权的系统用户的协议不是rdp
-    (4). 提示无法连接服务器,请联系管理员或查看日志 一般情况下是登录的系统账户不正确,可以从Windows的日志查看信息(资产的信息填写不正确也会报这个错误)
-    (5). 提示网络问题无法连接或者超时,请检查网络连接并重试,或联系管理员 一般情况下是防火墙设置不正确,可以从Windows的日志查看信息(资产的信息填写不正确也会报这个错误)
-
-2. Linux 资产连接错误排查思路
-
-::
-
-    (1). 检查管理用户的权限是否正确,权限需要与root权限一致。
-    (2). 检查资产的防火墙策略,可以在资产上面新建个用户,尝试用此用户进行ssh连接。
-    (3). 检查资产的python,确定版本不小于2.6,不高于3.x。
-    (4). 检查资产的ssh策略,确保可以被jumpserver应用访问。
-
-3. 用户、系统用户、管理用户的关系
+1. 用户、系统用户、管理用户的关系
 
 ::
 
@@ -39,55 +21,12 @@ FAQ
     系统用户:使用来登录到服务器的用户,如 web, dba, root等,配合sudo实现权限管控
     管理用户:是服务器上已存在的特权用户,Ansible用来获取硬件信息, 如 root, 或者其它拥有 sudo NOPASSWD: ALL权限的用户
 
-    (1). 这里解释一下系统用户里面的sudo,比如有个系统用户的权限是这样的:
+    # 这里解释一下系统用户里面的sudo,比如有个系统用户的权限是这样的:
 
     Sudo: /usr/bin/git,/usr/bin/php,/bin/cat,/bin/more,/bin/less,/usr/bin/head,/usr/bin/tail
     意思是允许这个系统用户免密码执行 git、PHP、cat、more、less、head、tail 命令,只要关联了这个系统用户的用户在相应的资产都可以执行这些命令。
 
-4. coco或guacamole注册失败,或重新注册方法
-
-::
-
-    (1). 在 Jumpserver后台 会话管理 - 终端管理  删掉它们
-
-    (2). coco 重新注册(注意虚拟环境 source /opt/py3/bin/activate)
-
-      $ cd /opt/coco && ./cocod stop
-      $ rm /opt/coco/keys/.access_key  # coco, 如果你是按文档安装的,key应该在这里,如果不存在key文件直接下一步
-      $ ./cocod start -d  # 正常运行后到Jumpserver 会话管理-终端管理 里面接受coco注册
-
-   (3). guacamole重新注册
-
-      $ docker stop jms_guacamole  # 如果名称更改过或者不对,请使用docker ps 查询容器的 CONTAINER ID ,然后docker stop <CONTAINER ID>
-      $ docker rm jms_guacamole  # 如果名称更改过或者不对,请使用docker ps -a 查询容器的 CONTAINER ID ,然后docker rm <CONTAINER ID>
-      $ rm /opt/guacamole/key/*  # guacamole, 如果你是按文档安装的,key应该在这里
-      $ systemctl stop docker
-      $ systemctl start docker
-      $ docker run --name jms_guacamole -d \
-        -p 8081:8080 -v /opt/guacamole/key:/config/guacamole/key \
-        -e JUMPSERVER_KEY_DIR=/config/guacamole/key \
-        -e JUMPSERVER_SERVER=http://<填写jumpserver的url地址> \
-        registry.jumpserver.org/public/guacamole:latest
-
-      # 如果registry.jumpserver.org/public/guacamole:latest下载很慢,可以换成jumpserver/guacamole:latest
-
-      # 正常运行后到Jumpserver 会话管理-终端管理 里面接受gua注册
-      $ docker restart jms_guacamole  # 如果接受注册后显示不在线,重启gua就好了
-
-5. Ansible报错汇总
-
-::
-
-    (1). 资产是centos5.x Python版本 2.4,
-
-        $ yum -y install python26
-        $ mv /usr/bin/python /usr/bin/python.bak
-        $ ln -s /usr/bin/python2.6 /usr/bin/python
-
-        # 修改 /bin/yum 使用原来的python
-        $ sed -i 's@/usr/bin/python$@/usr/bin/python2.4@g' /bin/yum
-
-6. input/output error, 通常jumpserver所在服务器字符集问题
+2. input/output error, 通常jumpserver所在服务器字符集问题
 
 ::
 
@@ -107,124 +46,97 @@ FAQ
 
     如果任然报input/output error,尝试执行 yum update 后重启服务器(仅测试中参考使用,实际运营服务器请谨慎操作)
 
-7. 运行 sh make_migrations.sh 报错,
-    CommandError: Conflicting migrations detected; multiple ... django_celery_beat ...
-    这是由于 django-celery-beat老版本有bug引起的
-
-::
-
-    $ rm -rf /opt/py3/lib/python3.6/site-packages/django_celery_beat/migrations/
-    $ pip uninstall django-celery-beat
-    $ pip install django-celery-beat
-
-8. 连接测试常见错误
+3. luna 无法访问
 
 ::
 
-    (1). to use the 'ssh' connection type with passwords, you mast install the sshpass program
-
-        # Centos
-        $ yum -y install sshpass
-
-        # Ubuntu
-        $ apt-get -y install sshpass
+    # Luna 打开网页提示403 Forbidden错误,一般是nginx配置文件的luna路径不正确或者luna下载了源代码,请重新下载编译好的代码
 
-    注意,在 coco 服务器上面安装完成后需要重启服务。
+    # Luna 打开网页提示502 Bad Gateway错误,一般是selinux和防火墙的问题,请根据nginx的errorlog来检查
 
-    (2). Authentication failure
+4. 录像问题
 
-        # 一般都是资产的管理用户不正确
+::
 
-    (3). Failed to connect to the host via ssh: ssh_exchange_identification: read: Connection reset by peer\r\n
+    # 默认录像存储位置在jumpserver/data/media  可以通过映射或者软连接方式来使用其他目录
 
-        # 一般是资产的 ssh 或者 防火墙 做了限制,无法连接资产(资产信息填错也可能会报这个错误)
+    # 录像存储在 oss,Jumpserver 系统设置-终端设置 录像存储
+    {"default": {"TYPE": "server"}, "cn-north-1": {"TYPE": "s3", "BUCKET": "jumpserver", "ACCESS_KEY": "", "SECRET_KEY": "", "REGION": "cn-north-1"}, "ali-oss": {"TYPE": "oss", "BUCKET": "jumpserver", "ACCESS_KEY": "", "SECRET_KEY": "", "ENDPOINT": "http://oss-cn-hangzhou.aliyuncs.com"}}
 
-    (4). "MODULE FAILURE","module_stdout":"/bin/sh: 1: /usr/bin/python: not found\r\n","module_stderr":"Shared connection to xx.xx.xx.xx closed.\r\n"
+    # 命令记录保存到 elastic
+    {"default": {"TYPE":"server"}, "ali-es": {"TYPE": "elasticsearch", "HOSTS": ["http://elastic:changeme@localhost:9200"]}}
 
-        # 一般是资产 python 未安装或者 python 异常
+    # 修改后,需要修改在Jumpserver 会话管理-终端管理 修改terminal的配置 录像存储 命令记录
 
-9. 其他问题
+5. 在终端修改管理员密码及新建超级用户
 
 ::
 
-    (1). 邮箱设置 新建用户无法收到邮件请更新 jumpserver 版本到最新版本
-
-    (2). 收到的邮件链接地址是 localhost 可以到 系统设置-基本设置 里面修改 url 地址
-
-    (3). coco 提示[service ERROR] Failed register terminal jzsas exist already
-        # 参考上面的coco重新注册方法
+    # 管理密码忘记了或者重置管理员密码
+    $ source /opt/py3/bin/activate
+    $ cd /opt/jumpserver/apps
+    $ python manage.py changepassword  <user_name>
 
-    (4). guacamole 不在线
-        # 尝试重启一下guacamole,然后再看看,如果任然不在线,参考上面gua重新注册的方法
-        $ docker restart jms_guacamole  # 如果容器的名称不对,请用docker ps查询
+    # 新建超级用户的命令如下命令
+    $ python manage.py createsuperuser --username=user --email=user@domain.com
 
-    (5). LDAP设置 测试通过,但是登录失败需要检查用户的ou是否正确,确认使用了映射的用户属性进行登陆
+6. 清理celery产生的数据(无法正常推送及连接资产,一直显示........等可以使用,请确定字符集是zh_CN.UTF-8)
 
-    (6). Luna 打开网页提示403 Forbidden错误,一般是nginx配置文件的luna路径不正确或者luna下载了源代码,请重新下载编译好的代码
+::
 
-    (7). Luna 打开网页提示502 Bad Gateway错误,一般是selinux和防火墙的问题,请根据nginx的errorlog来检查
+    # 检测 /etc/locale.conf 是否是 LANG="zh_CN.UTF-8"
+    $ cat /etc/locale.conf
+    # 如果不是,请修改,注,本例只是以CentOS 7举例,其他的linux请更换路径
+    $ localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
+    $ export LC_ALL=zh_CN.UTF-8
+    $ echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
 
-    (8). 默认录像存储位置在jumpserver/data/media
+    $ source /opt/py3/bin/activate
+    $ cd /opt/jumpserver/apps
+    $ python manage.py shell
+    $ from celery.task.control import discard_all
+    $ discard_all()
+    $ exit()
+    $ cd /opt/jumpserver
+    $ ./jms restart celery
 
-    (9). 录像存储在 oss,Jumpserver 系统设置-终端设置 录像存储
-        {"default": {"TYPE": "server"}, "cn-north-1": {"TYPE": "s3", "BUCKET": "jumpserver", "ACCESS_KEY": "", "SECRET_KEY": "", "REGION": "cn-north-1"}, "ali-oss": {"TYPE": "oss", "BUCKET": "jumpserver", "ACCESS_KEY": "", "SECRET_KEY": "", "ENDPOINT": "http://oss-cn-hangzhou.aliyuncs.com"}}
+    # 如果任然异常,手动结束所有jumpserver进程,然后kill掉未能正常结束的进程,在重新启动jumpserver即可
 
-         命令记录保存到 elastic
-        {"default": {"TYPE":"server"}, "ali-es": {"TYPE": "elasticsearch", "HOSTS": ["http://elastic:changeme@localhost:9200"]}}
+7. 修改登录超时时间(默认 10 秒)
 
-         修改后,需要修改在Jumpserver 会话管理-终端管理 修改terminal的配置 录像存储 命令记录
+::
 
-    (10). 管理密码忘记了或者重置管理员密码
-        $ source /opt/py3/bin/activate
-        $ cd /opt/jumpserver/apps
-        $ python manage.py changepassword  <user_name>
+    $ vim /opt/coco/coco/proxy.py
+    $ vim /opt/coco/coco/connection.py
 
-        # 新建超级用户的命令如下命令
-        $ python manage.py createsuperuser --username=user --email=user@domain.com
+    # 把 TIMEOUT = 10 修改成你想要的数字,两个文件都需要修改,单位为:秒
+    # TIMEOUT = 10 表示超时时间为10秒,可以自行修改。
 
-    (11). 清理celery产生的数据(无法正常推送及连接资产,一直显示........等可以使用,请确定字符集是zh_CN.UTF-8)
-        # 检测 /etc/locale.conf 是否是 LANG="zh_CN.UTF-8"
-        $ cat /etc/locale.conf
-        # 如果不是,请修改,注,本例只是以CentOS 7举例,其他的linux请更换路径
-        $ localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
-        $ export LC_ALL=zh_CN.UTF-8
-        $ echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
+8. 升级提示 Table 'xxx' already exists(可用以下命令检查,如果显示内容不一致则无法升级)
 
-        $ source /opt/py3/bin/activate
-        $ cd /opt/jumpserver/apps
-        $ python manage.py shell
-        $ from celery.task.control import discard_all
-        $ discard_all()
-        $ exit()
-        $ cd /opt/jumpserver
-        $ ./jms restart celery
+::
 
-    (12). 修改登录超时时间(默认 10 秒)
-        $ vim /opt/coco/coco/proxy.py
-        $ vim /opt/coco/coco/connection.py
+    $ cd /opt/jumpserver/apps
+    $ python manage.py makemigrations
+    $ python manage.py migrate --fake
+    $ find . | grep migrations | grep apps | grep -v 'pyc' | grep -v '__init__'
+    # 把这里的内容和下面数据库查询的内容对比
 
-        # 把 TIMEOUT = 10 修改成你想要的数字,两个文件都需要修改,单位为:秒
-        # TIMEOUT = 10 表示超时时间为10秒,可以自行修改。
+    # mysql -uroot
+    > use jumpserver;
+    > select * from django_migrations;
+    # 如果对比结果不一样则无法升级
+    > quit;
 
-    (13). 升级提示 Table 'xxx' already exists(可用以下命令检查,如果显示内容不一致则无法升级)
-        # cd /opt/jumpserver/apps
-        # python manage.py makemigrations
-        # python manage.py migrate --fake
-        # find . | grep migrations | grep apps | grep -v 'pyc' | grep -v '__init__'
-        # 把这里的内容和下面数据库查询的内容对比
+9. 设置浏览器过期
 
-        # mysql -uroot
-        > use jumpserver;
-        > select * from django_migrations;
-        # 如果对比结果不一样则无法升级
-        > quit;
+::
 
-    (14). 设置浏览器过期
-        $ vim /opt/jumpserver/apps/jumpserver/settings.py
+    $ vim /opt/jumpserver/apps/jumpserver/settings.py
 
-        # 找到如下行,注释(可参考 django 设置 session 过期时间),修改或者新增你要的设置即可
-        # SESSION_COOKIE_AGE = CONFIG.SESSION_COOKIE_AGE or 3600 * 24
+    # 找到如下行,注释(可参考 django 设置 session 过期时间),修改或者新增你要的设置即可
+    # SESSION_COOKIE_AGE = CONFIG.SESSION_COOKIE_AGE or 3600 * 24
 
-        # 如下,设置关闭浏览器 cookie 失效,则修改为
-        # SESSION_COOKIE_AGE = CONFIG.SESSION_COOKIE_AGE or 3600 * 24
-        SESSION_EXPIRE_AT_BROWSER_CLOSE = True
+    # 如下,设置关闭浏览器 cookie 失效,则修改为
+    # SESSION_COOKIE_AGE = CONFIG.SESSION_COOKIE_AGE or 3600 * 24
+    SESSION_EXPIRE_AT_BROWSER_CLOSE = True
diff --git a/docs/faq_googleauth.rst b/docs/faq_googleauth.rst
index db0aff834bef6c08f4be8d145f186777792a55ca..851a533751307f50e3475c956a852eeec032b2d8 100644
--- a/docs/faq_googleauth.rst
+++ b/docs/faq_googleauth.rst
@@ -2,3 +2,8 @@
 --------------------------------------------------------
 
 .. image:: _static/img/faq_googleauth.jpg
+
+::
+
+    # 关闭也是在这里,点击此处的禁用即可
+    # 部分安卓手机无法使用 Google Auth ,可以使用第三方工具(如Microsoft Authenticator 、身份宝等)
diff --git a/docs/faq_install.rst b/docs/faq_install.rst
new file mode 100644
index 0000000000000000000000000000000000000000..1313551a7bfb7853aee5ebc27d36a50c44d27693
--- /dev/null
+++ b/docs/faq_install.rst
@@ -0,0 +1,167 @@
+安装过程中常见的问题
+----------------------------
+
+1. git clone 提示 ssl 错误
+
+::
+
+    # 一般是由于时间不同步,或者网络有问题导致的
+    # 可以尝试下载 releases 包
+
+2. pip install 提示 ssl 错误
+
+::
+
+    # 参考第一条解决
+
+3. pip install 提示 download 错误
+
+::
+
+    # 一般是由于网络不好,导致下载文件失败,重新执行命令即可
+    # 如果多次重试均无效,请更换网络环境
+
+4. bash make_migrations.sh 时报错 from config import config as CONFIG File "/opt/jumpserver/config.py", line 38
+
+::
+
+    # 这是由于 config.py 里面的内容格式不对,请参考安装文档的说明,把提示的内容与上一行对其即可
+
+5. bash make_migrations.sh 时报错 Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
+
+::
+
+    # 一般是由于 py3 环境未载入
+    $ source /opt/py3/bin/activate
+
+    # 看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行
+    (py3) [root@localhost py3]
+
+    # 如果已经在 py3 虚拟环境下,任然报 Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
+    $ cd /opt/jumpserver/requirements
+    $ pip install -r requirements.txt
+    # 然后重新执行 bash make_migrations.sh
+
+6.  sh make_migrations.sh 报错 CommandError: Conflicting migrations detected; multiple ... django_celery_beat ...
+
+::
+
+    # 这是由于 django-celery-beat老版本有bug引起的
+    $ rm -rf /opt/py3/lib/python3.6/site-packages/django_celery_beat/migrations/
+    $ pip uninstall django-celery-beat
+    $ pip install django-celery-beat
+
+7. 执行./jms start all 后一直卡在 beat: Waking up in 1.00 minute.
+
+::
+
+    # 如果没有error提示进程无法启动,那么这是正常现象
+    # 如果不想在前台启动,可以使用 ./jms start all -d 在后台启动
+
+8. 启动 jumpserver 后,访问 8080 端口页面显示不正常
+
+::
+
+    # 这是因为你在 config.py 里面设置了 DEBUG = False
+    # 跟着教程继续操作,后面搭建 nginx 代理即可正常访问
+
+9. 执行 ./cocod start 后提示 No module named 'jms'
+
+::
+
+    # 一般是由于 py3 环境未载入
+    $ source /opt/py3/bin/activate
+
+    # 看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行
+    (py3) [root@localhost py3]
+
+    # 如果已经在 py3 虚拟环境下
+    $ cd /opt/coco/requirements
+    $ pip install -r requirements.txt
+    # 然后重新执行 ./jms start 即可
+
+10. 执行 ./cocod start 后提示 Failed register terminal jzsas exist already
+
+::
+
+    # 这是由于 coco 注册未成功造成的,需要重新注册 (能正常访问 jumpserver 页面后再处理)
+    # 到 Jumpserver后台 会话管理-终端管理  删掉 coco 的注册
+    $ cd /opt/coco && ./cocod stop
+    $ rm /opt/coco/keys/.access_key  # coco, 如果你是按文档安装的,key应该在这里,如果不存在key文件直接下一步
+    $ ./cocod start -d  # 正常运行后到Jumpserver 会话管理-终端管理 里面接受coco注册
+
+11. 执行 ./cocod start 后提示 Failed register terminal unknow: xxxx
+
+::
+
+    # 这是因为当前系统的 hostname 有 coco 不支持的字符,需要手动指定 coco 的 NAME
+    $ cd /opt/coco/
+    $ vim conf.py
+
+    # 项目名称, 会用来向Jumpserver注册, 识别而已, 不能重复
+    # NAME = "localhost"
+    NAME = "coco"
+
+    # 保存后重新执行 ./cocod start 即可
+
+12. 通过 nginx 代理的端口访问 jumpserver 页面显示不正常
+
+::
+
+    # 这是因为你没有按照教程进行安装,修改了安装目录,需要在 nginx 的配置文件里面修改资源路径
+    $ vim /etc/nginx/nginx.conf
+
+    ...
+
+    server {
+        listen 80;  # 代理端口,以后将通过此端口进行访问,不再通过8080端口
+
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header Host $host;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+
+        location /luna/ {
+            try_files $uri / /index.html;
+            alias /opt/luna/;  # luna 路径,如果修改安装目录,此处需要修改
+        }
+
+        location /media/ {
+            add_header Content-Encoding gzip;
+            root /opt/jumpserver/data/;  # 录像位置,如果修改安装目录,此处需要修改
+        }
+
+        location /static/ {
+            root /opt/jumpserver/data/;  # 静态资源,如果修改安装目录,此处需要修改
+        }
+
+        location /socket.io/ {
+            proxy_pass       http://localhost:5000/socket.io/;  # 如果coco安装在别的服务器,请填写它的ip
+            proxy_buffering off;
+            proxy_http_version 1.1;
+            proxy_set_header Upgrade $http_upgrade;
+            proxy_set_header Connection "upgrade";
+        }
+
+        location /guacamole/ {
+            proxy_pass       http://localhost:8081/;  # 如果guacamole安装在别的服务器,请填写它的ip
+            proxy_buffering off;
+            proxy_http_version 1.1;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header Upgrade $http_upgrade;
+            proxy_set_header Connection $http_connection;
+            access_log off;
+            client_max_body_size 100m;  # Windows 文件上传大小限制
+        }
+
+        location / {
+            proxy_pass http://localhost:8080;  # 如果jumpserver安装在别的服务器,请填写它的ip
+        }
+    }
+
+    ...
+
+13. 访问 luna 页面提示 Luna是单独部署的一个程序,你需要部署luna,coco,配置nginx做url分发...
+
+::
+
+    # 请通过 nginx 代理的端口访问 jumpserver 页面,不要再直接访问 8080 端口
diff --git a/docs/faq_linux.rst b/docs/faq_linux.rst
index 5dfa70d113ecbfaf3e469c4809db08b333cdfba9..b8b5ae8f72f1493506080141a888f7938f96fb88 100644
--- a/docs/faq_linux.rst
+++ b/docs/faq_linux.rst
@@ -1,6 +1,24 @@
 Linux 资产连接说明
 ----------------------------
 
+Linux 资产连接错误排查思路
+
+::
+
+    (1). 检查管理用户的权限是否正确,权限需要与root权限一致
+    (2). 检查资产的防火墙策略,可以在资产上面新建个用户,尝试用此用户在jumpserver服务器上进行ssh连接
+    (3). 检查资产的python,确定版本不小于2.6,不高于3.x
+    (4). 检查资产的ssh策略,确保可以被jumpserver应用访问
+
+    # 案例参考. 资产是centos5.x Python版本 2.4,
+
+        $ yum -y install python26
+        $ mv /usr/bin/python /usr/bin/python.bak
+        $ ln -s /usr/bin/python2.6 /usr/bin/python
+
+        # 修改 /bin/yum 使用原来的python
+        $ sed -i 's@/usr/bin/python$@/usr/bin/python2.4@g' /bin/yum
+
 1. 检查终端是否在线
 
 ::
@@ -101,5 +119,27 @@ Linux 资产连接说明
 .. image:: _static/img/faq_linux_09.jpg
 .. image:: _static/img/faq_linux_10.jpg
 
+10. 连接测试常见错误
+
+::
+
+    # 提示 to use the 'ssh' connection type with passwords, you mast install the sshpass program
+    # Centos
+    $ yum -y install sshpass
+
+    # Ubuntu
+    $ apt-get -y install sshpass
+
+    # 注意,在 coco 服务器上面安装完成后需要重启服务。
+
+    # 提示 Authentication failure
+    # 一般都是资产的管理用户不正确
+
+    # 提示Failed to connect to the host via ssh: ssh_exchange_identification: read: Connection reset by peer\r\n
+    # 一般是资产的 ssh 或者 防火墙 做了限制,无法连接资产(资产信息填错也可能会报这个错误)
+    # 检查防火墙设置以及 /etc/hosts.allow /etc/hosts.deny
+
+    # 提示 "MODULE FAILURE","module_stdout":"/bin/sh: 1: /usr/bin/python: not found\r\n","module_stderr":"Shared connection to xx.xx.xx.xx closed.\r\n"
+    # 一般是资产 python 未安装或者 python 异常
 
 其他问题可参考 `FAQ <faq.html>`_
diff --git a/docs/faq_sftp.rst b/docs/faq_sftp.rst
index 35fb02c73c895ad7843caad50addf37a11e81619..b3363e95ae5f6ab8709e3165ab06934ef16206d7 100644
--- a/docs/faq_sftp.rst
+++ b/docs/faq_sftp.rst
@@ -1,5 +1,13 @@
-Windows sftp使用说明
+sftp 使用说明
 -------------------------------------------------------
 在Windows上使用 sftp 工具传输文件到 Linux 系统,默认的上传目录在 /tmp ,其他目录没有权限
 
 .. image:: _static/img/faq_sftp_01.jpg
+
+::
+
+    # 连接成功后,可以看到当前拥有权限的资产,打开资产,然后选择系统用户,即可到资产的 /tmp 目录
+    $ sftp -P2222 admin@192.168.244.144
+    $ cd 你的资产
+    $ cd 你的系统用户
+    # 此处即是当前资产的 /tmp 目录
diff --git a/docs/faq_windows.rst b/docs/faq_windows.rst
index 3f3e25e77e4cbdfa445744dea691412fd76d3ff9..23102e09387dc149152c63345c3a7fd477673466 100644
--- a/docs/faq_windows.rst
+++ b/docs/faq_windows.rst
@@ -1,6 +1,16 @@
 Windows 资产连接说明
 ----------------------------
 
+Windows 资产连接错误排查思路
+
+::
+
+    (1). 如果白屏  检查nginx配置文件的guacamole设置ip是否正确,检查终端管理的gua状态是否在线,检查资产设置及系统用户是否正确;
+    (2). 如果显示没有权限 可能是你在 终端管理里没有接受 guacamole的注册,请接受一下
+    (3). 如果显示未知问题 可能是你的资产填写的端口不对,或者授权的系统用户的协议不是rdp
+    (4). 提示无法连接服务器,请联系管理员或查看日志 一般情况下是登录的系统账户不正确或者防火墙设置有误,可以从Windows的日志查看信息(资产的信息填写不正确也会报这个错误)
+    (5). 提示网络问题无法连接或者超时,请检查网络连接并重试,或联系管理员 一般情况下网络有问题,可以从Windows的日志查看信息(资产的信息填写不正确也会报这个错误)
+
 1. 检查终端是否在线
 
 ::
diff --git a/docs/setup_by_centos7.rst b/docs/setup_by_centos7.rst
index 3a05e345e80f432721549810277e662415e62427..c84528dc218b89553a28068a877bfb17932ccc18 100644
--- a/docs/setup_by_centos7.rst
+++ b/docs/setup_by_centos7.rst
@@ -319,16 +319,16 @@ CentOS 7 安装文档
 
         location /luna/ {
             try_files $uri / /index.html;
-            alias /opt/luna/;
+            alias /opt/luna/;  # luna 路径,如果修改安装目录,此处需要修改
         }
 
         location /media/ {
             add_header Content-Encoding gzip;
-            root /opt/jumpserver/data/;
+            root /opt/jumpserver/data/;  # 录像位置,如果修改安装目录,此处需要修改
         }
 
         location /static/ {
-            root /opt/jumpserver/data/;
+            root /opt/jumpserver/data/;  # 静态资源,如果修改安装目录,此处需要修改
         }
 
         location /socket.io/ {
diff --git a/docs/setup_by_ubuntu.rst b/docs/setup_by_ubuntu.rst
index b91b797842d74ef6f28414d19e8c9bad010cb8a7..3b48645e67204c91c67c6d79881bd4e9df23d060 100644
--- a/docs/setup_by_ubuntu.rst
+++ b/docs/setup_by_ubuntu.rst
@@ -425,16 +425,16 @@ Luna 已改为纯前端,需要 Nginx 来运行访问
 
         location /luna/ {
             try_files $uri / /index.html;
-            alias /opt/luna/;
+            alias /opt/luna/;  # luna 路径,如果修改安装目录,此处需要修改
         }
 
         location /media/ {
             add_header Content-Encoding gzip;
-            root /opt/jumpserver/data/;
+            root /opt/jumpserver/data/;  # 录像位置,如果修改安装目录,此处需要修改
         }
 
         location /static/ {
-            root /opt/jumpserver/data/;
+            root /opt/jumpserver/data/;  # 静态资源,如果修改安装目录,此处需要修改
         }
 
         location /socket.io/ {
diff --git a/docs/step_by_step.rst b/docs/step_by_step.rst
index 8b067ff66df05ac41aec5c5d8760acfcba0eeb86..b8210909958a6962575bba58e5a30876300b4dd1 100644
--- a/docs/step_by_step.rst
+++ b/docs/step_by_step.rst
@@ -1,6 +1,9 @@
 一步一步安装(CentOS)
 --------------------------
 
+本文档旨在帮助用户了解各组件之间的关系
+如果已经接触过之前的版本,可参考 `进阶安装文档 <quickinstall.html>`_
+
 环境
 ~~~~~~~
 
@@ -11,9 +14,8 @@
 ::
 
     # CentOS 7
-    $ setenforce 0  # 可以设置配置文件永久关闭
-    $ systemctl stop iptables.service
-    $ systemctl stop firewalld.service
+    $ setenforce 0  # 临时关闭,重启后失效
+    $ systemctl stop firewalld.service  # 临时关闭,重启后失效
 
     # 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文
     $ localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
@@ -21,8 +23,8 @@
     $ echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
 
     # CentOS6
-    $ setenforce 0
-    $ service iptables stop
+    $ setenforce 0  # 临时关闭,重启后失效
+    $ service iptables stop  # 临时关闭,重启后失效
 
     # 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文
     $ localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
@@ -110,9 +112,12 @@ Pip 加速设置请参考 <https://segmentfault.com/a/1190000011875306>
 ::
 
     $ yum -y install redis
+    $ systemctl enable redis
     $ systemctl start redis
 
     # centos6
+    $ yum -y install redis
+    $ chkconfig redis on
     $ service redis start
 
 
@@ -465,16 +470,16 @@ Jumpserver 会话管理-终端管理(http://192.168.244.144:8080/terminal/term
 
         location /luna/ {
             try_files $uri / /index.html;
-            alias /opt/luna/;
+            alias /opt/luna/;  # luna 路径,如果修改安装目录,此处需要修改
         }
 
         location /media/ {
             add_header Content-Encoding gzip;
-            root /opt/jumpserver/data/;
+            root /opt/jumpserver/data/;  # 录像位置,如果修改安装目录,此处需要修改
         }
 
         location /static/ {
-            root /opt/jumpserver/data/;
+            root /opt/jumpserver/data/;  # 静态资源,如果修改安装目录,此处需要修改
         }
 
         location /socket.io/ {