端口转发.md 2.2 KB

1. 正向端口转发

在远程服务器(10.192.72.11 )上启动监听8101端口的服务

~/zhch/dots.ocrv/zhchllm_daemon.sh

在mac本机(192.168.247.197)上运行

ssh -L 8082:localhost:8101 10.192.72.11 

就可以在本机(192.168.247.197)通过访问 http://localhost:8082 来访问远程服务了。

2. 双向端口转发

ssh -o "ExitOnForwardFailure=yes"  -o "ServerAliveInterval=60" -o "ServerAliveCountMax=3" -L 8082:localhost:8101 -R 7280:localhost:7890 ubuntu@10.192.72.11

这个 SSH 命令用于建立隧道连接,让您可以从本地访问远程服务器上的服务,同时为远程服务器提供代理访问。这正好可以解决您 ngrok 连接问题。

让我详细解释这个命令的各个参数:

SSH 隧道命令解析

连接选项 (-o)

  • ExitOnForwardFailure=yes: 如果端口转发失败,立即退出 SSH 连接
  • ServerAliveInterval=60: 每 60 秒发送一次保活信号
  • ServerAliveCountMax=3: 最多发送 3 次保活信号无响应后断开连接

端口转发

  • -L 8082:localhost:8101: 本地端口转发

    • 将本地的 8082 端口转发到远程服务器的 8101 端口
    • 访问 localhost:8082 相当于访问远程服务器的 localhost:8101
  • -R 7280:localhost:7890: 远程端口转发

    • 将远程服务器的 7280 端口转发到本地的 7890 端口
    • 远程服务器访问 localhost:7280 相当于访问您本地的 localhost:7890

使用 VS Code 的替代方案

您可以使用 VS Code 的内置端口转发功能来替代 ngrok:

  1. 首先连接到远程服务器:

    [
    	{
    		"type": "command",
    		"details": {
    			"key": "remote-ssh.connectToHost"
    		}
    	}
    ]
    

然后转发端口:

在命令面板中显示

VS Code 设置

您可以配置以下设置来优化远程开发体验:

remote.SSH.connectTimeout 设置连接超时时间:

remote.SSH.useLocalServer 启用本地服务器模式以提高连接稳定性:

remote.forwardOnOpen 控制自动端口转发:

在设置编辑器中显示

样您就可以通过 VS Code 的内置功能访问远程服务器上的应用(如您的 Gradio 应用),而不需要依赖 ngrok。