我有一台爆满的 VPS 服务器,家里的电脑位于 NAT 后面。我想使用 ssh 重定向连接到另一个地方的家里的电脑。
我在家里的电脑上这样做:
ssh -fNgR 2221:localhost:22 [email protected]
因此,myvps.info 中有一个 sock 监听 2221 端口
netstat -an
tcp 0 0 127.0.0.1:2221 0.0.0.0:* LISTEN
现在我想用下面的命令连接我的家用电脑
ssh -p 2221 [email protected]
但它返回:
ssh: connect to host myvps.info port 2221: Connection refused
我使用 nmap myvps.info 查看 vps 服务器上打开了哪些端口,它显示:
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
445/tcp filtered microsoft-ds
593/tcp filtered http-rpc-epmap
4444/tcp filtered krb524
2221 端口已打开!为什么?我该如何解决这个问题?
答案1
您的 netstat 显示“127.0.0.1:2221”,这意味着它只监听 127.0.0.1(本地连接)。您需要配置另一个监听地址,可以是机器的 IP 地址,也可以是 0.0.0.0(通常表示所有地址可用)。
答案2
您需要使用:
ssh -fNR *:2221:localhost:22 [email protected]
它将把服务器的监听套接字绑定到所有网络接口(不仅仅是本地主机),并且
GatewayPorts yes
在您的 /etc/sshd_config 文件中(具体路径可能因您的 Linux 发行版而异)。