我在虚拟机上运行ubuntu 16.04(在Mac上),并在AWS ec2 ubuntu 18.04上运行。我试图在aws.ec2
上运行Jupiter笔记本,并尝试通过本地Ubuntu上的Web浏览器远程访问它。
我能够访问远程ubuntu(aws.ec2)终端。在按照此link
在第9步中出现以下错误。
我从头开始重新安装了3次所有内容(包括本地ubuntu和aws ec2实例),但到目前为止没有任何进展。
Last login: Thu Nov 1 06:34:07 2018 from 134.1****
ubuntu@ip-172-***:~$ export XDG_RUNTIME_DIR=""
ubuntu@ip-172-***:~$ jupyter notebook
[I 06:40:19.525 NotebookApp] Serving notebooks from local directory: /home/ubuntu
[I 06:40:19.528 NotebookApp] The Jupyter Notebook is running at:
[I 06:40:19.528 NotebookApp] https:// **** :8888/?token=727fbb120d19f55a435c1*****
[I 06:40:19.528 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 06:40:19.529 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
https://(ip-172-31-***** .0.1):8888/?token=727fbb120d19f55a435c14*********
ERROR:asyncio:Exception in callback BaseAsyncIOLoop._handle_events(4, 1)
handle: <Handle BaseAsyncIOLoop._handle_events(4, 1)>
Traceback (most recent call last):
File "/usr/lib/python3.6/asyncio/events.py", line 145, in _run
self._callback(*self._args)
File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/platform/asyncio.py", line 122, in _handle_events
handler_func(fileobj, events)
File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/stack_context.py", line 300, in null_wrapper
return fn(*args, **kwargs)
File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/netutil.py", line 262, in accept_handler
callback(connection, address)
File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/tcpserver.py", line 263, in _handle_connection
do_handshake_on_connect=False)
File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/netutil.py", line 565, in ssl_wrap_socket
context = ssl_options_to_context(ssl_options)
File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/netutil.py", line 540, in ssl_options_to_context
context.load_cert_chain(ssl_options['certfile'], ssl_options.get('keyfile', None))
PermissionError: [Errno 13] Permission denied
ERROR:asyncio:Exception in callback BaseAsyncIOLoop._handle_events(4, 1)
handle: <Handle BaseAsyncIOLoop._handle_events(4, 1)>
Traceback (most recent call last):
File "/usr/lib/python3.6/asyncio/events.py", line 145, in _run
self._callback(*self._args)
File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/platform/asyncio.py", line 122, in _handle_events
handler_func(fileobj, events)
File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/stack_context.py", line 300, in null_wrapper
return fn(*args, **kwargs)
File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/netutil.py", line 262, in accept_handler
callback(connection, address)
File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/tcpserver.py", line 263, in _handle_connection
do_handshake_on_connect=False)
File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/netutil.py", line 565, in ssl_wrap_socket
context = ssl_options_to_context(ssl_options)
File "/home/ubuntu/.local/lib/python3.6/site-packages/tornado/netutil.py", line 540, in ssl_options_to_context
context.load_cert_chain(ssl_options['certfile'], ssl_options.get('keyfile', None))
PermissionError: [Errno 13] Permission denied
注1::在ec2实例上,Ubuntu具有18.04版本,并且它带有python 3.6.3,然后我必须在其顶部安装anaconda,然后python版本现在是3.5.2我输入了$ python3。
注2 :尽管在将anaconda安装到EC2中之后,python版本降级为3.5.2
一旦我检查了以下目录/ usr / local / lib /,只有python3.6文件夹存在,然后键入$ sudo chmod 777 dist-packages /
然后是$ jupyter笔记本,然后复制令牌链接并与dns结合使用,但仍然没有用。
答案 0 :(得分:1)
您设置的端口8888必须包含在入站安全组中。 benai已在以下论坛中解决了该问题:https://forums.fast.ai/t/can-t-connect-to-jupyter-notebook-tried-3-different-machines-err-connection-timed-out/3779
这是分步说明: “
单击左侧面板中的“实例”(在“实例”下)。
选择您的实例(“名称”和“实例ID”左侧的框应变成蓝色,并且页面下部将显示一组信息。此信息将包括标签,说明: “说明”,“状态检查”,“监控”和“标签”)
如果单击“描述”,则应该看到显示的信息。在“安全组”旁边,我看到以下内容以蓝色显示:“ launch-wizard-10。查看入站规则”
单击“查看入站规则”,我看到一个弹出的小窗口显示: 端口协议源Launch-wizard-10 22 tcp 0.0.0.0/0 这表明只有端口22对入站信息开放。
然后单击左侧面板中的“安全组”(在“网络和安全”下) 我通过在“说明”下查看具有当前日期的安全组(例如,“ launch-wizard-10创建于2017-06-29”)来确定列表中的哪个安全组适合于我的运行实例。
我在最左边的复选框中选中了那个(框变为蓝色)。 信息显示在页面下部,包括标签“说明”,“入站”,“出站”和“标签”。 单击“入站”标签。
就我而言,我只看到:“ SSH TCP 22 0.0.0.0/0” 点击“编辑”。 单击“添加规则”,将出现一个新行。 在“端口范围”下输入“ 8888”,在“源”下选择“任意位置”,该值应更改为“ 0.0.0.0/0,:: / 0”。 点击“保存”。
您现在应该看到页面下部显示以下内容: 自定义TCP规则TCP 8888 0.0.0.0/0
”
答案 1 :(得分:1)
我遇到了同样的问题,现在我通过尝试几件事解决了。尝试以下解决方案,看看是否有帮助:
/home
文件夹和~/.local/share/jupyter/
文件夹的所有权更改为运行此命令的当前用户: sudo chown -R $USER /home/
sudo chown -R $USER ~/.local/share/jupyter/
如果遇到ssl错误问题,请查看此link。
确保在浏览器中键入https://<jupyter-server-ip>
,而不是http://
。
Your connection is not private
问题,并且无法继续操作,请尝试使用Safari或其他浏览器。这种情况发生在Chrome版本70或更高版本中。答案 2 :(得分:0)
我已经完全按照说明面对了这个问题,并且找到了解决该问题的方法。
您需要检查您的证书文件,并检查它是否归根所有。
您只需要将所有权更改为使用凭据的jupyter用户,笔记本便可以正常工作
从
更改(base) santoshshds@dsserver:~/certs$ ls -lrth
total 4.0K
-rw------- 1 root root 2.0K May 5 10:02 mycert.pem
到
(base) santoshshds@dsserver:~/certs$ ls -lrth
total 4.0K
-rw------- 1 santoshshds root 2.0K May 5 10:02 mycert.pem
并且jupyter现在可以正常运行
####################################################################
[I 06:58:40.180 NotebookApp] https://(dsserver or 127.0.0.1):8888/
[I 06:58:40.180 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 06:58:45.487 NotebookApp] error on read: [SSL: SSLV3_ALERT_BAD_CERTIFICATE] sslv3 alert bad certificate (_ssl.c:2488)
[W 06:58:45.499 NotebookApp] error on read: [SSL: SSLV3_ALERT_BAD_CERTIFICATE] sslv3 alert bad certificate (_ssl.c:2488)
[W 06:58:45.750 NotebookApp] error on read: [SSL: SSLV3_ALERT_BAD_CERTIFICATE] sslv3 alert bad certificate (_ssl.c:2488)
[I 06:58:54.468 NotebookApp] 302 GET / (x.x.x.x) 0.63ms
[I 06:58:54.785 NotebookApp] 302 GET /tree? (x.x.x.x) 0.81ms
[W 07:14:58.719 NotebookApp] Not allowing login redirect to '/tree?'
[I 07:14:58.720 NotebookApp] 302 POST /login?next=%2Ftree%3F (x.x.x.x) 1.62ms
[I 07:14:59.047 NotebookApp] 302 GET / (x.x.x.x) 0.65ms
其中(x.x.x.x)是浏览器ip
答案 3 :(得分:0)
对我有用的是:
sudo chown -R $USER ~/.local/share/jupyter/