我正在尝试寻找一种方法来验证配置后SSH 本地端口转发规则存在且正确。我使用以下命令来创建转发条目:
> OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ExitOnForwardFailure=yes
> nohup ssh $OPTS -N -g -L 65001:192.168.15.159:8080 localhost &
一旦返回,转发规则应该正在运行并且可供使用。我找到了使用两者netstat
并lsof
显示端口当前状态的建议,但是除了“本地端口已打开并正在侦听”之外,这些都不会向我显示任何内容。我想要得到的是目标地址:端口是什么的确认。
lwobker@lwobker-vms:~$ sudo netstat -tplnd | grep 65001
tcp 0 0 0.0.0.0:65001 0.0.0.0:* LISTEN 29076/ssh
tcp6 0 0 :::65001 :::* LISTEN 29076/ssh
### or...
lwobker@lwobker-vms:~$ lsof -i tcp | grep 65001
ssh 29076 lwobker 4u IPv4 13036241 0t0 TCP *:65001 (LISTEN)
ssh 29076 lwobker 5u IPv6 13036242 0t0 TCP *:65001 (LISTEN)
### shows port up and listening and PID, but not the destination/mapped port
端口转发需要映射的主机:端口状态才能完成其工作,因此该信息必须位于某处...;-)