yan's blog

SSH settings

SSH 设置 + 日常使用命令 + 转发

场景:

在家里的电脑 A(无外网 IP)上搭建好了一个服务,想展示给其他人查看。

前提:

具有一台「有外网地址的」的主机 B,地址为:123.123.123.123,用户为 root,密码为 123456,SSH 端口为 22。

操作流程

在 A 主机操作:

A $ ssh -R 8888:localhost:9999 [email protected] -p 22

输入此命令后对 B主机(123.123.123.123) 的 8888 端口的访问会全部转发到 A 主机的 9999 端口。

⚠️

  1. B 主机的 8888 端口需要在防火墙打开
  2. 以上命令只会导致 B 主机监听 127.0.0.1:8888,因此外部对 B 主机 8888 端口的访问不会被转发。要实现外部也可访问的效果,需要将 B 主机 /etc/ssh/sshd_config 中的 GatewayPorts no 改为 GatewayPorts yes
  3. 如果要实现在后台保持连接,可添加 -fN 参数,一般加上 -N 即可