通过xshell等接收 服务器ssh 的请求 转发到本地机器进行开发

应用场景:
为了解决 类似于 微信开发等 需要在线上外网服务器验证 的调试。

需求:将线上的请求转发到本地 进行调试
方案:
服务器开启ssh的转发功能->nginx配置转发节点->xshell等ssh客户端链接服务器,同时配置隧道链接。

具体配置步骤:
1.服务器安装好ssh服务,确保开启 ssh 转发功能。可能需要在 /etc/ssh/ssh_config 配置文件 增加 GatewayPorts yes
2.在原有线上站点nginx 配置文件中增加server节点。例如:
server {
listen 80;
server_name proxyadmin.stlchn.com;
location / {
proxy_pass http://localhost:10001; //转发当前节点下的域名到 本地机器的10001 端口。需要重启nginx后 nginx 会创建本地 tcp 服务端口 10001。
proxy_set_header host $http_host;
}
}

//补充: 修改完配置文件后 一定 nginx -t,检查配置文件是否正确。
通过xshell等接收 服务器ssh 的请求 转发到本地机器进行开发

然后 service nginx restart
之后 netstat -anp | grep 10001 查看端口是否已经创建,处于监听状态。
通过xshell等接收 服务器ssh 的请求 转发到本地机器进行开发

到此为止 nginx 已经为你创建了tcp 服务监听端口,ssh隧道转发功能已经开启。

3.配置xshell 的隧道转发功能.配置完后需要开启当前对应的ssh链接,开发者本地机器才能正常接收到服务端的转发请求。
用xshell等工具建立好 同服务器的链接,然后修改 配置属性中的隧道链接,添加,选中 incoming 类型。端口为 刚创建的端口。其他数据如图。保存确定后,本地开启断点调试。浏览器访问 用于转发的 额外二级域名 proxyadmin.stlchn.com 下的请求即可将线请求转发到本地。
1.
通过xshell等接收 服务器ssh 的请求 转发到本地机器进行开发
2.
通过xshell等接收 服务器ssh 的请求 转发到本地机器进行开发
3.
通过xshell等接收 服务器ssh 的请求 转发到本地机器进行开发

请注意,上述配置 仅仅只会把 到这个站点的 线上请求转发到本地的80 端口,但是不保证被你哪个项目监听到。所以,如果你的桌面是像下面这样的,请只开启对应项目的 xdebug的监听按钮。不喜勿喷,有错误请指教。
通过xshell等接收 服务器ssh 的请求 转发到本地机器进行开发

通过xshell等接收 服务器ssh 的请求 转发到本地机器进行开发