SSH 端口转发的一些边角
三种转发大家都会用,但有些默认值能让人卡很久。
-L / -R / -D
-L 本地:目标:端口:本地的某个端口转发到远端能访问的地方。-R:反过来,远端的端口转发回本地。默认只监听远端环回地址。-D:本机起一个 SOCKS5,动态转发。
GatewayPorts
-R 0.0.0.0:8080:localhost:8080 这种写法,如果服务端 GatewayPorts 是默认的 no,它只会监听 127.0.0.1,你从外网怎么都连不上。要在 sshd_config 里改成 yes(或者 clientspecified)。改完记得 systemctl reload ssh。
连接会断
加 -o ServerAliveInterval=30 -o ServerAliveCountMax=3,网络抖一下不至于把隧道晾死。配合 autossh 更省心。
别忘了 -N
只要隧道不要 shell 的话务必加 -N,否则开一个交互会话浪费资源;后台跑再用 -f。