在前端开发中,我们经常需要通过 SSH 来远程连接服务器,操作服务器上的文件或者运行脚本等。然而,由于某些原因,我们可能无法直接连接到目标服务器,这时候就需要用到 ssh-port-forward 这个 npm 包。
ssh-port-forward 允许我们通过 SSH 隧道来转发流量,即使没有在目标服务器上启用公网 IP 或没有开放 SSH 端口,我们也能够以一种安全、加密的方式访问该服务器。
本文将详细介绍 ssh-port-forward 的使用方法,并且演示如何在前端项目中集成 ssh-port-forward。
安装
要使用 ssh-port-forward,首先需要在电脑上安装 Node.js 和 npm。然后在命令行中输入以下命令进行安装:
npm install ssh-port-forward --save
使用 ssh-port-forward
准备工作
在开始使用 ssh-port-forward 之前,需要有一个可用的 SSH 帐户和服务器。如果你没有 SSH 帐户和服务器,可以使用公共实例进行测试。
局域网中的使用
要在局域网服务器上使用 ssh-port-forward,可以使用以下代码:
-- -------------------- ---- ------- ----- ----------- - ---------------------------- ----- --------- - - ----- ---- ---- --------- ---- ----- --------- ---- ---- -------- --- ---- -------- ------ -- ---------------------- ------------- - ---------------- ------- ------------ ---
其中 host
表示 SSH 服务器的 IP 地址,username
和 password
分别表示 SSH 服务器的帐户名和密码,dstHost
表示目标服务器的 IP 地址,dstPort
表示目标服务器需要监听的端口号。
在公网中使用
要在公网中使用 ssh-port-forward,需要先在 SSH 服务器上设置端口转发。在命令行中输入以下命令:
ssh -N -R 0.0.0.0:8000:localhost:3000 user@remote
其中,-N
表示不执行远程操作,仅仅进行端口转发;-R
表示反向转发(Reverse Forwarding),把远程服务器的某个端口转发到本地机器。
这里,0.0.0.0
表示任意 IP 地址都可以访问,也可以指定一个 IP 地址,例如 192.168.0.1
;8000
表示 SSH 服务器上的公网端口,可以访问该端口来访问本地转发的端口;localhost
表示需要被转发的应用程序所在的服务器地址;3000
表示应用程序的监听端口。
在 SSH 服务器上设置好端口转发后,可以在前端代码中使用以下代码:
-- -------------------- ---- ------- ----- ----------- - ---------------------------- ----- --------- - - ----- ---- --- ---- --------- ---- ----- --------- ---- ---- -------- ------------ -------- ------- -------- ---------- -------- ------ -- ---------------------- ------------- - ---------------- ------- ------------ ---
这里,dstHost
表示本地服务器地址,即 localhost
;dstPort
表示在 SSH 服务器上设置的公网端口号;srcHost
表示本地监听的 IP 地址,这里设置为 0.0.0.0
表示任意 IP 地址都可以访问;srcPort
表示在本地需要被转发的端口号。
现在,启动前端应用程序,访问 SSH 服务器上的公网 IP 地址和端口号即可访问应用程序。
如何在前端项目中集成 ssh-port-forward
既然 ssh-port-forward 可以用于前端项目,我们也可以将 ssh-port-forward 集成到前端项目中,从而实现更灵活、更自动化的管理。
以 Vue CLI 为例,我们可以在 vue.config.js
中使用以下代码:
-- -------------------- ---- ------- ----- ----------- - ---------------------------- ----- --------- - - ----- ---- --- ---- --------- ---- ----- --------- ---- ---- -------- ------------ -------- ------- -------- ---------- -------- ------ -- -------------- - - ---------- - ----------- ------- - ---------------------- ------------- - ---------------- ------- ------------ --- -- ----- ----- ----- ---- - --
这里,我们在 before
钩子函数中调用 ssh-port-forward,使得在开发服务器启动之前,先建立一个 SSH 隧道。
现在,启动 Vue 项目,就可以直接访问 SSH 服务器的公网 IP 地址和端口号,即可访问前端应用程序。
总结
ssh-port-forward 是一种非常实用的技术,能够帮助我们在远程服务器上执行命令、访问文件等,同时保证安全性和加密性。本文介绍了 ssh-port-forward 的安装、使用方法和如何在前端项目中集成 ssh-port-forward。希望对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60057c4881e8991b448ebcd3