Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何优雅地使用服务器 #6

Open
Yidadaa opened this issue Sep 23, 2017 · 6 comments
Open

如何优雅地使用服务器 #6

Yidadaa opened this issue Sep 23, 2017 · 6 comments
Milestone

Comments

@Yidadaa
Copy link
Owner

Yidadaa commented Sep 23, 2017

最近师兄给我分配了一个实验室服务器地账号,自己就琢磨着怎么好好地折腾一下这个服务器,但无奈我的账号没有root权限,安装软件只能通过自己编译的方式完成,并且师兄只分配给我一个端口,我要想运行什么web服务,只能绑定到这一个端口上面,一头雾水之际,突然看到了一个神器:SSH端口转发。

什么是SSH端口转发?

让我们先来了解一下端口转发的概念吧。我们知道,SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发。它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果您工作环境中的防火墙限制了一些网络端口的使用,但是允许 SSH 的连接,那么也是能够通过将 TCP 端口转发来使用 SSH 进行通讯。总的来说 SSH 端口转发能够提供两大功能:

  • 加密 SSH Client 端至 SSH Server 端之间的通讯数据。
  • 突破防火墙的限制完成一些之前无法建立的 TCP 连接。

上面是我复制粘贴别人的,总而言之,端口转发就是将所有发送到server_1的m端口的请求转发到server_2的n端口上去,并且两个端口之间的转发,通过SSH加密完成,也就是说,只需要涉密服务器上的一个SSH端口,就可以通过端口转发功能来为我们提供各种各样的服务。

如何使用端口转发?

首先要确定你电脑装了ssh,命令行里输一下ssh即可,然后使用下面的命令:

ssh -L <local port>:<remote host>:<remote port> <SSH hostname>

举个例子,我服务器的IP地址是123.123.1.123,SSH端口号是88,我在服务器的8888端口上开了一个jupyter-notebook的服务,那么我要想在我的笔记本上使用这个服务,就要将本地的8888端口给映射到服务器的8888端口去,那么我只需要输入命令ssh -L 8888:localhost:8888 [email protected] -p 88,然后输入密码,映射就成功了,这时候访问本地的8888端口,就相当于访问服务器的8888端口了。

还有其他的吗?

当然有啦,为了全面模拟xshell的使用体验(大雾),当然还需要一个静态文件服务啦,可以用一行代码python -m SimpleHTTPServer 100在100端口开一个静态文件服务,然后用ssh转发100端口,这样就就可以在本地查看服务器的文件了,可以在调参的时候看生成的图片文件,当然了,我的野心不止于此,之后开始跑网络的时候,可以也用来扩展TensorBoard的功能。

除此之外,还有其他的神奇的命令行可以使用,比如终端管理软件tmux,功能上与screen差不过,如果不不了解screen,可以查阅一下,tmux赋予了命令行的窗口化功能,可以分割、调整当前的终端窗口,经过配置之后可以获得非常不错的效果,当然啦,具体的配置还是去网上搜吧,一千人的电脑里有一千个终端配置,程序员还是要有自己的风格才行。

@Yidadaa Yidadaa added this to the 编程 milestone Sep 28, 2017
@Yidadaa
Copy link
Owner Author

Yidadaa commented Oct 7, 2017

test

@Yidadaa
Copy link
Owner Author

Yidadaa commented Mar 18, 2018

除此之外,还有其他的神奇的命令行可以使用,比如终端管理软件tmux,功能上与screen差不过,如果不不了解screen,可以查阅一下,tmux赋予了命令行的窗口化功能,可以分割、调整当前的终端窗口,经过配置之后可以获得非常不错的效果,当然啦,具体的配置还是去网上搜吧,一千人的电脑里有一千个终端配置,程序员还是要有自己的风格才行。

@Yidadaa
Copy link
Owner Author

Yidadaa commented Mar 19, 2018

测试一下蛇皮评论

@xiamuguizhi
Copy link

列表一次性 输出30篇文章 在哪里修改首页文章输出字数的 没找到o(╥﹏╥)o

今天把我姐博客搬到阿里云oss 复制60篇文章到哭!!! https://9i3.cn/

添加一个返回顶部怎么样?如果为了seo 可以在 文章页面标题 可以改成(文章名 - github作者名) 这样的 或者其他

个人建议 vue.JS不会很纠结啊!! 经常在群里安利这个程序 真很不错 ~~~

@Yidadaa
Copy link
Owner Author

Yidadaa commented Apr 16, 2018

别急哈,我这两天在准备毕设中期答辩,想要新功能先在issue-blog中发issue存着,我会在这周把新功能加上

@xiamuguizhi
Copy link

@Yidadaa 工作第一!加油 我感觉如果我用typecho做后端 输出json 然后用你这个前端渲染 放在阿里云oss 爽歪歪 哈哈哈!!!又不要钱!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants