@
no1xsyzy 是的, 我理解错了楼主关于: `内网 B 服务器(内外网均可访问)' 的意思, 以为 B 有公网 IP.
如果是 B 没有公网 IP, 但可以访问内网和公网. 有一台具备公网 IP 的服务器 C. 解决思路:
1. 将 B 的 22 端口通过 FRP 绑定到 C 上, 假设是 C 上的 1428 端口
2. C 服务器禁止公网访问 1428 端口
3. 添加如下配置到如下路径的文件最前面:`~/.ssh/config`, 请根据具体情况更新尖括号内的内容
Host c
User <C 的用户名>
HostName <C 的公网 IP 地址>
Host b
User <B 的用户名>
HostName 127.0.0.1
Port: 1428
ProxyJump c
Host database
User <A 的用户名>
HostName <A 的内网 IP 地址>
ProxyJump b
LocalForward 127.0.0.1:13306 127.0.0.1:3306
4. 打开两个命令行窗口
5. 在窗口 1 执行: `ssh database`,保持窗口 1 登陆连接的状态. 在窗口 2 执行: `nc -vz localhost 13306`
6. 如果窗口 2 显示 connected. 就可以了
7. 你本地访问 13306 就等于访问 A 的 3306 了