连接服务器

使用 rdesktop 连接 Windows 远程桌面

1
rdesktop 58.87.74.163 -r disk:LinuxFiles=/home/zhou/Documents -g 1080*1080 -u Administrator

rdesktop 的常用参数有:

  • u 用户名
  • p 密码
  • n 客户端主机名(显示windows任务管理器中的连接客户端名)
  • g 桌面大小(高*宽)
  • f 全屏模式, 从全屏模式切换出来按 Ctrl+Alt+Enter
  • a 连接颜色深度(最高到16位),一般选16才会显示真彩色
  • 0 数字0 表示连接上windows 控制台,等效mstsc /console命令

配置 Jupyter

生成配置文件

使用下面这个命令,会让 jupyter 在 C:/User/Adminitrator 下生成.jupyter 的文件夹,并且在文件夹中生成 jupyter_notebook_config.py 的配置文件

1
jupyter notebook --generate-config

修改配置文件

编辑生成的配置文件,在文件中修改、激活以下配置

1
2
3
4
5
c.NotebookApp.ip = '0.0.0.0'  # 允许访问此服务器的 IP,星号表示任意 IP, 0.0.0.0 或者 127.0.0.1 表示本地
c.NotebookApp.open_browser = False # 运行时不打开本机浏览器
c.NotebookApp.notebook_dir = u'XXX' # Jupyter 打开的根目录
c.NotebookApp.port = 8888 # 使用的端口
c.NotebookApp.enable_mathjax = True # 启用 MathJax

设置登录密码

在终端输入

1
jupyter notebook password

通过提示,输入密码,并且密码的哈希值会保存在配置文件相同目录下的 jupyter_notebook_config.json 中

配置 Nginx 代理

打开 Nginx 的配置文件 nginx.conf ,配置域名代理到Jupyter Notebook的服务,并且启用 SSL

SSL 证书可以在阿里云、腾讯云免费申请,也可以自己生成

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
31
server {
listen 80;
server_name notebook.zhzh.xyz;
# 把所有 http 的访问强制重定向到 https 上
return 301 https://$server_name$request_uri;
}

server{
listen 443 ssl http2;
ssl on;
server_name notebook.zhzh.xyz;
# 证书和密钥的位置
ssl_certificate C:/nginx-1.14.2/conf/SSL/notebookzhzhxyz/1_notebook.zhzh.xyz_bundle.crt;
ssl_certificate_key C:/nginx-1.14.2/conf/SSL/notebookzhzhxyz/2_notebook.zhzh.xyz.key;
ssl_ciphers "EECDH CHACHA20:EECDH CHACHA20-draft:EECDH AES128:RSA AES128:EECDH AES256:RSA AES256:EECDH 3DES:RSA 3DES:!MD5";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
# 为每一个域名设置单独的日志记录,比较方便查找
access_log C:/nginx-1.14.2/logs/notebookaccess.log;
error_log C:/nginx-1.14.2/logs/notebookerror.log;
# 使用websocket
location / {
proxy_pass http://127.0.0.1:8888/;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade "websocket";
proxy_set_header Connection "Upgrade";
proxy_read_timeout 86400;
}
}

配置中启用了 websocket ,否则 Jupyter 中的 terminals 和 kernels 服务无法启用

最后就可以通过 https://notebook.zhzh.xyz 访问 Jupyter 服务