学校给我配了一个电脑,这台电脑就成了我熟悉各种计算科学软件的平台。有时候想持续关注一下电脑的状态,就想到了 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: 指定身份文件

  2. 外网电脑连接内网电脑

    ssh -p 6766 he0119@hehome.xyz

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

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

ServerAliveInterval=30

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

ssh -o ServerAliveInterval=30

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

标签: ssh, 内网穿透, 端口转发