使用ssh让服务器使用本地代理7890,但vscode一开启远程连接自动占用端口7890导致代理失效
问题描述
原因:尝试用ssh转发服务器的端口给本地的***端口7890,让服务器能够使用本地代理
操作:在本地ssh配置文件C:\Users\xxx\.ssh\config中设置
Host xxx
HostName xxx
User xxx
RemoteForward 7895 127.0.0.1:7890 # 新增的行
并打开***的允许局域网
并在远程服务器的./bashrc文件中添加:
export http_proxy=http://127.0.0.1:7895
export https_proxy=http://127.0.0.1:7895
source ~/.bashrc使其生效
出现问题
本地打开***时,可以正常上网
打开vscode建立与服务器的远程连接时,电脑无法使用代理且服务器也无法使用代理
vscode显示转发的端口:

其中8888是jupyter的端口,不用管
说明vscode和***同时打开会都占用7890导致冲突
分析
因为编辑了ssh的config文件,导致VS Code 的 Remote-SSH 在解析 ~/.ssh/config 的 RemoteForward 时,会自动把这个转发注册到自己的“端口转发”管理器中。

解决方案
修改settings.json,在其中添加两行,让vscode不再自动端口转发

{
"remote.SSH.remotePlatform": {
},
// 👇 你需要手动添加的部分
"remote.autoForwardPorts": false,
"remote.forwardPorts": [],
xxx(其他本来的配置)
}
保存文件后重启vscode
看到端口处如下:

此时***能正常工作,服务器也成功使用到本地代理
补充
中间还经历了国内网络也无法访问,网页显示未发送任何数据的情况
解决:设置->网络和Internet->代理

检查使用代理服务器是否打开,如果***无法使用时,将其关闭后可以访问国内网络了
ps:记不清了。开关都试试

浙公网安备 33010602011771号