本地端口转发
机器与网络状况
qbit 的开发机为 Q(192.168.1.Q), 想要访问主机 D(192.168.2.D) 上的 MongoDB(27017) Q 不能直连 MongoDB 192.168.2.D:27017 Q 可以通过 ssh 访问主机 J(192.168.2.J) J 可以直连 MongoDB 192.168.2.D:27017
- 机器与网络状况示意图
在开发机
Q
上执行以下命令创建隧道# 参数 N: 只做端口转发,不执行远程命令 # 参数 L: Local 本地转发 ssh -NL 6666:192.168.2.D:27017 qbit@192.168.2.J
在开发机
Q
上执行以下命令连接 MongoDBmongosh mongodb://localhost:6666
远程端口转发
机器与网络状况
qbit 的开发机为 Q(192.168.1.Q), 想要将本机 6666 端口的服务暴露给主机 D(192.168.2.D) 访问 D 不能直连 192.168.1.Q:6666 D 可以与主机 J(192.168.2.J)建立 TCP 连接 J 可以与 D 建立 TCP 连接 J 不可以主动向 Q 发起连接 Q 可以通过 ssh 访问 主机 J
- 机器与网络状况示意图
- 在主机
J
上开放/etc/ssh/sshd_config
配置里面的GatewayPorts
,否则只能监听localhost
在开发机
Q
上执行以下命令创建隧道# -q Quiet mode. # -f 输入密码之后,后台运行 # -N 只做端口转发,不执行远程命令 # -R Remote 远程转发 ssh -NR 7777:192.168.1.Q:6666 qbit@192.168.2.J
在主机
D
上执行以下命令访问Q
机器 6666 端口的服务curl http://192.168.2.J:7777
ssh 自动断开连接的问题,可以修改服务端
/etc/ssh/sshd_config
以下配置项ClientAliveInterval 60 ClientAliveCountMax 3
如果报访问报类似以下错误,说明 ssh 服务器也不能访问对应端口
channel 1: open failed: connect failed: Connection refused
动态端口转发
- 动态端口转发主要用作 socks 代理
机器与网络状况
qbit 的开发机为 Q(192.168.1.Q), 想要访问互联网主机 ip.sb 的 80 端口 J 可以与 ip.sb 建立 TCP 连接 Q 不能直连 ip.sb:80 Q 可以通过 ssh 访问 主机 J
- 机器与网络状况示意图
在开发机
Q
上执行以下命令创建隧道# 参数 N: 只做端口转发,不执行远程命令 # 参数 D: dynamic 动态转发 ssh -ND localhost:6666 qbit@192.168.2.J
在主机
D
上执行以下命令访问Q
机器 6666 端口的服务curl -x socks5h://localhost:6666 http://ip.sb
本文出自 qbit snap
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。