ssh 到内网服务器

有时候帮客户解决技术问题,需要远程连接到客户的计算机,但是客户往往没有公网 IP,需要内网穿透才能远程连接,有时 teamviewer 可以解决问题,有时 teamviewer 太慢了,况且 teamviewer 免费许可证不能用于盈利。

这篇文章将介绍 ssh 反向代理的用法和常见问题,需要一台有公网IP的服务器,比如各种VPS和云服务器都可以。客户的电脑记为 C,用户名 ubuntu;我的服务器记为 S,用户名 root。

首先确认客户的电脑装好了 ssh,以 ubuntu 为例,运行以下命令安装 ssh

sudo apt install ssh

在客户的电脑上运行以下命令开启反向代理

sudo ssh -fCNR 4515:localhost:22 -o ServerAliveInterval=60 root@example.example.xyz

@后面是服务器 S 的域名或 IP

按提示输入密码,如果你的服务器没有开启密码登陆,参考下列步骤为 root 用户设置密码。当然了用密钥登陆也行,就是还得给客户发,有点儿麻烦。

为 root 用户设置密码

passwd root

开启密码登陆

vi /etc/ssh/sshd_config

将 PasswordAuthentication 改成 yes

同理,客户的电脑 C 也应考虑开启密码登陆。

反向代理连接成功了有提示。看到提示后在服务器上运行以下命令确认

sudo netstat -nap | grep ssh

如果没错的话,能看到一行

tcp      0    0 127.0.0.1:4515          0.0.0.0:*               LISTEN      8493/sshd

4515 就是我们设置的端口号

在服务器 S 上运行以下命令就可以 ssh 到客户的电脑 C 上了

ssh -p 4515 ubuntu@127.0.0.1Code language: CSS (css)

按提示输密码即可。

常恭

作者: 常恭

略懂 OpenFOAM

发表评论