我的 iptables 阻止了除 80、22 等几个端口之外的所有端口。
它正在运行我的 java servlet。我需要使用 jconsole 连接到该 servlet。我不想允许 jmx 端口的外部连接。我应该是唯一能够连接的人。
是否可以通过 ssh 以某种方式隧道传输那些被阻止的 jmx 端口,以便我可以从笔记本电脑连接到该进程?(我的笔记本电脑上没有固定的 IP 地址)
PS. 类似这样的命令 ssh -L 2100:localhost:2100 -L 2099:localhost:2099
在这里似乎不起作用。如果防火墙处于活动状态,它将不允许连接到这些端口。
答案1
我刚刚测试过这个,它运行得非常好;
SSH 到远程机器并启动
netcat
;nc -l -p 7878
打开一个新的终端窗口并创建到远程机器的 SSH 端口转发:
ssh -N -L 7878:localhost:7878 [email protected]
打开第三个终端窗口并通过我的环回地址连接到远程主机:
telnet 127.0.0.1 7878
在第三个窗口中输入的任何内容都会出现在第一个窗口中的我的 netcat 会话中。
一个简单的 bash 脚本可以重定向一批端口,或者使用 SSH -D 选项。-C 也可以用于压缩。