学校给我配了一个电脑,这台电脑就成了我熟悉各种计算科学软件的平台。有时候想持续关注一下电脑的状态,就想到了 SSH,但是电脑是在内网的,没法直接用IP连接。又是去网上搜索了一番,找到了连接内网服务器的方法。

连接步骤很简单,就只有两步。但是有一个前提条件,就是拥有一个有公网 IP 的服务器(对我来说,就是这个博客所在的服务器了)。

  1. 内网电脑连接公网服务器
  • 修改公网服务器 sshd 配置文件 /etc/ssh/sshd_config
# 启用转发功能
GatewayPorts yes
  • 连接服务器
$ ssh -f -N -R 6766:localhost:22 ubuntu@hehome.xyz -i /home/ubuntu/.ssh/id_rsa

参数含义: -f: 后台执行ssh指令 -N: 不执行远程指令 -R: 端口转发 -i: 指定身份文件

  1. 外网电脑连接内网电脑
ssh -p 6766 he0119@hehome.xyz

-p: 指定远程服务器上的端口

不过如果仅仅是这样的话,会出现 SSH 连接在一段时间后,卡死的情况,这时候就需要修改 /etc/ssh/ssh_conf(全局设置),在里面添加:

ServerAliveInterval=30

也可以直接再SSH命令后面加上:

ssh -o ServerAliveInterval=30

参数含义: -o: 指定配置选项 ServerAliveInterval: 客户端主动向服务端请求响应的间隔,单位为秒