本地连接AutoDL服务器教程:SSH端口映射 — Linux操作系统
连接方式为在控制台上使用指令,将本地端口映射到服务器端口。
指令模板为:
ssh -CNg -L 本地端口:127.0.0.1:服务器端口 root@IP -p SSH 服务端口号
上述指令中,“服务器端口”指程序在AutoDL上运行时的端口;
“本地端口”指我们希望在本地访问的端口;
服务端口号“可以在autoDL的控制台界面处获取。
下面,以在本地8888端口访问服务器上7860端口运行的前端界面为例,进行演示:
1.获取对应主机的服务端口号和密码
获取服务端口号:在autoDL的控制台界面找到当前正在运行服务的主机,如下图所示。

点击复制"SSH登录”下的登录指令,例如
ssh -p 12086 root@connect.nmb1.seetacloud.com
其中的 12086 即为服务端口号。另外,如果直接在本地控制台中执行上述指令,并输入AutoDL对应主机的连接密码,则可以直接在本地控制台上直接操作对应的AutoDL主机。
同时复制”SSH登录“下的密码,以备后续使用。
2.获取服务器端口号
操作时请以自己的服务实际端口为准。以下为一个示例,其端口为7860

3.自定义本地端口号
本地端口可以自己设置,也可以与AutoDL上服务的端口号一致。它们一个是本地的端口,一个是服务器主机上的端口,彼此无影响。此处随便设置为8888。选择本地端口后,建议输入指令检查一下端口是否被占用。若被占用,则更换其他端口。
sudo lsof -i :端口号
若运行上述指令无输出结果,则端口未被占用。你也可以使用下列2条指令中的任意一条,检查端口是否被占用:
sudo netstat -tulpn | grep 端口号
sudo ss -tulpn | grep 端口号
若端口被占用,建议更换其他端口。如果必须在某个特定端口运行,可以使用以下指令来结束这个端口的进程:
sudo kill -9 端口对应的进程ID
4.在任意路径下的终端执行连接指令
ssh -CNg -L 8888:127.0.0.1:7860 root@connect.nmb1.seetacloud.com -p 12086
执行后提示输入密码。将(1)步骤中复制的密码粘贴到此处,密码不会显示出来,直接按回车即可。此时若无任何额外输出,如下图所示,则表示连接成功。

另外,首次连接某台服务器主机时,控制台会提示下图内容:

直接输入yes并回车,之后继续输入服务器主机密码即可正常连接。
最后尝试访问本地对应端口,上述示例中为8888。发现可以在本地主机上访问对应服务内容。

另外,即使服务器上运行的服务,不像上述示例一样的带图形界面,我们也能通过上述SSH连接的方式,让本地主机可以直接访问服务器主机上的服务。
举例:如果你在服务器上运行的是一个监听端口,比如服务器上有一个持续监听如HTTP、WebSockeyt等请求的8900端口,那么当你执行上述映射指令,成功把本地8080端口,映射到服务器8900端口后,你在本地主机上,或者局域网内其他主机上发送给8080端口的请求,会被映射到服务器的8900端口上。服务器上主机的对应服务在处理完请求后,把结果返回给8900端口,又会被映射到本地主机上的8080端口。这样就能实现本地与服务器上主机传递请求。






