假设由于某种原因,我们无法通过终端访问服务器,因为也许是因为我们走在街上,而我们的手机只在顶部,并且由于我们不是极客或其他任何人,所以我们没有安装任何此类应用程序。
那我们该怎么办? 好吧,什么都没有,在回家或工作,访问服务器并安装之前,我们无法做任何事情 贝壳盒。 那是什么,你吃吗?
贝壳盒
贝壳盒 器物 一台服务器 可以 出口 线工具 命令 到一个 终端模拟器 基于网络. 这个模拟器 可从任何支持以下功能的浏览器访问 JavaScript的 和CSS y 它不需要 没什么 插入 除了功能。
尽管原始项目已终止,但仍有 Github上的叉子 如果存储库中没有它,则可以安装它。 如果是Ubuntu 14.04,那么我们只需要打开一个终端并放:
$ sudo apt install shellinabox openssl ca-certificates
对于最后两个软件包,以防万一我们尚未安装它们。 一旦完成,我们现在可以通过放入浏览器来访问我们的网络终端:
http://la_ip_o_nombre_del_servidor:4200
通过端口80使用Shellinabox
如您所见,Shellinabox默认使用端口 4200 如果我们的服务提供商阻止了它,我们可能将无法访问它。 我们可以使用不安全但可行的变体,即使用 贝壳盒 靠港口 80,尽管稍后我将展示如何使用 443 如果有的话。
我们要做的是通过放入浏览器访问Shellinabox:
http://la_ip_o_nombre_del_servidor/terminal
为此,我们要做的第一件事是安装NGinx:
$ sudo apt install nginx
现在我们创建文件 / etc / nginx /启用了站点/ shellinabox 然后将其放入其中:
服务器{proxy_set_header主机$ http_host; proxy_set_header X-Forwarded-Host $ http_host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; 位置/终端/ {proxy_pass http://本地主机:4200 /; }}
我们编辑文件 / etc /默认/ shellinabox 然后我们放在最后:
SHELLINABOX_ARGS="--localhost-only --disable-ssl"
我们重启 金克斯 y 贝壳盒:
$ sudo /etc/init.d/shellinabox重新启动$ sudo /etc/init.d/nginx重新启动
准备好了!!
通过端口443使用Shellinabox
这个过程比较麻烦,因为我们必须创建SSL证书。 为此,我们将执行以下操作:
首先我们安装OpenSSL:
$ sudo apt-get 安装 openssl
我们创建一个私钥:
openssl genrsa -out server.key 2024
我们创建证书的基础,我们将在其中放置一系列数据:
openssl req -new -key server.key -out server.csr
我们将填写的数据将是:
- 国家名称(2个字母代码): 国家或地区代码,采用两个字母的ISO格式(例如:ES,US,CU,MX ..)。
- 州或省名称(全名): 州或省(例如:佛罗里达州)。
- 地区名称: 城镇(例如:迈阿密)。
- 机构名称: 组织名称(例如: DesdeLinux).
- 组织单位名称: 组织部门(例如:博客)。
- 通用名称: 域名或 FQDN。重要的是要知道博客之间存在差异。desdelinux.net 和 desdelinux。网。您必须注册其中之一的证书。
- 电子邮件地址: 联系人电子邮件地址。
- 质询密码: 在白色。
- 可选的公司名称: 在白色。
现在,我们生成SSL证书,该证书将使用我们输入的数据:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
我们将证书复制到/ etc内的SSL文件夹:
$ sudo cp server.crt /etc/ssl/certs/ssl.crt $ sudo cp server.key /etc/ssl/certs/ssl.key
我们再次编辑文件 / etc /默认/ shellinabox 然后我们更改我们的内容,放在最后:
SHELLINABOX_ARGS="--no-beep"
现在我们编辑文件 / etc / nginx /启用了站点/ shellinabox 然后将其放入其中:
服务器{监听80; 返回301 https:// $ host $ request_uri; }服务器{监听443; server_name myvps.com; ssl_certificate /etc/ssl/certs/ssl.crt; ssl_certificate_key /etc/ssl/certs/ssl.key; ssl on; 内置ssl_session_cache:1000共享:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH :! aNULL :! eNULL :! EXPORT :! CAMELLIA :! DES :! MD5 :! PSK :! RC4; ssl_prefer_server_ciphers; access_log /var/log/nginx/shellinabox.access.log; 位置/终端{proxy_set_header Host $ host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $方案; #修复“您的反向代理设置似乎已损坏”的错误。Proxy_pass HTTP://本地主机:4200 /; proxy_read_timeout 90; proxy_redirect http://本地主机:4200 https://myvps.com/terminal/;} }
我们重新启动服务:
$ sudo /etc/init.d/shellinabox重新启动$ sudo /etc/init.d/nginx重新启动
我们访问
http://la_ip_o_nombre_del_servidor/terminal
应该将我们重定向到:
https://la_ip_o_nombre_del_servidor/terminal
仅此而已。
它让我想起了CSI系列中出现的一切
最有趣的帖子; 我从来没有听说过这个实用程序,事实是它是最好奇和最有用的……我必须假设,就像这个概念已被应用于Ngix一样,它也可以被应用于Apache,对吗?
它使我想起Butterfly的工作方式,尤其是在通过浏览器使用终端时。 当然,没有这里显示的那么复杂🙂
«让我们假设由于某种原因,我们无法通过终端访问服务器,因为也许是因为我们走在街上,而手机仅放在顶部,并且由于我们不是极客或其他任何人,所以我们尚未安装此应用程序类型。”
如果我们不是极客,我们将如何进入服务器? 哈哈哈
在我看来,使用ssh应用程序比使用浏览器要快得多,并且可以避免在服务器上安装软件,但这仍然是一个有趣的选择。
在纯Windows环境下的优势。
“在纯Windows环境中的优势。”
粘腻子或小猫。
优秀男子们,超级感谢您的贡献